Concurrent calls to rig_debug() could use the same temporary buffer
and corrupt the saved debug history.
Give each call its own buffer and update the shared history under the
existing mutex.
It was never used as a real mutex, since nobody but morse_data_handler
ever really held a lock on it; it was tested, but only to short-circuit
some queries to use cache.
It was also in static storage so it was not rig-specific, and in a shared
object but never initialized for sharing.
Thread contention is handled by rig_lock().
This data (I think) was part of multicast V1, and doesn't seem to be used any
more. Since neither V1 or V2 are enabled, there should be no external
conflicts.
See 'rigs/simplecat/SIMPLE_CAT_PROTOCOL.md' for the protocol spec.
Notes:
- Memory correctness checks were done using Valgrind.
- Tested with wsjtx-3.1.0_improved_PLUS_260228.tgz (with mods) and
Bunzee Labs' DDX HF Digital Transceiver
https://bunzee-labs.com/products/ddx
Tested on:
- Ubuntu Linux
- macOS Tahoe
- Windows 11
Prepare for deprecation and removal of old embedded structures.
Note that the parameters NO_OLD_STRUCTS and NO_OLD_INCLUDES are
temporary, and will be removed before 5.0 is released. They are
for test compiles to work through the codebase incrementally, so
no compiler errors/warnings are generated by any committed/merged
code during default builds.
Allocate and free it.
For access apps must
1) #include <hamlib/rig_state.h> and
2) Use HAMLIB_STATE(rig) to get the address
Also fix a couple of misuses of STATE() macro.
Allocates and frees buffers for CAT, PTT, and DCD.
Does *NOT* copy anything from STATE(rig)->rigport, so only works if
a) app uses rig_set_conf() or
b) app uses HAMLIB_...() macros
Add new amp_caps fields (funcs, levels, parms, ops, status, freq ranges, input/ant)
with corresponding frontend API functions, ampctl commands, and dumpcaps
support. Implement Expert 13K-FA/15K-FA/2K-FA amplifier backend. Extend
dummy backend with full coverage of all new API features.
All functions in rig.h now always have full prototypes.
The gotcha in here was needing to move the prototype for rig_debug()
to before the definition of the macro with the same name. Previously
with the HAMLIB_PARAMS wrapper, the signatures didn't match; without
it the compiler tried to expand the name in the prototype as the macro,
causing syntax errors.
They have been marked as deprecated in doxygen for years.
They both do nothing but return -RIG_EDEPRECATED.
Remove them from the bindings.
AFAICT adding them to bindings/ignore.swg has no effect.