VVSDK  1.0
The VVAmbisonic Library
AVVDecode.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2013 David McGriffy, all rights reserved
3  */
4 
5 #ifndef __AVVDECODE_H_INCLUDED
6 #define __AVVDECODE_H_INCLUDED
7 
8 #include <string>
9 
10 #include <armadillo>
11 
12 #include "VVAmbisonic.h"
13 #include "ShelfFilterI.h"
14 #include "NFCFilter.h"
15 #include "AVVDecodeBase.h"
16 
17 using namespace std;
18 
20 {
21 public:
22  AVVDecode(long sampleRate);
23  ~AVVDecode();
24 
25  bool canProcess();
26  void processReplacing(float **inputs, float **outputs, int sampleFrames);
27  void setSamplingRate(float sampleRate);
28 
29  // overrides to call calcMatrix
30  void setParameter(int index, float value);
31  int setProgram(int program);
32  int setProgram(string programName);
33 
34  void getInvAngles(float (*azi)[MAXMICS], float (*elev)[MAXMICS], float (*dir)[MAXMICS]);
35 
36 private:
37  void initPrograms();
38  void initFilters();
39  void clearBuffers();
40  void calcMatrix();
41 
42  long delay;
43  long inPos;
44  long outPos;
45 
46  float nodeBuf[MAXMICS][BUFFERLEN];
47  int m_nBufPos;
48  int m_nOutPos;
49 
50  CShelfFilterI m_shelf[MAXMICS];
51  CNFCFilter m_nfc[MAXMICS];
52 
53  arma::fmat M;
54 };
55 
56 #endif
Definition: AVVDecodeBase.h:47
#define BUFFERLEN
Definition: VVAmbisonic.h:24
Definition: AVVDecode.h:19
Definition: NFCFilter.h:18
C++ API to VVSDK.
#define MAXMICS
Definition: AVVDecodeBase.h:14
Definition: ShelfFilterI.h:17
#define impexp_spec
Definition: VVAmbisonic.h:19
EXPORTED_FUNCTION int setProgram(int program)
Definition: VVTetraC.cpp:42
EXPORTED_FUNCTION bool canProcess()
Definition: VVTetraC.cpp:95