CSL  5.2
SimplePanner.h
Go to the documentation of this file.
1 //
2 // SimplePanner.h -- Simple 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  virtual void nextBuffer(Buffer &outputBuffer) throw (CException); ///< fill the buffer with the next buffer_length of values
25 
26 protected:
27  Mixer mDryMix; ///< direct send mixer
28  Mixer mFiltMix; ///< LPF filter send mix
29  Mixer mRevMix; ///< reverb send mixer
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  UGenVector mPanners; ///< Vector of pointers to the panners
40 };
41 
42 } // end namespace
43 
44 #endif