mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 08:37:25 -05:00
Memory/CPU performance improvement and Audio/Mixer source restructuring
Converted to use float primitives and to keep samples in buffer format until the sample rate is decimated to 48kHz. Added new non-recursive, CIC decimation filter -- untested Updated sound card/mixer input source management. Now testing for mono/stereo support for each card and limiting channel choices accordingly. Separated the mixersource into a ComplexMixer and and SimplexMixerSource. The ComplexMixer is used for sound card based tuners like the funcube. The SimplexMixerSource is used for demodulated sound card inputs. Interfaces for sample handling - standardized on using 'Complex' to indicate I/Q samples and 'Simplex' to indicate demodulated float samples. The processing chain now accepts either a decimated (48k) list of complex samples from a tuner channel source, or a 48k simplex buffer (array of demodulated float samples). Resolved issue with HackRF tuner not applying tuner configuration information.
This commit is contained in:
@@ -364,7 +364,14 @@ public class TunerManager
|
||||
|
||||
HackRFTuner tuner = new HackRFTuner( hackRFController );
|
||||
|
||||
return new TunerInitStatus( tuner, "LOADED" );
|
||||
TunerConfiguration config = getTunerConfiguration( tuner );
|
||||
|
||||
if( config != null )
|
||||
{
|
||||
tuner.apply( config );
|
||||
}
|
||||
|
||||
return new TunerInitStatus( tuner, "LOADED" );
|
||||
}
|
||||
catch( SourceException se )
|
||||
{
|
||||
@@ -475,98 +482,6 @@ public class TunerManager
|
||||
return new TunerInitStatus( null, reason );
|
||||
}
|
||||
|
||||
|
||||
// /**
|
||||
// * Get all USB tuner devices
|
||||
// */
|
||||
// private ArrayList<USBTunerDevice> getUSBTunerDevices()
|
||||
// {
|
||||
// StringBuilder sb = new StringBuilder();
|
||||
//
|
||||
// List<UsbDevice> devices = getUSBDevices();
|
||||
//
|
||||
// sb.append( "discovered [" + devices.size() +
|
||||
// "] attached USB devices\n" );
|
||||
//
|
||||
// ArrayList<USBTunerDevice> tuners = new ArrayList<USBTunerDevice>();
|
||||
//
|
||||
// for (UsbDevice device : devices )
|
||||
// {
|
||||
// String status = "\t[NOT RECOGNIZED]\t";
|
||||
//
|
||||
// TunerClass type = TunerClass.valueOf( device.getUsbDeviceDescriptor() );
|
||||
//
|
||||
// if( type != TunerClass.UNKNOWN )
|
||||
// {
|
||||
// status = "\t[RECOGNIZED] \t";
|
||||
// tuners.add( new USBTunerDevice( device, type) );
|
||||
// }
|
||||
//
|
||||
// sb.append( status );
|
||||
// sb.append( device.toString() );
|
||||
//
|
||||
// if( type != TunerClass.UNKNOWN )
|
||||
// {
|
||||
// sb.append( " " );
|
||||
// sb.append( type.getVendorDescription() );
|
||||
// sb.append( " " );
|
||||
// sb.append( type.getDeviceDescription() );
|
||||
// }
|
||||
//
|
||||
// sb.append( "\n" );
|
||||
// }
|
||||
//
|
||||
// mLog.info( "USB Device Discovery" );
|
||||
// mLog.info( sb.toString() );
|
||||
//
|
||||
// return tuners;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Gets all USB devices from the root hub downward, recursively, or
|
||||
// * returns empty list if none are discovered
|
||||
// */
|
||||
// public static List<UsbDevice> getUSBDevices()
|
||||
// {
|
||||
// ArrayList<UsbDevice> devices = new ArrayList<UsbDevice>();
|
||||
//
|
||||
// try
|
||||
// {
|
||||
// UsbServices services = UsbHostManager.getUsbServices();
|
||||
// devices = getUsbChildDevices( services.getRootUsbHub() );
|
||||
// }
|
||||
// catch( SecurityException e )
|
||||
// {
|
||||
// mLog.error( "security exception while getting USB devices", e );
|
||||
// }
|
||||
// catch( UsbException e )
|
||||
// {
|
||||
// mLog.error( "usb exception while getting USB devices", e );
|
||||
// }
|
||||
//
|
||||
// return devices;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Get (recursively) all usb child devices below the usb hub
|
||||
// */
|
||||
// public static ArrayList<UsbDevice> getUsbChildDevices( UsbHub hub )
|
||||
// {
|
||||
// ArrayList<UsbDevice> devices = new ArrayList<UsbDevice>();
|
||||
//
|
||||
// for ( UsbDevice device : (List<UsbDevice>) hub.getAttachedUsbDevices() )
|
||||
// {
|
||||
// devices.add( device );
|
||||
//
|
||||
// if ( device.isUsbHub() )
|
||||
// {
|
||||
// devices.addAll( getUsbChildDevices( (UsbHub)device ) );
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// return devices;
|
||||
// }
|
||||
|
||||
/**
|
||||
* Get a stored tuner configuration or create a default tuner configuration
|
||||
* for the tuner type, connected at the address.
|
||||
|
||||
Reference in New Issue
Block a user