mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-13 17:17:29 -05:00
#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:
@@ -1,200 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* sdrtrunk
|
||||
* Copyright (C) 2014-2017 Dennis Sheirer
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*
|
||||
******************************************************************************/
|
||||
package module.decode.mpt1327;
|
||||
|
||||
import controller.channel.Channel.ChannelType;
|
||||
import icon.IconManager;
|
||||
import channel.metadata.Attribute;
|
||||
import channel.state.DecoderPanel;
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import settings.ColorSetting;
|
||||
import settings.Setting;
|
||||
import settings.SettingsManager;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
public class MPT1327DecoderPanel extends DecoderPanel
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private JLabel mProtocol = new JLabel("");
|
||||
private JLabel mSiteOrToTalkgroup = new JLabel("");
|
||||
private JLabel mSiteOrToTalkgroupAlias = new JLabel("");
|
||||
|
||||
private JLabel mFromTalkgroupLabel = new JLabel("");
|
||||
private JLabel mFromTalkgroup = new JLabel("");
|
||||
private JLabel mFromTalkgroupAliasLabel = new JLabel("");
|
||||
|
||||
public MPT1327DecoderPanel(IconManager iconManager, SettingsManager settingsManager, MPT1327DecoderState decoderState)
|
||||
{
|
||||
super(iconManager, settingsManager, decoderState);
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
public MPT1327DecoderState getDecoderState()
|
||||
{
|
||||
return (MPT1327DecoderState) super.getDecoderState();
|
||||
}
|
||||
|
||||
public void dispose()
|
||||
{
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
public void init()
|
||||
{
|
||||
super.init();
|
||||
|
||||
setLayout(new MigLayout("insets 0 0 0 0", "[grow,fill]", "[]0[]0[]"));
|
||||
|
||||
mProtocol.setText("MPT1327");
|
||||
mProtocol.setFont(mFontDecoder);
|
||||
mProtocol.setForeground(mColorLabelDecoder);
|
||||
|
||||
MPT1327DecoderState mptState = getDecoderState();
|
||||
|
||||
mSiteOrToTalkgroup.setFont(mFontDecoder);
|
||||
mSiteOrToTalkgroup.setForeground(mColorLabelDecoder);
|
||||
|
||||
mSiteOrToTalkgroupAlias.setFont(mFontDecoder);
|
||||
mSiteOrToTalkgroupAlias.setForeground(mColorLabelDecoder);
|
||||
|
||||
mFromTalkgroupLabel.setFont(mFontDetails);
|
||||
mFromTalkgroupLabel.setForeground(mColorLabelDetails);
|
||||
|
||||
mFromTalkgroup.setFont(mFontDecoder);
|
||||
mFromTalkgroup.setForeground(mColorLabelDecoder);
|
||||
|
||||
mFromTalkgroupAliasLabel.setFont(mFontDecoder);
|
||||
mFromTalkgroupAliasLabel.setForeground(mColorLabelDecoder);
|
||||
|
||||
|
||||
switch(mptState.getChannelType())
|
||||
{
|
||||
case STANDARD:
|
||||
mSiteOrToTalkgroup.setText(mptState.getSite());
|
||||
setAliasLabel(mSiteOrToTalkgroupAlias, mptState.getSiteAlias());
|
||||
break;
|
||||
case TRAFFIC:
|
||||
mSiteOrToTalkgroup.setText(mptState.getToTalkgroup());
|
||||
setAliasLabel(mSiteOrToTalkgroupAlias, mptState.getToTalkgroupAlias());
|
||||
|
||||
mFromTalkgroupLabel.setText("From:");
|
||||
mFromTalkgroup.setText(getDecoderState().getFromTalkgroup());
|
||||
setAliasLabel(mFromTalkgroupAliasLabel, mptState.getFromTalkgroupAlias());
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Unrecognized channel "
|
||||
+ "type in MPT1327 Decoder [" + getDecoderState()
|
||||
.getChannelType().name() + "]");
|
||||
}
|
||||
|
||||
add(mProtocol);
|
||||
add(mSiteOrToTalkgroup);
|
||||
add(mSiteOrToTalkgroupAlias, "wrap");
|
||||
|
||||
if(mptState.getChannelType() == ChannelType.TRAFFIC)
|
||||
{
|
||||
add(mFromTalkgroupLabel);
|
||||
add(mFromTalkgroup);
|
||||
add(mFromTalkgroupAliasLabel, "wrap");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receive(final Attribute attribute)
|
||||
{
|
||||
final MPT1327DecoderState state = getDecoderState();
|
||||
|
||||
EventQueue.invokeLater(new Runnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
switch(attribute)
|
||||
{
|
||||
case CHANNEL_SITE_NUMBER:
|
||||
mSiteOrToTalkgroup.setText(String.valueOf(state.getSite()));
|
||||
setAliasLabel(mSiteOrToTalkgroupAlias, state.getSiteAlias(), false);
|
||||
repaint();
|
||||
break;
|
||||
case TO_TALKGROUP:
|
||||
mSiteOrToTalkgroup.setText(state.getToTalkgroup());
|
||||
setAliasLabel(mSiteOrToTalkgroupAlias, state.getToTalkgroupAlias());
|
||||
repaint();
|
||||
break;
|
||||
case FROM_TALKGROUP:
|
||||
mFromTalkgroup.setText(state.getFromTalkgroup());
|
||||
setAliasLabel(mFromTalkgroupAliasLabel, state.getFromTalkgroupAlias());
|
||||
repaint();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void settingChanged(Setting setting)
|
||||
{
|
||||
super.settingChanged(setting);
|
||||
|
||||
if(setting instanceof ColorSetting)
|
||||
{
|
||||
ColorSetting colorSetting = (ColorSetting) setting;
|
||||
|
||||
switch(colorSetting.getColorSettingName())
|
||||
{
|
||||
case CHANNEL_STATE_LABEL_DECODER:
|
||||
if(mProtocol != null)
|
||||
{
|
||||
mProtocol.setForeground(mColorLabelDecoder);
|
||||
}
|
||||
if(mSiteOrToTalkgroup != null)
|
||||
{
|
||||
mSiteOrToTalkgroup.setForeground(mColorLabelDecoder);
|
||||
}
|
||||
if(mSiteOrToTalkgroupAlias != null)
|
||||
{
|
||||
mSiteOrToTalkgroupAlias.setForeground(mColorLabelDecoder);
|
||||
}
|
||||
if(mFromTalkgroup != null)
|
||||
{
|
||||
mFromTalkgroup.setForeground(mColorLabelDecoder);
|
||||
}
|
||||
if(mFromTalkgroupAliasLabel != null)
|
||||
{
|
||||
mFromTalkgroupAliasLabel.setForeground(mColorLabelDecoder);
|
||||
}
|
||||
break;
|
||||
case CHANNEL_STATE_LABEL_DETAILS:
|
||||
if(mFromTalkgroupLabel != null)
|
||||
{
|
||||
mFromTalkgroupLabel.setForeground(mColorLabelDetails);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,179 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* sdrtrunk
|
||||
* Copyright (C) 2014-2017 Dennis Sheirer
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*
|
||||
******************************************************************************/
|
||||
package module.decode.mpt1327;
|
||||
|
||||
import alias.Alias;
|
||||
import icon.IconManager;
|
||||
import channel.metadata.Attribute;
|
||||
import channel.state.DecoderPanel;
|
||||
import settings.ColorSetting;
|
||||
import settings.Setting;
|
||||
import settings.SettingsManager;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
public class MPT1327TrafficPanel extends DecoderPanel
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private JLabel mProtocolLabel;
|
||||
private JLabel mFromTalkgroupLabel;
|
||||
private JLabel mFromTalkgroupAliasLabel;
|
||||
|
||||
private JLabel mToLabel;
|
||||
private JLabel mToTalkgroupLabel;
|
||||
private JLabel mToTalkgroupAliasLabel;
|
||||
|
||||
public MPT1327TrafficPanel(IconManager iconManager, SettingsManager settingsManager,
|
||||
MPT1327DecoderState decoderState)
|
||||
{
|
||||
super(iconManager, settingsManager, decoderState);
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
public MPT1327DecoderState getDecoderState()
|
||||
{
|
||||
return (MPT1327DecoderState) super.getDecoderState();
|
||||
}
|
||||
|
||||
public void dispose()
|
||||
{
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
public void init()
|
||||
{
|
||||
mProtocolLabel = new JLabel("MPT1327");
|
||||
mProtocolLabel.setFont(mFontDecoder);
|
||||
mProtocolLabel.setForeground(mColorLabelDecoder);
|
||||
|
||||
mFromTalkgroupLabel = new JLabel();
|
||||
mFromTalkgroupLabel.setFont(mFontDecoder);
|
||||
mFromTalkgroupLabel.setForeground(mColorLabelDecoder);
|
||||
|
||||
mFromTalkgroupAliasLabel = new JLabel();
|
||||
mFromTalkgroupAliasLabel.setFont(mFontDecoder);
|
||||
mFromTalkgroupAliasLabel.setForeground(mColorLabelDecoder);
|
||||
|
||||
mToLabel = new JLabel("TO:");
|
||||
mToLabel.setFont(mFontDetails);
|
||||
mToLabel.setForeground(mColorLabelDetails);
|
||||
|
||||
mToTalkgroupLabel = new JLabel(getDecoderState().getFromTalkgroup());
|
||||
mToTalkgroupLabel.setFont(mFontDecoder);
|
||||
mToTalkgroupLabel.setForeground(mColorLabelDecoder);
|
||||
|
||||
mToTalkgroupAliasLabel = new JLabel();
|
||||
mToTalkgroupAliasLabel.setFont(mFontDecoder);
|
||||
mToTalkgroupAliasLabel.setForeground(mColorLabelDecoder);
|
||||
|
||||
add(mProtocolLabel);
|
||||
add(mFromTalkgroupLabel);
|
||||
add(mFromTalkgroupAliasLabel, "wrap");
|
||||
|
||||
add(mToLabel);
|
||||
add(mToTalkgroupLabel);
|
||||
add(mToTalkgroupAliasLabel, "wrap");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receive(final Attribute attribute)
|
||||
{
|
||||
final MPT1327DecoderState state = getDecoderState();
|
||||
|
||||
EventQueue.invokeLater(new Runnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
switch(attribute)
|
||||
{
|
||||
case FROM_TALKGROUP:
|
||||
String talkgroup = state.getFromTalkgroup();
|
||||
|
||||
mFromTalkgroupLabel.setText(talkgroup);
|
||||
|
||||
Alias alias = state.getFromTalkgroupAlias();
|
||||
|
||||
if(alias != null)
|
||||
{
|
||||
mFromTalkgroupAliasLabel.setText(alias.getName());
|
||||
|
||||
String icon = alias.getIconName();
|
||||
|
||||
mFromTalkgroupAliasLabel.setIcon(mIconManager.getIcon(icon, IconManager.DEFAULT_ICON_SIZE));
|
||||
}
|
||||
break;
|
||||
case TO_TALKGROUP:
|
||||
String toTalkgroup = state.getToTalkgroup();
|
||||
|
||||
mToTalkgroupLabel.setText(toTalkgroup);
|
||||
|
||||
Alias toAlias = state.getToTalkgroupAlias();
|
||||
|
||||
if(toAlias != null)
|
||||
{
|
||||
mToTalkgroupAliasLabel.setText(toAlias.getName());
|
||||
|
||||
String icon = toAlias.getIconName();
|
||||
|
||||
if(icon != null)
|
||||
{
|
||||
mToTalkgroupAliasLabel.setIcon(mIconManager.getIcon(icon, IconManager.DEFAULT_ICON_SIZE));
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
repaint();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void settingChanged(Setting setting)
|
||||
{
|
||||
super.settingChanged(setting);
|
||||
|
||||
if(setting instanceof ColorSetting)
|
||||
{
|
||||
ColorSetting colorSetting = (ColorSetting) setting;
|
||||
|
||||
switch(colorSetting.getColorSettingName())
|
||||
{
|
||||
case CHANNEL_STATE_LABEL_DECODER:
|
||||
mProtocolLabel.setForeground(mColorLabelDecoder);
|
||||
mFromTalkgroupLabel.setForeground(mColorLabelDecoder);
|
||||
mFromTalkgroupAliasLabel.setForeground(mColorLabelDecoder);
|
||||
mToTalkgroupLabel.setForeground(mColorLabelDecoder);
|
||||
mToTalkgroupAliasLabel.setForeground(mColorLabelDecoder);
|
||||
break;
|
||||
case CHANNEL_STATE_LABEL_DETAILS:
|
||||
mToLabel.setForeground(mColorLabelDetails);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user