#90 [WIP] merged metadata management for channel state, decoder states and audio metadata into a new metadata class. The new metadata class is maintained for each decoding audio channel, or in the future, a decoding TDMA channel. Audio playback, recording and streaming all use the same metadata object for the channel. The list of channel processing gui panels have been deleted and channel processing status will now reside in a table where each table row is a metadata instance from the processing channel. The channel processing manager is responsible for adding/removing the channel's metadata instance to/from the metadata table. This allows the channel processing table to be the controller for the messages, events and channel spectrum views, keyed to the selected table row metadata.

I still have to clean up the gui components and wire in the table selection listeners.
This commit is contained in:
Denny
2017-01-17 19:24:54 -05:00
parent 16b69d4aef
commit bc8873de01
67 changed files with 6207 additions and 10127 deletions

View File

@@ -18,8 +18,7 @@
package record;
import audio.AudioPacket;
import audio.metadata.Metadata;
import audio.metadata.MetadataType;
import channel.metadata.Metadata;
import controller.ThreadPoolManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,7 +37,7 @@ public class RecorderManager implements Listener<AudioPacket>
public static final int AUDIO_SAMPLE_RATE = 8000;
private Map<String, RealBufferWaveRecorder> mRecorders = new HashMap<>();
private Map<String,RealBufferWaveRecorder> mRecorders = new HashMap<>();
private ThreadPoolManager mThreadPoolManager;
@@ -61,10 +60,10 @@ public class RecorderManager implements Listener<AudioPacket>
@Override
public void receive(AudioPacket audioPacket)
{
if(audioPacket.hasAudioMetadata() &&
audioPacket.getAudioMetadata().isRecordable())
if(audioPacket.hasMetadata() &&
audioPacket.getMetadata().isRecordable())
{
String identifier = audioPacket.getAudioMetadata().getIdentifier();
String identifier = audioPacket.getMetadata().getUniqueIdentifier();
if(mRecorders.containsKey(identifier))
{
@@ -125,37 +124,18 @@ public class RecorderManager implements Listener<AudioPacket>
sb.append(File.separator);
Metadata systemMetadata = packet.getAudioMetadata().getMetadata(MetadataType.SYSTEM);
Metadata metadata = packet.getMetadata();
sb.append(systemMetadata != null ? systemMetadata.getValue() : "UNKNOWN_SYSTEM");
sb.append(metadata.getNetworkID1().hasIdentifier() ? metadata.getNetworkID1().getIdentifier() + "_" : "SYSTEM-SITE");
sb.append(metadata.getNetworkID1().hasIdentifier() ? metadata.getNetworkID1().getIdentifier() : "CHANNEL");
Metadata toMetadata = packet.getAudioMetadata().getMetadata(MetadataType.TO);
if(toMetadata != null)
if(metadata.getPrimaryAddressTo().hasIdentifier())
{
sb.append("_TO_").append(toMetadata.getValue());
sb.append("_TO_").append(metadata.getPrimaryAddressTo().getIdentifier());
Metadata fromMetadata = packet.getAudioMetadata().getMetadata(MetadataType.FROM);
if(fromMetadata != null)
if(metadata.getPrimaryAddressFrom().hasIdentifier())
{
sb.append("_FROM_").append(fromMetadata.getValue());
}
}
else
{
Metadata siteMetadata = packet.getAudioMetadata().getMetadata(MetadataType.SITE_ID);
if(siteMetadata != null)
{
sb.append("_").append(siteMetadata.getValue());
}
Metadata channelMetadata = packet.getAudioMetadata().getMetadata(MetadataType.CHANNEL_NAME);
if(channelMetadata != null)
{
sb.append("_").append(channelMetadata.getValue());
sb.append("_FROM_").append(metadata.getPrimaryAddressFrom().getIdentifier());
}
}