|
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 >. |