RIGCTRL is defined as a log channel for rig control messages and the
appropriate logger is made available to children of the Transceiver
class. Use Transceiver::logger() to access the logger.
Switched existing rig control QDebug messages to Boost logging.
Rotated log files limited to ten saved logs with timestamped and
counted file names. Logs written to writeable files directory. Formats
and file names hard coded with expression templates fro efficiency,
but with the ability to provide a user-defined configuration file that
overrides the hard-coded defaults. The configuration file must be in
the configuration files directory and named wsjtx_log_config.ini.
where possible audio devices that disappear are not forgotten until
the user selects another device, this should allow temporarily missing
devices or forgetting to switch on devices before starting WSJT-X to
be handled more cleanly. If all else fails, visiting the Settings
dialog and clicking OK should get things going again. Note that we
still do not have a reliable way of detecting failed audio out
devices, in that case selecting another device and then returning to
the original should work.
Enumerating audio devices is expensive and on Linux may take many
seconds per device. To avoid lengthy blocking behaviour until it is
absolutely necessary, audio devices are not enumerated until one of
the "Settings->Audio" device drop-down lists is opened. Elsewhere when
devices must be discovered the enumeration stops as soon as the
configured device is discovered. A status bar message is posted when
audio devices are being enumerated as a reminder that the UI may block
while this is happening.
The message box warning about unaccounted-for input audio samples now
only triggers when >5 seconds of audio appears to be missing or over
provided. Hopefully this will make the warning less annoying for those
that are using audio sources with high and/or variable latencies. A
status bar message is still posted for any amount of audio input
samples unaccounted for >1/5 second, this message appearing a lot
should be considered as notification that there is a problem with the
audio sub-system, system load is too high, or time synchronization is
stepping the PC clock rather than adjusting the frequency to maintain
monotonic clock ticks.
uses a settings file to define log sink back-ends, by default uses
:/wsjtx_log_config.ini from the resources file-system. Users may
override by placing their own wsjtx_log_config.ini into the WSJT-X
config location. The settings file format is as described in the Boost
log
documentation (https://www.boost.org/doc/libs/1_74_0/libs/log/doc/html/log/detailed/utilities.html#log.detailed.utilities.setup.settings_file)
with the additional feature that allows some pre-defined variables to
be expanded. The predefined variables refer to standard locations in
the file-system, and allow log files and rotation target directory
paths to be specified. The pre-defined variables are:
DesktopLocation
DocumentsLocation
TempLocation
HomeLocation
CacheLocation
GenericCacheLocation
GenericDataLocation
AppDataLocation
and must be used enclosed on braces and preceded by a '$'
character. E.g. to define the pattern for a sink's log file:
FileName="${AppLocalDataLocation}/wsjtx_syslog.log"
this would place the log file wsjtx_syslog.log in the WSJT-X log files
directory, on all platforms.