CSL  5.2
SimplePanner2.h
Go to the documentation of this file.
1 //
2 // SimplePanner.h -- Basic spatial panner using a front/rear filter.
3 // See the copyright notice and acknowledgment of authors in the file COPYRIGHT
4 //
5 
6 #ifndef CSL_SIMPLE_PANNER_H
7 #define CSL_SIMPLE_PANNER_H
8 
9 #include "CSL_Includes.h"
10 #include "SpatialPanner.h"
11 
12 namespace csl {
13 
14 /// Simple Panner
15 
16 class SimplePanner : public SpatialPanner {
17 public:
18  SimplePanner(); // Default constructor
19  ~SimplePanner();
20 
21  void addSource(SpatialSource &s); ///< Implement Panner's addSource, inserting a panner to each source.
22  void removeSource(SpatialSource &s); ///< Remove a sound source
23 
24  void nextBuffer(Buffer &outputBuffer /*, unsigned outBufNum */) throw (CException); ///< fill the buffer with the next buffer_length of values
25 
26 protected:
27  Mixer mDryMix; ///< direct (dry) send mixer
28  Mixer mRevMix; ///< reverb send mixer
29  Mixer mFiltMix; ///< LPF filter send mix
30 
31  Splitter mFiltSplit; ///< stereo-to-mono splitter (for filters)
32  Butter mRLPF; ///< left &
33  Butter mLLPF; ///< right lo-pass filters
34  Joiner mFiltJoin; ///< mono-to-stereo joiner (for filters)
35 
36  Stereoverb mReverb; ///< stereo freeverb
37  Mixer mOutMix; ///< master output mixer
38 
39  UGenIMap mPanners; ///< Vector of pointers to the panners
40  UGenIMap mFanOuts; ///< Vector of pointers to the fan-outs
41 
42 };
43 
44 } // end namespace
45 
46 #endif