mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-15 01:57:39 -05:00
wip #34 - updated tuner configurations to include unique id and assigned
flag, so that we can get rid of tuner configuration assignment objects.
This commit is contained in:
@@ -759,9 +759,6 @@ public class SettingsManager implements Listener<TunerConfigurationEvent>
|
|||||||
|
|
||||||
mTunerConfigurationModel.addTunerConfigurations(
|
mTunerConfigurationModel.addTunerConfigurations(
|
||||||
mSettings.getTunerConfigurations() );
|
mSettings.getTunerConfigurations() );
|
||||||
|
|
||||||
mTunerConfigurationModel.addTunerConfigurationAssignments(
|
|
||||||
mSettings.getSelectedTunerConfiguration() );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -771,9 +768,6 @@ public class SettingsManager implements Listener<TunerConfigurationEvent>
|
|||||||
{
|
{
|
||||||
mSettings.setTunerConfigurations(
|
mSettings.setTunerConfigurations(
|
||||||
mTunerConfigurationModel.getTunerConfigurations() );
|
mTunerConfigurationModel.getTunerConfigurations() );
|
||||||
|
|
||||||
mSettings.setSelectedTunerConfiguration(
|
|
||||||
mTunerConfigurationModel.getTunerConfigurationAssignments() );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import java.awt.event.ActionListener;
|
|||||||
|
|
||||||
import javax.swing.JButton;
|
import javax.swing.JButton;
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JOptionPane;
|
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.JScrollPane;
|
import javax.swing.JScrollPane;
|
||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
@@ -26,7 +25,6 @@ import org.slf4j.Logger;
|
|||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import source.tuner.configuration.TunerConfiguration;
|
import source.tuner.configuration.TunerConfiguration;
|
||||||
import source.tuner.configuration.TunerConfigurationEditor;
|
|
||||||
import source.tuner.configuration.TunerConfigurationFactory;
|
import source.tuner.configuration.TunerConfigurationFactory;
|
||||||
import source.tuner.configuration.TunerConfigurationModel;
|
import source.tuner.configuration.TunerConfigurationModel;
|
||||||
|
|
||||||
@@ -94,7 +92,8 @@ public class TunerEditor extends Editor<Tuner>
|
|||||||
} );
|
} );
|
||||||
|
|
||||||
JScrollPane tableScroller = new JScrollPane( mTunerConfigurationTable );
|
JScrollPane tableScroller = new JScrollPane( mTunerConfigurationTable );
|
||||||
tableScroller.setHorizontalScrollBarPolicy( ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER );
|
tableScroller.setHorizontalScrollBarPolicy(
|
||||||
|
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER );
|
||||||
listPanel.add( new JLabel( "Tuner Configurations" ), "span" );
|
listPanel.add( new JLabel( "Tuner Configurations" ), "span" );
|
||||||
listPanel.add( tableScroller, "span" );
|
listPanel.add( tableScroller, "span" );
|
||||||
|
|
||||||
@@ -106,38 +105,14 @@ public class TunerEditor extends Editor<Tuner>
|
|||||||
{
|
{
|
||||||
Tuner tuner = getItem();
|
Tuner tuner = getItem();
|
||||||
|
|
||||||
int counter = 0;
|
String name = mTunerConfigurationModel
|
||||||
|
.getDistinctName( tuner.getTunerType(), tuner.getUniqueID() );
|
||||||
|
|
||||||
String name = tuner.getUniqueID() + "-New";
|
TunerConfiguration config = TunerConfigurationFactory
|
||||||
|
.getTunerConfiguration( tuner.getTunerType(),
|
||||||
|
tuner.getUniqueID(), name );
|
||||||
|
|
||||||
while( counter < 10 && mTunerConfigurationModel
|
mTunerConfigurationModel.addTunerConfiguration( config );
|
||||||
.hasTunerConfiguration( tuner.getTunerType(), name ) )
|
|
||||||
{
|
|
||||||
counter++;
|
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
sb.append( tuner.getUniqueID() );
|
|
||||||
sb.append( "-New(" );
|
|
||||||
sb.append( String.valueOf( counter ) );
|
|
||||||
sb.append( ")" );
|
|
||||||
|
|
||||||
name = sb.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
if( counter < 10 )
|
|
||||||
{
|
|
||||||
TunerConfiguration config = TunerConfigurationFactory
|
|
||||||
.getTunerConfiguration( tuner.getTunerType(), name );
|
|
||||||
|
|
||||||
mTunerConfigurationModel.addTunerConfiguration( config );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
JOptionPane.showMessageDialog( TunerEditor.this,
|
|
||||||
"Can't create configuration - maximum limit reached",
|
|
||||||
"Error",
|
|
||||||
JOptionPane.OK_OPTION );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
listPanel.add( mNewConfigurationButton );
|
listPanel.add( mNewConfigurationButton );
|
||||||
@@ -186,7 +161,8 @@ public class TunerEditor extends Editor<Tuner>
|
|||||||
mTunerConfigurationTable.setEnabled( true );
|
mTunerConfigurationTable.setEnabled( true );
|
||||||
mNewConfigurationButton.setEnabled( true );
|
mNewConfigurationButton.setEnabled( true );
|
||||||
|
|
||||||
mRowSorter.setRowFilter( new ConfigurationRowFilter( tuner.getTunerType() ) );
|
mRowSorter.setRowFilter( new ConfigurationRowFilter(
|
||||||
|
tuner.getTunerType(), tuner.getUniqueID() ) );
|
||||||
|
|
||||||
TunerConfiguration assigned = mTunerConfigurationModel
|
TunerConfiguration assigned = mTunerConfigurationModel
|
||||||
.getTunerConfiguration( tuner.getTunerType(), tuner.getUniqueID() );
|
.getTunerConfiguration( tuner.getTunerType(), tuner.getUniqueID() );
|
||||||
@@ -259,10 +235,12 @@ public class TunerEditor extends Editor<Tuner>
|
|||||||
public class ConfigurationRowFilter extends RowFilter<TunerConfigurationModel,Integer>
|
public class ConfigurationRowFilter extends RowFilter<TunerConfigurationModel,Integer>
|
||||||
{
|
{
|
||||||
private TunerType mTunerType;
|
private TunerType mTunerType;
|
||||||
|
private String mUniqueID;
|
||||||
|
|
||||||
public ConfigurationRowFilter( TunerType type )
|
public ConfigurationRowFilter( TunerType type, String uniqueID )
|
||||||
{
|
{
|
||||||
mTunerType = type;
|
mTunerType = type;
|
||||||
|
mUniqueID = uniqueID;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -272,7 +250,10 @@ public class TunerEditor extends Editor<Tuner>
|
|||||||
TunerConfiguration config = entry.getModel()
|
TunerConfiguration config = entry.getModel()
|
||||||
.getTunerConfiguration( entry.getIdentifier() );
|
.getTunerConfiguration( entry.getIdentifier() );
|
||||||
|
|
||||||
return config != null && config.getTunerType() == mTunerType;
|
return config != null &&
|
||||||
|
config.getTunerType() == mTunerType &&
|
||||||
|
config.getUniqueID() != null &&
|
||||||
|
config.getUniqueID().contentEquals( mUniqueID );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,12 +39,11 @@ public class AirspyTunerConfiguration extends TunerConfiguration
|
|||||||
*/
|
*/
|
||||||
public AirspyTunerConfiguration()
|
public AirspyTunerConfiguration()
|
||||||
{
|
{
|
||||||
this( "Default" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public AirspyTunerConfiguration( String name )
|
public AirspyTunerConfiguration( String uniqueID, String name )
|
||||||
{
|
{
|
||||||
super( name );
|
super( uniqueID, name );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -29,28 +29,30 @@ import source.tuner.TunerType;
|
|||||||
public abstract class TunerConfiguration
|
public abstract class TunerConfiguration
|
||||||
{
|
{
|
||||||
protected String mName;
|
protected String mName;
|
||||||
|
protected String mUniqueID;
|
||||||
|
protected boolean mAssigned;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default constructor to support JAXB
|
* Default constructor to support JAXB
|
||||||
*/
|
*/
|
||||||
public TunerConfiguration()
|
public TunerConfiguration()
|
||||||
{
|
{
|
||||||
this( "Unknown" );
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toString()
|
|
||||||
{
|
|
||||||
return mName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Normal constructor
|
* Normal constructor
|
||||||
*/
|
*/
|
||||||
public TunerConfiguration( String name )
|
public TunerConfiguration( String uniqueID, String name )
|
||||||
{
|
{
|
||||||
|
mUniqueID = uniqueID;
|
||||||
mName = name;
|
mName = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return mName;
|
||||||
|
}
|
||||||
|
|
||||||
@XmlAttribute( name = "name" )
|
@XmlAttribute( name = "name" )
|
||||||
public String getName()
|
public String getName()
|
||||||
{
|
{
|
||||||
@@ -62,6 +64,28 @@ public abstract class TunerConfiguration
|
|||||||
mName = name;
|
mName = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@XmlAttribute( name = "unique_id" )
|
||||||
|
public String getUniqueID()
|
||||||
|
{
|
||||||
|
return mUniqueID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUniqueID( String id )
|
||||||
|
{
|
||||||
|
mUniqueID = id;;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlAttribute( name = "assigned" )
|
||||||
|
public boolean isAssigned()
|
||||||
|
{
|
||||||
|
return mAssigned;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAssigned( boolean assigned )
|
||||||
|
{
|
||||||
|
mAssigned = assigned;
|
||||||
|
}
|
||||||
|
|
||||||
@XmlAttribute( name = "tuner_type" )
|
@XmlAttribute( name = "tuner_type" )
|
||||||
public abstract TunerType getTunerType();
|
public abstract TunerType getTunerType();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package source.tuner.configuration;
|
|||||||
public class TunerConfigurationEvent
|
public class TunerConfigurationEvent
|
||||||
{
|
{
|
||||||
private TunerConfiguration mTunerConfiguration;
|
private TunerConfiguration mTunerConfiguration;
|
||||||
private TunerConfigurationAssignment mTunerConfigurationAssignment;
|
|
||||||
private Event mEvent;
|
private Event mEvent;
|
||||||
|
|
||||||
public TunerConfigurationEvent( TunerConfiguration configuration, Event event )
|
public TunerConfigurationEvent( TunerConfiguration configuration, Event event )
|
||||||
@@ -12,22 +11,11 @@ public class TunerConfigurationEvent
|
|||||||
mEvent = event;
|
mEvent = event;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TunerConfigurationEvent( TunerConfigurationAssignment assignment, Event event )
|
|
||||||
{
|
|
||||||
mTunerConfigurationAssignment = assignment;
|
|
||||||
mEvent = event;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TunerConfiguration getConfiguration()
|
public TunerConfiguration getConfiguration()
|
||||||
{
|
{
|
||||||
return mTunerConfiguration;
|
return mTunerConfiguration;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TunerConfigurationAssignment getAssignment()
|
|
||||||
{
|
|
||||||
return mTunerConfigurationAssignment;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Event getEvent()
|
public Event getEvent()
|
||||||
{
|
{
|
||||||
return mEvent;
|
return mEvent;
|
||||||
@@ -35,11 +23,8 @@ public class TunerConfigurationEvent
|
|||||||
|
|
||||||
public enum Event
|
public enum Event
|
||||||
{
|
{
|
||||||
CONFIGURATION_ADD,
|
ADD,
|
||||||
CONFIGURATION_REMOVE,
|
REMOVE,
|
||||||
CONFIGURATION_CHANGE,
|
CHANGE;
|
||||||
ASSIGNMENT_ADD,
|
|
||||||
ASSIGNMENT_REMOVE,
|
|
||||||
ASSIGNMENT_CHANGE;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,22 +15,23 @@ import source.tuner.rtl.r820t.R820TTunerEditor;
|
|||||||
|
|
||||||
public class TunerConfigurationFactory
|
public class TunerConfigurationFactory
|
||||||
{
|
{
|
||||||
public static TunerConfiguration getTunerConfiguration( TunerType type, String name )
|
public static TunerConfiguration getTunerConfiguration( TunerType type,
|
||||||
|
String uniqueID, String name )
|
||||||
{
|
{
|
||||||
switch( type )
|
switch( type )
|
||||||
{
|
{
|
||||||
case AIRSPY_R820T:
|
case AIRSPY_R820T:
|
||||||
return new AirspyTunerConfiguration( name );
|
return new AirspyTunerConfiguration( uniqueID, name );
|
||||||
case ELONICS_E4000:
|
case ELONICS_E4000:
|
||||||
return new E4KTunerConfiguration( name );
|
return new E4KTunerConfiguration( uniqueID, name );
|
||||||
case FUNCUBE_DONGLE_PRO:
|
case FUNCUBE_DONGLE_PRO:
|
||||||
return new FCD1TunerConfiguration( name );
|
return new FCD1TunerConfiguration( uniqueID, name );
|
||||||
case FUNCUBE_DONGLE_PRO_PLUS:
|
case FUNCUBE_DONGLE_PRO_PLUS:
|
||||||
return new FCD2TunerConfiguration( name );
|
return new FCD2TunerConfiguration( uniqueID, name );
|
||||||
case HACKRF:
|
case HACKRF:
|
||||||
return new HackRFTunerConfiguration( name );
|
return new HackRFTunerConfiguration( uniqueID, name );
|
||||||
case RAFAELMICRO_R820T:
|
case RAFAELMICRO_R820T:
|
||||||
return new R820TTunerConfiguration( name );
|
return new R820TTunerConfiguration( uniqueID, name );
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException( "Unrecognized tuner type ["
|
throw new IllegalArgumentException( "Unrecognized tuner type ["
|
||||||
+ type.name() + "] - can't create named [" + name + "] tuner"
|
+ type.name() + "] - can't create named [" + name + "] tuner"
|
||||||
|
|||||||
@@ -20,11 +20,11 @@ public class TunerConfigurationModel extends AbstractTableModel
|
|||||||
|
|
||||||
private static final int TUNER_TYPE = 0;
|
private static final int TUNER_TYPE = 0;
|
||||||
private static final int CONFIGURATION_NAME = 1;
|
private static final int CONFIGURATION_NAME = 1;
|
||||||
private static final String[] COLUMN_HEADERS = { "Tuner Type", "Name" };
|
private static final int ASSIGNED = 2;
|
||||||
|
private static final String[] COLUMN_HEADERS = { "Tuner Type", "Name", "Assigned" };
|
||||||
|
|
||||||
private List<Listener<TunerConfigurationEvent>> mConfigurationListeners = new ArrayList<>();
|
private List<Listener<TunerConfigurationEvent>> mConfigurationListeners = new ArrayList<>();
|
||||||
private List<TunerConfiguration> mTunerConfigurations = new ArrayList<>();
|
private List<TunerConfiguration> mTunerConfigurations = new ArrayList<>();
|
||||||
private List<TunerConfigurationAssignment> mTunerConfigurationAssignments = new ArrayList<>();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table model for managing tuner configurations and tuner configuration
|
* Table model for managing tuner configurations and tuner configuration
|
||||||
@@ -59,7 +59,9 @@ public class TunerConfigurationModel extends AbstractTableModel
|
|||||||
*/
|
*/
|
||||||
public void addTunerConfiguration( TunerConfiguration config )
|
public void addTunerConfiguration( TunerConfiguration config )
|
||||||
{
|
{
|
||||||
if( !mTunerConfigurations.contains( config ) )
|
if( !mTunerConfigurations.contains( config ) &&
|
||||||
|
config.getUniqueID() != null &&
|
||||||
|
config.getName() != null )
|
||||||
{
|
{
|
||||||
mTunerConfigurations.add( config );
|
mTunerConfigurations.add( config );
|
||||||
|
|
||||||
@@ -67,7 +69,7 @@ public class TunerConfigurationModel extends AbstractTableModel
|
|||||||
|
|
||||||
fireTableRowsInserted( index, index );
|
fireTableRowsInserted( index, index );
|
||||||
|
|
||||||
broadcast( new TunerConfigurationEvent( config, Event.CONFIGURATION_ADD ) );
|
broadcast( new TunerConfigurationEvent( config, Event.ADD ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,7 +87,7 @@ public class TunerConfigurationModel extends AbstractTableModel
|
|||||||
|
|
||||||
fireTableRowsDeleted( index, index );
|
fireTableRowsDeleted( index, index );
|
||||||
|
|
||||||
broadcast( new TunerConfigurationEvent( config, Event.CONFIGURATION_REMOVE ) );
|
broadcast( new TunerConfigurationEvent( config, Event.REMOVE ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,7 +100,7 @@ public class TunerConfigurationModel extends AbstractTableModel
|
|||||||
{
|
{
|
||||||
for( TunerConfiguration config: mTunerConfigurations )
|
for( TunerConfiguration config: mTunerConfigurations )
|
||||||
{
|
{
|
||||||
broadcast( new TunerConfigurationEvent( config, Event.CONFIGURATION_REMOVE ) );
|
broadcast( new TunerConfigurationEvent( config, Event.REMOVE ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
int size = mTunerConfigurations.size();
|
int size = mTunerConfigurations.size();
|
||||||
@@ -106,13 +108,6 @@ public class TunerConfigurationModel extends AbstractTableModel
|
|||||||
mTunerConfigurations.clear();
|
mTunerConfigurations.clear();
|
||||||
|
|
||||||
fireTableRowsDeleted( 0, size - 1 );
|
fireTableRowsDeleted( 0, size - 1 );
|
||||||
|
|
||||||
for( TunerConfigurationAssignment assignment: mTunerConfigurationAssignments )
|
|
||||||
{
|
|
||||||
broadcast( new TunerConfigurationEvent( assignment, Event.ASSIGNMENT_REMOVE ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
mTunerConfigurationAssignments.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -142,96 +137,61 @@ public class TunerConfigurationModel extends AbstractTableModel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds a list of tuner configuration assignments to the model
|
|
||||||
*/
|
|
||||||
public void addTunerConfigurationAssignments( List<TunerConfigurationAssignment> assignments )
|
|
||||||
{
|
|
||||||
for( TunerConfigurationAssignment assigment: assignments )
|
|
||||||
{
|
|
||||||
addTunerConfigurationAssignment( assigment );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns of list of tuner configurations from the model
|
|
||||||
*/
|
|
||||||
public List<TunerConfigurationAssignment> getTunerConfigurationAssignments()
|
|
||||||
{
|
|
||||||
return mTunerConfigurationAssignments;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds a tuner configuration assigment to the model
|
|
||||||
*/
|
|
||||||
public void addTunerConfigurationAssignment( TunerConfigurationAssignment assignment )
|
|
||||||
{
|
|
||||||
mTunerConfigurationAssignments.add( assignment );
|
|
||||||
|
|
||||||
broadcast( new TunerConfigurationEvent( assignment, Event.ASSIGNMENT_ADD ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes a tuner configuration assignment from the model
|
|
||||||
*/
|
|
||||||
public void removeTunerConfigurationAssignment( TunerConfigurationAssignment assignment )
|
|
||||||
{
|
|
||||||
mTunerConfigurationAssignments.remove( assignment );
|
|
||||||
|
|
||||||
broadcast( new TunerConfigurationEvent( assignment, Event.ASSIGNMENT_REMOVE ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the tuner configuration that is assigned to the tuner with the
|
* Returns the tuner configuration that is assigned to the tuner with the
|
||||||
* tuner type and uniqueID, or creates a new tuner configuration and tuner
|
* tuner type and uniqueID, or selects the first existing configuration that
|
||||||
* configuration assignment for the tuner.
|
* matches the tuner type and unique ID and assigns it, or creates a new
|
||||||
|
* tuner configuration and assigns it to the tuner.
|
||||||
|
*
|
||||||
|
* This method will always return a tuner configuration that is assigned to
|
||||||
|
* the tuner type and unique ID.
|
||||||
*/
|
*/
|
||||||
public TunerConfiguration getTunerConfiguration( TunerType type, String uniqueID )
|
public TunerConfiguration getTunerConfiguration( TunerType type, String uniqueID )
|
||||||
{
|
{
|
||||||
String configurationName = null;
|
List<TunerConfiguration> configs = getTunerConfigurations( type, uniqueID );
|
||||||
|
|
||||||
TunerConfigurationAssignment assignment = getTunerConfigurationAssignment( type, uniqueID );
|
|
||||||
|
|
||||||
if( assignment != null )
|
|
||||||
{
|
|
||||||
configurationName = assignment.getTunerConfigurationName();
|
|
||||||
}
|
|
||||||
|
|
||||||
if( configurationName == null )
|
|
||||||
{
|
|
||||||
configurationName = uniqueID;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<TunerConfiguration> configs = getTunerConfigurations( type );
|
|
||||||
|
|
||||||
for( TunerConfiguration config: configs )
|
for( TunerConfiguration config: configs )
|
||||||
{
|
{
|
||||||
if( config.getName().contentEquals( configurationName ) )
|
if( config.isAssigned() &&
|
||||||
|
config.getUniqueID() != null &&
|
||||||
|
config.getUniqueID().contentEquals( uniqueID ) )
|
||||||
{
|
{
|
||||||
if( assignment == null )
|
|
||||||
{
|
|
||||||
assignTunerConfiguration( config, configurationName );
|
|
||||||
}
|
|
||||||
|
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Reuse an existing configuration to assign
|
||||||
|
if( !configs.isEmpty() )
|
||||||
|
{
|
||||||
|
configs.get( 0 ).setAssigned( true );
|
||||||
|
return configs.get( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
String name = getDistinctName( type, uniqueID );
|
||||||
|
|
||||||
//We didn't find the config so create a new one and assign it
|
//We didn't find the config so create a new one and assign it
|
||||||
TunerConfiguration config = TunerConfigurationFactory
|
TunerConfiguration config = TunerConfigurationFactory
|
||||||
.getTunerConfiguration( type, configurationName );
|
.getTunerConfiguration( type, uniqueID, name );
|
||||||
|
|
||||||
|
config.setAssigned( true );
|
||||||
|
|
||||||
addTunerConfiguration( config );
|
addTunerConfiguration( config );
|
||||||
assignTunerConfiguration( config, configurationName );
|
|
||||||
|
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasTunerConfiguration( TunerType type, String name )
|
/**
|
||||||
|
* Indicates if a configuration exists in this model matching the tuner type
|
||||||
|
* and unique ID and name.
|
||||||
|
*/
|
||||||
|
public boolean hasTunerConfiguration( TunerType type, String uniqueID, String name )
|
||||||
{
|
{
|
||||||
for( TunerConfiguration config: mTunerConfigurations )
|
for( TunerConfiguration config: mTunerConfigurations )
|
||||||
{
|
{
|
||||||
if( config.getTunerType() == type &&
|
if( config.getTunerType() == type &&
|
||||||
|
config.getUniqueID() != null &&
|
||||||
|
config.getUniqueID().contentEquals( uniqueID ) &&
|
||||||
|
config.getName() != null &&
|
||||||
config.getName().contentEquals( name ) )
|
config.getName().contentEquals( name ) )
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
@@ -242,57 +202,37 @@ public class TunerConfigurationModel extends AbstractTableModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assigns the tuner configuration to the tuner identified by the uniqueID
|
* Creates a configuration name for the tuner configuration that is distinct
|
||||||
|
* among the existing tuner configurations of the same type and uniqueID
|
||||||
*/
|
*/
|
||||||
public void assignTunerConfiguration( TunerConfiguration config, String uniqueID )
|
public String getDistinctName( TunerType type, String uniqueID )
|
||||||
{
|
{
|
||||||
TunerConfigurationAssignment assignment =
|
int counter = 0;
|
||||||
getTunerConfigurationAssignment( config.getTunerType(), uniqueID );
|
|
||||||
|
|
||||||
Event event = Event.ASSIGNMENT_CHANGE;
|
String name = "New";
|
||||||
|
|
||||||
if( assignment == null )
|
while( hasTunerConfiguration( type, uniqueID, name ) )
|
||||||
{
|
{
|
||||||
assignment = new TunerConfigurationAssignment();
|
counter++;
|
||||||
assignment.setUniqueID( uniqueID );
|
|
||||||
|
|
||||||
addTunerConfigurationAssignment( assignment );
|
name = "New (" + counter + ")";
|
||||||
|
|
||||||
event = Event.ASSIGNMENT_ADD;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
assignment.setTunerConfigurationName( config.getName() );
|
return name;
|
||||||
|
|
||||||
broadcast( new TunerConfigurationEvent( assignment, event ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the tuner configuration assiged to the tuner type and unique id
|
|
||||||
*/
|
|
||||||
private TunerConfigurationAssignment getTunerConfigurationAssignment( TunerType type, String uniqueID )
|
|
||||||
{
|
|
||||||
for( TunerConfigurationAssignment assignment: mTunerConfigurationAssignments )
|
|
||||||
{
|
|
||||||
if( assignment.getTunerType() == type &&
|
|
||||||
assignment.getUniqueID().contentEquals( uniqueID ) )
|
|
||||||
{
|
|
||||||
return assignment;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns all tuner configurations for the specified tuner type
|
* Returns all tuner configurations for the specified tuner type
|
||||||
*/
|
*/
|
||||||
public List<TunerConfiguration> getTunerConfigurations( TunerType type )
|
public List<TunerConfiguration> getTunerConfigurations( TunerType type, String uniqueID )
|
||||||
{
|
{
|
||||||
List<TunerConfiguration> configs = new ArrayList<>();
|
List<TunerConfiguration> configs = new ArrayList<>();
|
||||||
|
|
||||||
for( TunerConfiguration config: mTunerConfigurations )
|
for( TunerConfiguration config: mTunerConfigurations )
|
||||||
{
|
{
|
||||||
if( config.getTunerType() == type )
|
if( config.getTunerType() == type &&
|
||||||
|
config.getUniqueID() != null &&
|
||||||
|
config.getUniqueID().contentEquals( uniqueID ) )
|
||||||
{
|
{
|
||||||
configs.add( config );
|
configs.add( config );
|
||||||
}
|
}
|
||||||
@@ -370,6 +310,8 @@ public class TunerConfigurationModel extends AbstractTableModel
|
|||||||
return config.getTunerType().getLabel();
|
return config.getTunerType().getLabel();
|
||||||
case CONFIGURATION_NAME:
|
case CONFIGURATION_NAME:
|
||||||
return config.getName();
|
return config.getName();
|
||||||
|
case ASSIGNED:
|
||||||
|
return config.isAssigned() ? "*" : null;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,12 +42,11 @@ public class FCD1TunerConfiguration extends TunerConfiguration
|
|||||||
*/
|
*/
|
||||||
public FCD1TunerConfiguration()
|
public FCD1TunerConfiguration()
|
||||||
{
|
{
|
||||||
this( "Default" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public FCD1TunerConfiguration( String name )
|
public FCD1TunerConfiguration( String uniqueID, String name )
|
||||||
{
|
{
|
||||||
super( name );
|
super( uniqueID, name );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -33,12 +33,11 @@ public class FCD2TunerConfiguration extends TunerConfiguration
|
|||||||
*/
|
*/
|
||||||
public FCD2TunerConfiguration()
|
public FCD2TunerConfiguration()
|
||||||
{
|
{
|
||||||
this( "Default" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public FCD2TunerConfiguration( String name )
|
public FCD2TunerConfiguration( String uniqueID, String name )
|
||||||
{
|
{
|
||||||
super( name );
|
super( uniqueID, name );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -39,12 +39,11 @@ public class HackRFTunerConfiguration extends TunerConfiguration
|
|||||||
*/
|
*/
|
||||||
public HackRFTunerConfiguration()
|
public HackRFTunerConfiguration()
|
||||||
{
|
{
|
||||||
this( "Default" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public HackRFTunerConfiguration( String name )
|
public HackRFTunerConfiguration( String uniqueID, String name )
|
||||||
{
|
{
|
||||||
super( name );
|
super( uniqueID, name );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -41,12 +41,11 @@ public class E4KTunerConfiguration extends TunerConfiguration
|
|||||||
*/
|
*/
|
||||||
public E4KTunerConfiguration()
|
public E4KTunerConfiguration()
|
||||||
{
|
{
|
||||||
this( "Default" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public E4KTunerConfiguration( String name )
|
public E4KTunerConfiguration( String uniqueID, String name )
|
||||||
{
|
{
|
||||||
super( name );
|
super( uniqueID, name );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -41,12 +41,11 @@ public class R820TTunerConfiguration extends TunerConfiguration
|
|||||||
*/
|
*/
|
||||||
public R820TTunerConfiguration()
|
public R820TTunerConfiguration()
|
||||||
{
|
{
|
||||||
this( "Default" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public R820TTunerConfiguration( String name )
|
public R820TTunerConfiguration( String uniqueID, String name )
|
||||||
{
|
{
|
||||||
super( name );
|
super( uniqueID, name );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ public class R820TTunerEditor extends TunerConfigurationEditor
|
|||||||
config.setVGAGain( vgaGain );
|
config.setVGAGain( vgaGain );
|
||||||
|
|
||||||
getTunerConfigurationModel().broadcast(
|
getTunerConfigurationModel().broadcast(
|
||||||
new TunerConfigurationEvent( getConfiguration(), Event.CONFIGURATION_CHANGE ) );
|
new TunerConfigurationEvent( getConfiguration(), Event.CHANGE ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user