with TO/FROM identifiers displayed, but no audio playing. This occurred
when the decoder sent a few audio buffers which caused the display to
update from the metadata, however the decoder stopped sending buffers
and the audio start threshold is never met. Clear display is invoked
upon audio stop, so the panel was never started or stopped or cleared
until the next call came in.
Changed to store the incoming metadata and only display it once the
audio playback starts and reset the display once the audio stops.
state enumeration is designed to block these attempts which can occur
when a non-standard call sequence of events occurs, normally due to
intermittent decoding.
starting/stopping the monitor for each call to simply leaving the
monitor task running continuously. Was causing issue with scheduled
thread executor not shutting down the task in a timely manner -- new
approach should avoid start/stop related issues altogether.
Updates P25DecoderState with reordering of timing of when we send
updates for the TO/FROM identifiers so that the audio manager receives
up-to-date metadata and hopefully resolves issue with 'Do Not Monitor'
talkgroups being monitored by the audio manager.
Updates the AudioManager with a try/catch block around the processing
task so that we can catch any audio processing exceptions that occur
during the timer task and might get suppressed by the scheduled thread
executor.
Resolves issue in tuner controller where controller was not releasing
sourced tuner channels, preventing re-tuning to other frequencies.
Resolves issue with channel timeout on MPT1327 monitored traffic
channels
Redesigned audio manager handling of audio outputs to ensure that only
one channel's audio can be routed to an audio output at a time.
Changed audio outputs to use the shared thread pool manager for
scheduled tasks, instead of creating a thread pool for each audio
output.
while the buffer processor thread is running.
Added check for 0 space available in data line buffers to avoid trying
to write a zero-length audio chunk to the data line.
Added thread sleep for 100 milliseconds when we detect that the data
line buffer is full, to allow time for the data line to drain before we
check it again. Hopefully this should minimize the chattering during
playback when the code was repeatedly hitting the available() method to
check for space availability.
-Adds new LoJack AliasID allowing user to specify a lojack function and
5-character reply code with wildcards.
-Removes SiteID as an alias option for LoJack.
Valid Alias IDs for LoJack now are:
-LoJack Alias ID: for function and reply code combinations
-ESN ID: for transponder addresses
specifically for P25 C4FM frequency tracking.
-Clarifies frequency change event naming and adds request/notitification
events for channel frequency correction type events
-Removes DC offset filter from P25 C4FM demodulator which was operating
independently of the AFC tracking component within the C4FM symbol
filter.
-Changed FCD tuner center DC spike buffer size after detecting that the
DC center spike was influencing the P25 C4FM filter frequency tracker
whenever the tuner's center frequency was changed to bring the channel
boundary within 3 kHz of the center spike -- set it to 5 kHz to provide
a better buffer.
-Updated spectral channel display to provide better indication of
automatic frequency control (yellow line) versus channel frequency
actions.
-Updated LJ1200Message to return proper address, reply code and site ID
aliases.
-Update LJDecoderState and LJDecoderPanel to properly reset after a
successful decode and to correct issues with gui label coloration.
-Improved handling of channel grants and call event logging
-Prevent traffic channels from changing to control channel state
-Change text on PDU Alternate Multi-Block to reflect trunking message
type
-Added interface for Adjacent Site messages and improved logging
audio samples are produced to cause the audio channel to start playback
(doesn't exceed threshold), causing the audio channel to become locked
until there was new audio from the same talkgroup.