VVSDK  1.0
The VVAmbisonic Library
FilterCoefficients.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2013 David McGriffy, all rights reserved
3  */
4 
5 #ifndef FILTERCOEFFICIENTS_H
6 #define FILTERCOEFFICIENTS_H
7 
8 #include <map>
9 
10 #if _MSC_VER > 1000
11 #pragma once
12 #endif // _MSC_VER > 1000
13 
14 #pragma warning(disable:4786)
15 
16 #define MAXCOEFCHAN 4
17 
23 {
24 public:
26  virtual ~CFilterCoefficients();
28  void setCoefficientFileName(const char *sfileName);
29  int getFilterSize(int chan, float sampleRate);
30  void setFilterSize(int chan, float sampleRate, int newFilterSize);
31  void* getCoefficients(int chan, float sampleRate);
32  void setCoefficients(int chan, float sampleRate, float* coefs);
34  // old two channel methods
35  int getFilterSizeA(float sampleRate);
36  int getFilterSizeB(float sampleRate);
37  void setFilterSizeA(float sampleRate, int newFilterSize);
38  void setFilterSizeB(float sampleRate, int newFilterSize);
39  void* getCoefficientsA(float sampleRate);
40  void* getCoefficientsB(float sampleRate);
41  void setCoefficientsA(float sampleRate, float *coefs);
42  void setCoefficientsB(float sampleRate, float *coefs);
44 protected:
45  void freeAll();
46 
47  // list of filter buffers for given sample rate
48  std::map<float, void*> m_mapCoefListA;
49  std::map<float, void*> m_mapCoefListB;
50  std::map<float, int> m_mapCoefSizesA;
51  std::map<float, int> m_mapCoefSizesB;
52 
53  std::map<float, void*> m_mapCoefList[MAXCOEFCHAN];
54  std::map<float, int> m_mapCoefSizes[MAXCOEFCHAN];
55 
56  char errorMsg[1024];
57  int errorCode;
58 };
59 
60 #endif // !defined(AFX_FILTERCOEFFICIENTS_H__C87E300F_2B7F_4BEF_B6F1_24826F5C4674__INCLUDED_)
void * getCoefficientsB(float sampleRate)
Definition: FilterCoefficients.cpp:169
int getFilterSizeA(float sampleRate)
Definition: FilterCoefficients.cpp:144
void * getCoefficientsA(float sampleRate)
Definition: FilterCoefficients.cpp:164
char errorMsg[1024]
Definition: FilterCoefficients.h:56
std::map< float, int > m_mapCoefSizesA
Definition: FilterCoefficients.h:50
std::map< float, void * > m_mapCoefList[MAXCOEFCHAN]
Definition: FilterCoefficients.h:53
int getFilterSizeB(float sampleRate)
Definition: FilterCoefficients.cpp:149
std::map< float, void * > m_mapCoefListA
Definition: FilterCoefficients.h:48
int errorCode
Definition: FilterCoefficients.h:57
void setFilterSizeB(float sampleRate, int newFilterSize)
Definition: FilterCoefficients.cpp:159
void freeAll()
Definition: FilterCoefficients.cpp:54
std::map< float, void * > m_mapCoefListB
Definition: FilterCoefficients.h:49
CFilterCoefficients()
Definition: FilterCoefficients.cpp:45
void setFilterSizeA(float sampleRate, int newFilterSize)
Definition: FilterCoefficients.cpp:154
int getFilterSize(int chan, float sampleRate)
Definition: FilterCoefficients.cpp:102
void setCoefficientsB(float sampleRate, float *coefs)
Definition: FilterCoefficients.cpp:179
void * getCoefficients(int chan, float sampleRate)
Definition: FilterCoefficients.cpp:123
void setCoefficientsA(float sampleRate, float *coefs)
Definition: FilterCoefficients.cpp:174
void setFilterSize(int chan, float sampleRate, int newFilterSize)
Definition: FilterCoefficients.cpp:111
std::map< float, int > m_mapCoefSizes[MAXCOEFCHAN]
Definition: FilterCoefficients.h:54
#define MAXCOEFCHAN
Definition: FilterCoefficients.h:16
Definition: FilterCoefficients.h:22
void setCoefficients(int chan, float sampleRate, float *coefs)
Definition: FilterCoefficients.cpp:137
virtual ~CFilterCoefficients()
Definition: FilterCoefficients.cpp:49
void setCoefficientFileName(const char *sfileName)
Definition: FilterCoefficients.cpp:61
std::map< float, int > m_mapCoefSizesB
Definition: FilterCoefficients.h:51