wip: #34 - adds tuner spectral display manager to handle requests to

show a tuner in the main spectral display or to show the tuner in a new
spectral display
This commit is contained in:
denny
2016-03-12 13:11:06 -05:00
parent 218eeb1848
commit 1078bdc4fd
3 changed files with 61 additions and 30 deletions

View File

@@ -59,6 +59,7 @@ import settings.SettingsManager;
import source.SourceManager;
import source.tuner.TunerEvent;
import source.tuner.TunerModel;
import source.tuner.TunerSpectralDisplayManager;
import source.tuner.configuration.TunerConfigurationModel;
import spectrum.SpectralDisplayPanel;
import util.TimeStamp;
@@ -162,8 +163,11 @@ public class SDRTrunk implements Listener<TunerEvent>
mSpectralPanel = new SpectralDisplayPanel( channelModel,
channelProcessingManager, mSettingsManager );
tunerModel.addListener( mSpectralPanel.getTunerEventListener() );
TunerSpectralDisplayManager tunerSpectralDisplayManager =
new TunerSpectralDisplayManager( mSpectralPanel,
channelModel, channelProcessingManager, mSettingsManager );
tunerModel.addListener( tunerSpectralDisplayManager );
tunerModel.addListener( this );
PlaylistManager playlistManager = new PlaylistManager( threadPoolManager,

View File

@@ -0,0 +1,55 @@
package source.tuner;
import java.awt.EventQueue;
import sample.Listener;
import settings.SettingsManager;
import spectrum.SpectralDisplayPanel;
import spectrum.SpectrumFrame;
import controller.channel.ChannelModel;
import controller.channel.ChannelProcessingManager;
public class TunerSpectralDisplayManager implements Listener<TunerEvent>
{
private SpectralDisplayPanel mSpectralDisplayPanel;
private ChannelModel mChannelModel;
private ChannelProcessingManager mChannelProcessingManager;
private SettingsManager mSettingsManager;
public TunerSpectralDisplayManager( SpectralDisplayPanel panel,
ChannelModel channelModel,
ChannelProcessingManager channelProcessingManager,
SettingsManager settingsManager )
{
mSpectralDisplayPanel = panel;
mChannelModel = channelModel;
mChannelProcessingManager = channelProcessingManager;
mSettingsManager = settingsManager;
}
@Override
public void receive( TunerEvent event )
{
switch( event.getEvent() )
{
case REQUEST_MAIN_SPECTRAL_DISPLAY:
mSpectralDisplayPanel.showTuner( event.getTuner() );
break;
case REQUEST_SECONDARY_SPECTRAL_DISPLAY:
final SpectrumFrame frame = new SpectrumFrame( mChannelModel,
mChannelProcessingManager, mSettingsManager, event.getTuner() );
EventQueue.invokeLater( new Runnable()
{
@Override
public void run()
{
frame.setVisible( true );
}
} );
break;
default:
break;
}
}
}

View File

@@ -62,7 +62,6 @@ import settings.ColorSettingMenuItem;
import settings.SettingsManager;
import source.SourceException;
import source.tuner.Tuner;
import source.tuner.TunerEvent;
import source.tuner.frequency.FrequencyChangeEvent;
import source.tuner.frequency.FrequencyChangeEvent.Event;
import source.tuner.frequency.IFrequencyChangeProcessor;
@@ -200,11 +199,6 @@ public class SpectralDisplayPanel extends JPanel
mTuner = null;
}
public Listener<TunerEvent> getTunerEventListener()
{
return new TunerSelectionListener( this );
}
/**
* Queues an FFT size change request. The scheduled executor will apply
* the change when it runs.
@@ -962,26 +956,4 @@ public class SpectralDisplayPanel extends JPanel
} );
}
}
/**
* Provides tuner event listener interface for showing tuners in this display
*/
public class TunerSelectionListener implements Listener<TunerEvent>
{
private SpectralDisplayPanel mSpectralDisplayPanel;
public TunerSelectionListener( SpectralDisplayPanel spectralDisplayPanel )
{
mSpectralDisplayPanel = spectralDisplayPanel;
}
@Override
public void receive( TunerEvent event )
{
if( event.getEvent() == TunerEvent.Event.REQUEST_MAIN_SPECTRAL_DISPLAY )
{
mSpectralDisplayPanel.showTuner( event.getTuner() );
}
}
}
}