00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include <dsp/DSPOp.hh>
00024 #include <dsp/Filter.hh>
00025
00026 #include "Config.h"
00027 #include "ArrayBase.hh"
00028
00029
00030 #ifndef ARRAYDIPOLE_HH
00031 #define ARRAYDIPOLE_HH
00032
00033
00037 class clArrayDipole : private clArrayBase
00038 {
00039 bool bInitialized;
00040 long lWindowSize;
00041 long lBufferSize;
00042 long lBaseIdx;
00043 int iSampleRate;
00044 GDT fSpacing;
00045 GDT fDelay;
00047 clDSPAlloc RawBuf[2];
00049 clDSPAlloc FiltBuf[2];
00051 clDSPAlloc HFBuf[2];
00053 clFilter FilterBank[4];
00054 public:
00055 clArrayDipole ();
00056 ~clArrayDipole ();
00070 bool Initialize (GDT, GDT, int, long, GDT, bool);
00074 void Uninitialize ();
00081 GDT *GetRawPtr (long);
00083 GDT *GetFiltPtr (long);
00085 GDT *GetHFPtr (long);
00093 long GetMaxDelay ();
00103 GDT GetArrayFreq ();
00114 GDT GetDelay (GDT);
00125 GDT GetDelayTime (long, GDT);
00134 long GetDelaySamples (long, GDT);
00140 void SetLowFreqLimit (GDT);
00151 void AddData (const GDT *, long, long);
00158 void GetRawData (GDT **, GDT);
00165 GDT *GetRawDataPtr (long, GDT);
00172 void GetFilteredData (GDT **, GDT);
00179 GDT *GetFilteredDataPtr (long, GDT);
00187 void GetAudioData (GDT *, GDT, bool);
00188 };
00189
00190 #endif