AmbisonicPanner.h

Go to the documentation of this file.
00001 //
00002 //  AmbisonicPanner.h -- Ambisonic effects and panners.
00003 //  See the copyright notice and acknowledgment of authors in the file COPYRIGHT
00004 //  Higher Order Ambisonic classes written by Jorge Castellanos, Graham Wakefield, Florian Hollerweger, 2005
00005 //
00006 
00007 #ifndef CSL_AMBISONIC_PANNER_H
00008 #define CSL_AMBISONIC_PANNER_H
00009 
00010 #include "CSL_Core.h"
00011 #include "SpatialPanner.h"
00012 #include "Ambisonic.h"
00013 #include "AmbisonicUtilities.h"
00014 #include "SpeakerLayout.h"
00015 
00016 namespace csl {
00017 
00021 
00022 class AmbisonicPanner : public SpatialPanner {
00023 public:
00024     AmbisonicPanner(unsigned order = 1, SpeakerLayout *layout = SpeakerLayout::defaultSpeakerLayout()); // Default constructor
00025     AmbisonicPanner(unsigned hOrder, unsigned vOrder, SpeakerLayout *layout = SpeakerLayout::defaultSpeakerLayout()); // Default constructor
00026     ~AmbisonicPanner();
00027 
00028     virtual void addSource(SpatialSource &s);       
00029     virtual void removeSource(SpatialSource &s);    
00030 
00031     void rotate(float amount); // AN ANGLE
00032     
00033     virtual void nextBuffer(Buffer &outputBuffer, unsigned outBufNum) throw (CException); 
00034 
00035     void dump() { }; 
00036 
00037 protected:
00038     AmbisonicMixer *mMixer;
00039     AmbisonicDecoder *mDecoder;
00040     AmbisonicRotator *mRotator;
00041 //  void initialize();
00042 
00043     virtual void *cache();      
00044     
00045 //  virtual void speakerLayoutChanged();    ///< called when the speaker layout changes, so panners update precalculated data   
00046 
00047 };
00048 
00049 } // end namespace
00050 
00051 #endif

Generated on Thu Sep 17 23:14:16 2009 for CSL by  doxygen 1.5.8