|
Public Member Functions |
| | VrSigProc (int number_of_outputs, unsigned int arg_itype_size, unsigned int arg_type_size) |
| virtual | ~VrSigProc () |
| bool | connect_proc (VrSigProc *proc, port n) |
| | connect our next input to proc's nth output
|
| virtual const char * | name () |
| | default name for a module (override with actual name)
|
| virtual int | forecast (VrSampleRange output, VrSampleRange inputs[]) |
| | map output range to required input ranges
|
| virtual float | memoryTouched () |
| virtual int | work (VrSampleRange output, void *o[], VrSampleRange inputs[], void *i[])=0 |
| | Generate up to output.size output points at o[output#][sample#] using data at the inputptrs[input#][sample#].
|
| virtual float | averageInputUse (int n) |
| virtual int | checkOutputSamplingFrequency (float) |
| bool | isSink () |
| | return true iff this VrSigProc is a sink
|
| virtual int | setSamplingFrequency (double sf) |
| virtual bool | dataReady (VrSampleRange r) |
| | has the data been computed?
|
| virtual void | size_setup (unsigned int size) |
| virtual void | setup () |
| VrSampleIndex | getMarkedWP () |
| unsigned int | getMaxOutputSize () |
| VrSampleIndex | getWP () |
| double | getSamplingFrequency () |
| virtual int | callback (int attribute_number, float value) |
Protected Member Functions |
| virtual VrSigProc * | getUpstreamModuleN (port p) |
| double | getInputSamplingFrequencyN (port p) |
| void | setOutputSize (int o) |
| | set required multiple for number of items produced
|
| unsigned int | getOutputSize () |
| void | setup_upstream () |
| int | getNumberInputs () |
| bool | is_synced (VrSampleIndex arg_index) |
| void | sync (VrSampleIndex arg_index) |
| | force rest of procedure to run sequentially
|
| VrSampleIndex | proc_minRP () |
Protected Attributes |
| VrBuffer ** | outBuffer |
| unsigned int | maxDSReadSize |
| | max Down Stream Read Size. How big a read we might get. maxOutSize should never exceed this.
|
| unsigned int | numberInputs |
| unsigned int | numberOutputs |
Private Member Functions |
| | MUTEX_DECLARE (mutex) |
| void | attach_writer (writerLL *r) |
| void | detach_writer (writerLL *r) |
| void | init_base () |
| | Cause initialize methods to be called. This is called on all sinks for which isConnectedToSource is true, and results in the pre_initialize and initialize methods being called in the order source to sink.
|
| virtual void | pre_initialize () |
| | Set sampling frequency based on upstream sampling freq.
|
| virtual void | initialize () |
| | Initialize any local state that is dependent on sampling frequency.
|
| virtual bool | isConnectedToSource () |
| int | minwritespace (VrSampleIndex newWP, unsigned int desired) |
| void | initOutputBuffers (int n) |
| virtual void | initOutputBuffer (int n) |
| void | initMarkedData () |
| virtual unsigned int | mapSizeUp (int i, unsigned int size) |
| virtual bool | dataMarked (VrSampleRange r) |
| | is data marked to be computed?
|
| virtual int | markData (VrSampleRange r) |
| | figure out what data to compute
|
| virtual int | markDataUpstream (VrSampleRange *inputs, bool *dataMarkedUpstream) |
| | propagate marking upstream
|
| virtual bool | compute () |
| | compute the marked data
|
Private Attributes |
| int | uses_sync |
| double | proc_samplingFrequency |
| volatile VrSampleIndex | WP |
| | data before this has been written
|
| volatile VrSampleIndex | markedWP |
| | data before this has been marked and will be written
|
| unsigned int | maxOutSize |
| | maximum size that we should ever output at once.
|
| VrConnect ** | inputConn |
| unsigned int | setupCalled |
| unsigned int | outputSize |
| unsigned int | type_size |
| unsigned int | itype_size |
| unsigned int | initializeCalled |
| VrSampleRange | myMarkedData |
| VrSampleRange * | inputs_forecasted |
| writerLL * | myWriterLL |
| readerLL * | myReaderLLs |
| volatile writerLL * | first |
| volatile writerLL * | last |
Static Private Attributes |
| static const int | MARK_ALREADY = 2 |
| | all data is already computed
|
| static const int | MARK_READY = 1 |
| | data is ready to be computed (and has been marked)
|
| static const int | MARK_READY_NO_MARK = 0 |
| | data is ready on this level or above,
|
| static const int | MARK_NO_READY = -1 |
| | no data is ready to be computed
|
| static const int | MARK_THREAD = -2 |
| | data is marked by another thread
|
| static const int | MARK_continue = -3 |
| | flag distinct from all others (keep last)
|
Friends |
| class | VrMultiTask |
All signal processing modules are descendants from VrSigProc. In the simplest case a user defines a subclass of VrSigProc and overrides the forecast and work methods.
|
|
Generate up to output.size output points at o[output#][sample#] using data at the inputptrs[input#][sample#].
Pointers start at corresponding VrSampleIndex in the range params. output.size is a multiple of outputSize. Returns the number of outputs (<= output.size) that it was able to compute with the given input ranges. If this value is < output.size, forecast() will need to be called again.
Implemented in VrSink< iType >, VrSource< oType >, VrAmp< iType, oType >, VrAWGN< iType >, VrBits2Symbols, VrComplexDemod< iType >, VrComplexFIRfilter< iType >, VrCorr< iType, oType >, VrDigMod< iType, oType >, VrIIRfilter< iType, oType >, VrInterpolatingSigProc< iType, oType >, VrMixer< iType, oType >, VrMUX< T >, VrNop< ioType >, VrQuadratureDemod< oType >, VrRealFIRfilter< iType, oType >, VrSum< iType, oType >, VrSyncCorr< iType >, VrSyncFilter< iType >, GrAtscBitTimingLoop, GrAtscBitTimingLoop2, GrAtscBitTimingLoop3, GrAtscConvert2xTo20, GrAtscDataSegToSoftDataSeg, GrAtscDeinterleaver, GrAtscDerandomizer, GrAtscEqualizer, GrAtscFieldSyncChecker, GrAtscFieldSyncCorrelator, GrAtscFieldSyncDemux, GrAtscFieldSyncMux, GrAtscFPLL, GrAtscInterleaver, GrAtscRandomizer, GrAtscRSDecoder, GrAtscRSEncoder, GrAtscSegSymSyncImpl, GrAtscSymbolMapper< oType >, GrAtscTrellisEncoder, GrAtscViterbiDecoder, GrAdd< iType, oType >, GrAGC< iType, oType >, GrArbFunc< iType, oType >, GrComplexVCOMixer< iType, oType >, GrConvertFS, GrConvertSF, GrCostasLoop< iType, oType >, GrDelay< iType, oType >, GrFastChannelizer< iType >, GrFFT_vCC, GrFFT_vFC, GrFIRfilterCCC, GrFIRfilterCCF, GrFIRfilterFCC, GrFIRfilterFFF, GrFIRfilterFSF, GrFIRfilterSCC, GrFIRfilterSIS, GrFloatToComplex, GrFreqXlatingFIRfilterCCC, GrFreqXlatingFIRfilterCCF, GrFreqXlatingFIRfilterFCC, GrFreqXlatingFIRfilterFCF, GrFreqXlatingFIRfilterSCC, GrFreqXlatingFIRfilterSCF, GrHilbert< iType >, GrIIRfilter< iType, oType, taptype >, GrImag< oType >, GrInterpolator< iType, oType >, GrKeepOneInN, GrLimiter< iType, oType >, GrMagnitude< iType, oType >, GrMixer< iType, oType >, GrMultiply< iType, oType >, GrPAMMod< iType, oType >, GrParallelToSerial, GrReal< oType >, GrRemoveDcFFF, GrSerialToParallel, GrSSBMod< oType >, GrWeaverModHead< iType, oType >, GrWeaverModTail< iType, oType >, GrZOH< iType, oType >, VrFixOffset< iType, oType >, GrSink, GrSource, VrSink< unsigned long >, VrSink< VrComplex >, VrSource< unsigned long >, and VrSyncCorr< char >. |