GrArbFunc.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
#ifndef _GRARBFUNC_H_
00024
#define _GRARBFUNC_H_
00025
00026
#include <VrSigProc.h>
00027
00040
template<
class iType,
class oType>
00041 class GrArbFunc :
public VrSigProc {
00042
public:
00043 GrArbFunc (
oType (*f)(
const iType&) ) :
00044
VrSigProc (1, sizeof (
iType), sizeof (
oType)),
00045
func(f) {}
00046
00047 virtual const char *
name() {
return "GrArbFunc"; }
00048
00049
virtual int work(
VrSampleRange output,
void *o[],
00050
VrSampleRange inputs[],
void *i[]);
00051
00052
protected:
00053
oType (*func)(
const iType&);
00054 };
00055
00056
template<
class iType,
class oType>
int
00057 GrArbFunc<iType,oType>::work(
VrSampleRange output,
void *ao[],
00058
VrSampleRange inputs[],
void *ai[])
00059 {
00060
iType **i = ((
iType **)ai);
00061
oType **o = ((
oType **)ao);
00062
unsigned int size = output.
size;
00063
00064
for (
unsigned int x = 0; x < size; x++)
00065 o[0][x] = (*func)(reinterpret_cast<const iType &>(i[0][x]));
00066
00067
00068
return output.
size;
00069 }
00070
00071
00072
#endif
Generated on Wed Aug 4 02:22:03 2004 for GNU Radio by
1.3.8