wip: #34 Adds the E4000 tuner editor and updates a few other tuner

editor pieces.
This commit is contained in:
denny
2016-03-20 05:30:16 -04:00
parent 6bb417f69a
commit d3e8816bb4
8 changed files with 635 additions and 273 deletions

View File

@@ -44,8 +44,6 @@ import org.slf4j.LoggerFactory;
import org.usb4java.LibUsbException;
import source.SourceException;
import source.tuner.airspy.AirspyDeviceInformation;
import source.tuner.airspy.AirspyTunerEditor;
import source.tuner.configuration.TunerConfiguration;
import source.tuner.configuration.TunerConfigurationEditor;
import source.tuner.configuration.TunerConfigurationEvent;
@@ -87,121 +85,6 @@ public class R820TTunerEditor extends TunerConfigurationEditor
init();
}
@Override
public void save()
{
if( hasItem() && !mLoading )
{
R820TTunerConfiguration config = getConfiguration();
config.setName( mConfigurationName.getText() );
double value = ((SpinnerNumberModel)mFrequencyCorrection
.getModel()).getNumber().doubleValue();
config.setFrequencyCorrection( value );
config.setSampleRate( (SampleRate)mComboSampleRate.getSelectedItem() );
R820TGain gain = (R820TGain)mComboMasterGain.getSelectedItem();
config.setMasterGain( gain );
R820TMixerGain mixerGain = (R820TMixerGain)mComboMixerGain.getSelectedItem();
config.setMixerGain( mixerGain );
R820TLNAGain lnaGain = (R820TLNAGain)mComboLNAGain.getSelectedItem();
config.setLNAGain( lnaGain );
R820TVGAGain vgaGain = (R820TVGAGain)mComboVGAGain.getSelectedItem();
config.setVGAGain( vgaGain );
getTunerConfigurationModel().broadcast(
new TunerConfigurationEvent( getConfiguration(), Event.CHANGE ) );
}
}
@Override
public void setItem( TunerConfiguration item )
{
super.setItem( item );
if( hasItem() )
{
R820TTunerConfiguration config = getConfiguration();
//Toggle loading so that we don't fire a change event and schedule a settings file save
mLoading = true;
if( item.isAssigned() )
{
setControlsEnabled( true );
mConfigurationName.setText( config.getName() );
mFrequencyCorrection.setValue( config.getFrequencyCorrection() );
mComboSampleRate.setSelectedItem( config.getSampleRate() );
mComboMasterGain.setSelectedItem( config.getMasterGain() );
mComboMixerGain.setSelectedItem( config.getMixerGain() );
mComboLNAGain.setSelectedItem( config.getLNAGain() );
mComboVGAGain.setSelectedItem( config.getVGAGain() );
}
else
{
setControlsEnabled( false );
mConfigurationName.setText( config.getName() );
}
mLoading = false;
}
else
{
setControlsEnabled( false );
mConfigurationName.setText( "" );
}
}
/**
* Sets each of the tuner configuration controls to the enabled argument state
*/
private void setControlsEnabled( boolean enabled )
{
if( mConfigurationName.isEnabled() != enabled )
{
mConfigurationName.setEnabled( enabled );
}
if( mTunerInfo.isEnabled() != enabled )
{
mTunerInfo.setEnabled( enabled );
}
if( mFrequencyCorrection.isEnabled() != enabled )
{
mFrequencyCorrection.setEnabled( enabled );
}
if( mComboSampleRate.isEnabled() != enabled )
{
mComboSampleRate.setEnabled( enabled );
}
if( mComboMasterGain.isEnabled() != enabled )
{
mComboMasterGain.setEnabled( enabled );
}
if( mComboMixerGain.isEnabled() != enabled )
{
mComboMixerGain.setEnabled( enabled );
}
if( mComboLNAGain.isEnabled() != enabled )
{
mComboLNAGain.setEnabled( enabled );
}
if( mComboVGAGain.isEnabled() != enabled )
{
mComboVGAGain.setEnabled( enabled );
}
}
private R820TTunerConfiguration getConfiguration()
{
@@ -252,7 +135,6 @@ public class R820TTunerEditor extends TunerConfigurationEditor
} );
add( mTunerInfo );
mComboSampleRate = new JComboBox<>( SampleRate.values() );
mComboSampleRate.setEnabled( false );
mComboSampleRate.addActionListener( new ActionListener()
@@ -333,7 +215,7 @@ public class R820TTunerEditor extends TunerConfigurationEditor
/**
* Gain Controls
*/
add( new JLabel( "Gain" ), "span" );
add( new JLabel( "Gain" ), "span,align left" );
/* Master Gain Control */
mComboMasterGain = new JComboBox<R820TGain>( R820TGain.values() );
@@ -520,6 +402,52 @@ public class R820TTunerEditor extends TunerConfigurationEditor
add( mComboVGAGain );
}
/**
* Sets each of the tuner configuration controls to the enabled argument state
*/
private void setControlsEnabled( boolean enabled )
{
if( mConfigurationName.isEnabled() != enabled )
{
mConfigurationName.setEnabled( enabled );
}
if( mTunerInfo.isEnabled() != enabled )
{
mTunerInfo.setEnabled( enabled );
}
if( mFrequencyCorrection.isEnabled() != enabled )
{
mFrequencyCorrection.setEnabled( enabled );
}
if( mComboSampleRate.isEnabled() != enabled )
{
mComboSampleRate.setEnabled( enabled );
}
if( mComboMasterGain.isEnabled() != enabled )
{
mComboMasterGain.setEnabled( enabled );
}
if( mComboMixerGain.isEnabled() != enabled )
{
mComboMixerGain.setEnabled( enabled );
}
if( mComboLNAGain.isEnabled() != enabled )
{
mComboLNAGain.setEnabled( enabled );
}
if( mComboVGAGain.isEnabled() != enabled )
{
mComboVGAGain.setEnabled( enabled );
}
}
private String getTunerInfo()
{
StringBuilder sb = new StringBuilder();
@@ -563,4 +491,74 @@ public class R820TTunerEditor extends TunerConfigurationEditor
return sb.toString();
}
@Override
public void save()
{
if( hasItem() && !mLoading )
{
R820TTunerConfiguration config = getConfiguration();
config.setName( mConfigurationName.getText() );
double value = ((SpinnerNumberModel)mFrequencyCorrection
.getModel()).getNumber().doubleValue();
config.setFrequencyCorrection( value );
config.setSampleRate( (SampleRate)mComboSampleRate.getSelectedItem() );
R820TGain gain = (R820TGain)mComboMasterGain.getSelectedItem();
config.setMasterGain( gain );
R820TMixerGain mixerGain = (R820TMixerGain)mComboMixerGain.getSelectedItem();
config.setMixerGain( mixerGain );
R820TLNAGain lnaGain = (R820TLNAGain)mComboLNAGain.getSelectedItem();
config.setLNAGain( lnaGain );
R820TVGAGain vgaGain = (R820TVGAGain)mComboVGAGain.getSelectedItem();
config.setVGAGain( vgaGain );
getTunerConfigurationModel().broadcast(
new TunerConfigurationEvent( getConfiguration(), Event.CHANGE ) );
}
}
@Override
public void setItem( TunerConfiguration tunerConfiguration )
{
super.setItem( tunerConfiguration );
if( hasItem() )
{
R820TTunerConfiguration config = getConfiguration();
//Toggle loading so that we don't fire a change event and schedule a settings file save
mLoading = true;
if( tunerConfiguration.isAssigned() )
{
setControlsEnabled( true );
mConfigurationName.setText( config.getName() );
mFrequencyCorrection.setValue( config.getFrequencyCorrection() );
mComboSampleRate.setSelectedItem( config.getSampleRate() );
mComboMasterGain.setSelectedItem( config.getMasterGain() );
mComboMixerGain.setSelectedItem( config.getMixerGain() );
mComboLNAGain.setSelectedItem( config.getLNAGain() );
mComboVGAGain.setSelectedItem( config.getVGAGain() );
}
else
{
setControlsEnabled( false );
mConfigurationName.setText( config.getName() );
}
mLoading = false;
}
else
{
setControlsEnabled( false );
mConfigurationName.setText( "" );
}
}
}