@Override public List<Tap> getTaps() { if (mAvailableTaps == null) { mAvailableTaps = new ArrayList<Tap>(); if (mSourceSampleType == SampleType.COMPLEX) { if (mCQPSKDemodulator != null) { mAvailableTaps.addAll(mCQPSKDemodulator.getTaps()); } // mAvailableTaps.add( new ComplexTap( INSTRUMENT_COMPLEX_INPUT, 0, 1.0f ) ); // mAvailableTaps.add( new ComplexTap( INSTRUMENT_BASEBAND_FILTER_OUTPUT, 0, 1.0f ) ); } else { mAvailableTaps.add(new FloatTap(INSTRUMENT_REAL_INPUT, 0, 1.0f)); } if (mModulation == Modulation.C4FM) { mAvailableTaps.add(new FloatTap(INSTRUMENT_DGC_OUTPUT, 0, 1.0f)); mAvailableTaps.add(new FloatTap(INSTRUMENT_C4FM_SYMBOL_FILTER_OUTPUT, 0, 0.1f)); mAvailableTaps.add(new DibitTap(INSTRUMENT_C4FM_SLICER_OUTPUT, 0, 0.1f)); if (mSymbolFilter != null) { mAvailableTaps.addAll(mSymbolFilter.getTaps()); } } else { mAvailableTaps.add(new ComplexTap(INSTRUMENT_AGC_OUTPUT, 0, 1.0f)); mAvailableTaps.add(new QPSKTap(INSTRUMENT_QPSK_DEMODULATOR_OUTPUT, 0, 1.0f)); mAvailableTaps.add(new DibitTap(INSTRUMENT_CQPSK_SLICER_OUTPUT, 0, 0.1f)); } } return mAvailableTaps; }