mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-13 09:07:27 -05:00
Adds airspy USB tuner support and updates the spectral display
component. -Airspy supported with 10 and 2.5 MSps sample rates. Additional decimation may be added later. -Spectral display updated to include smoothing and filtering options. Note: the decimated output of a tuner channel from the airspy is 48,076.9 samples per second, versus the normal 48 kHz decimated rate. This is 1.0015 times the normal rate and doesn't appear to impact the decoders or audio processing. Therefore, no fractional resampling has been added.
This commit is contained in:
@@ -18,14 +18,15 @@ public class AveragingItem extends JSlider implements ChangeListener
|
||||
|
||||
public AveragingItem( SpectralDisplayAdjuster adjuster, int defaultValue )
|
||||
{
|
||||
super( JSlider.HORIZONTAL, 2, 50, adjuster.getAveraging() );
|
||||
super( JSlider.HORIZONTAL, 1, 20, adjuster.getAveraging() );
|
||||
mDefaultValue = defaultValue;
|
||||
|
||||
mAdjuster = adjuster;
|
||||
|
||||
setMajorTickSpacing( 10 );
|
||||
setMinorTickSpacing( 5 );
|
||||
setMajorTickSpacing( 5 );
|
||||
setMinorTickSpacing( 1 );
|
||||
setPaintTicks( true );
|
||||
setPaintLabels( true );
|
||||
|
||||
addChangeListener( this );
|
||||
|
||||
|
||||
@@ -2,34 +2,50 @@ package spectrum.menu;
|
||||
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.util.Hashtable;
|
||||
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JSlider;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
|
||||
import spectrum.SpectralDisplayAdjuster;
|
||||
import dsp.filter.smoothing.SmoothingFilter;
|
||||
|
||||
public class DBScaleItem extends JSlider implements ChangeListener
|
||||
public class SmoothingItem extends JSlider implements ChangeListener
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private SpectralDisplayAdjuster mAdjuster;
|
||||
private int mDefaultValue;
|
||||
|
||||
public DBScaleItem( SpectralDisplayAdjuster adjuster, int defaultValue )
|
||||
public SmoothingItem( SpectralDisplayAdjuster adjuster, int defaultValue )
|
||||
{
|
||||
super( JSlider.HORIZONTAL, -160, -30, adjuster.getDBScale() );
|
||||
mDefaultValue = defaultValue;
|
||||
super( JSlider.HORIZONTAL,
|
||||
SmoothingFilter.SMOOTHING_MINIMUM,
|
||||
SmoothingFilter.SMOOTHING_MAXIMUM,
|
||||
adjuster.getSmoothing() );
|
||||
|
||||
mDefaultValue = defaultValue;
|
||||
mAdjuster = adjuster;
|
||||
|
||||
setMajorTickSpacing( 40 );
|
||||
setMinorTickSpacing( 10 );
|
||||
setSnapToTicks( true );
|
||||
setMajorTickSpacing( 6 );
|
||||
setMinorTickSpacing( 2 );
|
||||
setPaintTicks( true );
|
||||
setPaintLabels( true );
|
||||
|
||||
addChangeListener( this );
|
||||
Hashtable<Integer,JLabel> labels = new Hashtable<>();
|
||||
labels.put( new Integer( 3 ), new JLabel( "3" ) );
|
||||
labels.put( new Integer( 9 ), new JLabel( "9" ) );
|
||||
labels.put( new Integer( 15 ), new JLabel( "15" ) );
|
||||
labels.put( new Integer( 21 ), new JLabel( "21" ) );
|
||||
labels.put( new Integer( 27 ), new JLabel( "27" ) );
|
||||
|
||||
setLabelTable( labels );
|
||||
|
||||
addChangeListener( this );
|
||||
|
||||
addMouseListener( new MouseListener()
|
||||
{
|
||||
@Override
|
||||
@@ -37,7 +53,7 @@ public class DBScaleItem extends JSlider implements ChangeListener
|
||||
{
|
||||
if( event.getClickCount() == 2 )
|
||||
{
|
||||
DBScaleItem.this.setValue( mDefaultValue );
|
||||
SmoothingItem.this.setValue( mDefaultValue );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +68,10 @@ public class DBScaleItem extends JSlider implements ChangeListener
|
||||
public void stateChanged( ChangeEvent event )
|
||||
{
|
||||
int value = ((JSlider)event.getSource()).getValue();
|
||||
|
||||
mAdjuster.setDBScale( value );
|
||||
|
||||
if( value % 2 == 1 )
|
||||
{
|
||||
mAdjuster.setSmoothing( value );
|
||||
}
|
||||
}
|
||||
}
|
||||
36
src/spectrum/menu/SmoothingTypeItem.java
Normal file
36
src/spectrum/menu/SmoothingTypeItem.java
Normal file
@@ -0,0 +1,36 @@
|
||||
package spectrum.menu;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JCheckBoxMenuItem;
|
||||
|
||||
import spectrum.SpectralDisplayAdjuster;
|
||||
import dsp.filter.smoothing.SmoothingFilter.SmoothingType;
|
||||
|
||||
public class SmoothingTypeItem extends JCheckBoxMenuItem
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private SpectralDisplayAdjuster mAdjuster;
|
||||
private SmoothingType mSmoothingType;
|
||||
|
||||
public SmoothingTypeItem( SpectralDisplayAdjuster adjuster, SmoothingType type )
|
||||
{
|
||||
super( type.name() );
|
||||
|
||||
mAdjuster = adjuster;
|
||||
mSmoothingType = type;
|
||||
|
||||
setSelected( mAdjuster.getSmoothingType() == type );
|
||||
|
||||
addActionListener( new ActionListener()
|
||||
{
|
||||
@Override
|
||||
public void actionPerformed( ActionEvent e )
|
||||
{
|
||||
mAdjuster.setSmoothingType( mSmoothingType );
|
||||
}
|
||||
} );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user