state and replaces it with a processing chain heartbeat that is generated
by the sample source.
Previously, the state monitor was running on a separate thread and this
was causing multi-threading issues. With this update, all channel state
operations (and all module operations) occur on the source's buffer
processing thread.
detect encrypted audio state so that encrypted audio is not (incorrectly)
decoded and played back to the user.
Processes HDU and LDU2 messages to identify encrypted call state. Once
established, all subsequent LDU1/2 messages are decoded only if the call
is unencrypted. If an LDU1 message is received out-of-sequence, meaning
that the initial HDU message was missed, then the LDU1 is cached until
we receive an LDU2 message and correctly determine the call encryption
state.
Issue identified with Patch Group management and circular dependencies that can develop because of stale patch groups. Refactored all patch group management into a new PatchGroupManager. Patch groups are now automatically deleted if we don't receive any update messages within 5 seconds. The PatchGroupAlias was also updated to not roll-up attributes from subordinate patched group aliases when those aliases are also patch group aliases -- this eliminates the circular dependency chaining.
Added IOverflowListener interface and updated Sources to support overflow listeners. Updated ChannelState to register as an overflow listener so that it can visually depict to the user when the channel enters/exits source overflow state. Added new color pattern for OVERFLOW with yellow text on red.
Changes to model, view and controller components and updates all gui
editors. Removes the configuration panel and tree and replaces with 3
new panels. Updates playlist.xml to a new playlist_v2.xml format.
configuration and tuner configuration assignment editors. Beginning of
tuner editor panel rework. Removes most of the remaining JTree
configuration pieces. Updates the settings manager to load and save
tuners and refactors all of the tuner configuration management out into
the tuner configuration model.
number of unused classes. Removed playlist manager from a number of
classes and replaced with the alias, channel and channel map models.
Updated playlist manager to no longer retain a playlist except for when
loading to models or when storing from models. Extracted version 1 to
version 2 playlist conversion and changed playlist manager to keep the
original version 1 playlist and create a new version 2 (playlist_v2.xml)
file. On startup, try to load a v2, and if not, look for a v1 to
convert. Otherwise, don't create a playlist and one will be created
once the user adds items to the models.
and constraints on scheduled thread pool saturation. Adds a new
scheduled thread pool for each processing chain that the components in
the chain can share, versus the single shared pool exposed by the
threadpoolmanager class.
the NID crc check but uses an unrecognized data unit id, it will now be
broadcast as NID:UNKN, but allows for detection of new DUID types when
we have a large number of occurances of unknonwn duid types.
chain has a message broadcaster built in, so the decoder's broadcaster
is redundant. Changes Decoder(s) to only have a single registered
message listener (ie processing chain)
-Removed channel collection panel since panels will only have 1 channel
now
-Resolved issue with channel list and channel selection events
-Fixed some of the classes from the rebase to master branch