mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 16:47:31 -05:00
Updated spectral display to used dBm scale and removed baseline/amplification items.
Updated sample handling code to use -1.0 to 1.0 float values throughout, to support P25 decoder and symbol filter.
This commit is contained in:
@@ -8,17 +8,32 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import sample.real.RealSampleListener;
|
||||
import dsp.filter.C4FMSymbolFilter;
|
||||
|
||||
public class C4FMDecoder implements RealSampleListener, Instrumentable
|
||||
{
|
||||
private final String TAP_C4FM_INPUT = "C4FM Input";
|
||||
private static final String TAP_C4FM_INPUT = "C4FM Decoder Input";
|
||||
private static final String TAP_SYMBOL_FILTER_OUTPUT = "C4FM Symbol Filter Output";
|
||||
|
||||
private ArrayList<Tap> mTaps;
|
||||
private FloatTap mInputTap;
|
||||
private FloatTap mSymbolFilterOutputTap;
|
||||
|
||||
private C4FMSymbolFilter mSymbolFilter = new C4FMSymbolFilter();
|
||||
|
||||
private RealSampleListener mInput;
|
||||
|
||||
public C4FMDecoder()
|
||||
{
|
||||
mInput = mSymbolFilter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receive( float sample )
|
||||
{
|
||||
mInput.receive( sample );
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Tap> getTaps()
|
||||
{
|
||||
@@ -28,6 +43,9 @@ public class C4FMDecoder implements RealSampleListener, Instrumentable
|
||||
|
||||
FloatTap floatTap = new FloatTap( TAP_C4FM_INPUT, 0, 1.0f );
|
||||
mTaps.add( floatTap );
|
||||
|
||||
FloatTap symbolTap = new FloatTap( TAP_SYMBOL_FILTER_OUTPUT, 10, 0.1f );
|
||||
mTaps.add( symbolTap );
|
||||
}
|
||||
|
||||
return mTaps;
|
||||
@@ -40,6 +58,12 @@ public class C4FMDecoder implements RealSampleListener, Instrumentable
|
||||
{
|
||||
case TAP_C4FM_INPUT:
|
||||
mInputTap = (FloatTap)tap;
|
||||
mInput = mInputTap;
|
||||
mInputTap.setListener( mSymbolFilter );
|
||||
break;
|
||||
case TAP_SYMBOL_FILTER_OUTPUT:
|
||||
mSymbolFilterOutputTap = (FloatTap)tap;
|
||||
mSymbolFilter.setListener( mSymbolFilterOutputTap );
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -50,17 +74,13 @@ public class C4FMDecoder implements RealSampleListener, Instrumentable
|
||||
switch( tap.getName() )
|
||||
{
|
||||
case TAP_C4FM_INPUT:
|
||||
mInputTap = null;
|
||||
mInput = mSymbolFilter;
|
||||
mInputTap = null;
|
||||
break;
|
||||
case TAP_SYMBOL_FILTER_OUTPUT:
|
||||
mSymbolFilter.removeListener( mSymbolFilterOutputTap );
|
||||
mSymbolFilterOutputTap = null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receive( float t )
|
||||
{
|
||||
if( mInputTap != null )
|
||||
{
|
||||
mInputTap.receive( t );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user