00001 /* 00002 * AmbisonicPanner.h 00003 * CSL 00004 * 00005 * Created by Bebelutz on 6/28/06. 00006 * Copyright 2006 Jorge Castellanos. All rights reserved. 00007 * 00008 */ 00009 00010 #ifndef CSL_AMBISONIC_PANNER_H 00011 #define CSL_AMBISONIC_PANNER_H 00012 00013 #include "CSL_Core.h" 00014 #include "Panner.h" 00015 #include "Ambisonic.h" 00016 #include "AmbisonicUtilities.h" 00017 #include "SpeakerLayout.h" 00018 00019 namespace csl { 00020 00024 class AmbisonicPanner : public Panner { 00025 public: 00026 AmbisonicPanner(unsigned order = 1, SpeakerLayout *layout = SpeakerLayout::defaultSpeakerLayout()); // Default constructor 00027 AmbisonicPanner(unsigned hOrder, unsigned vOrder, SpeakerLayout *layout = SpeakerLayout::defaultSpeakerLayout()); // Default constructor 00028 ~AmbisonicPanner(); 00029 00030 virtual void addSource(SpatSource &s); 00031 virtual void removeSource(SpatSource &s); 00032 00033 void rotate(float amount); // AN ANGLE 00034 00035 virtual void nextBuffer(Buffer &outputBuffer, unsigned outBufNum) throw (CException); 00036 00037 void dump() {}; 00038 00039 protected: 00040 AmbisonicMixer *mMixer; 00041 AmbisonicDecoder *mDecoder; 00042 AmbisonicRotator *mRotator; 00043 // void initialize(); 00044 00045 virtual void *cache(); 00046 00047 // virtual void speakerLayoutChanged(); ///< called when the speaker layout changes, so panners update precalculated data 00048 00049 }; 00050 00051 00052 } // end namespace 00053 00054 #endif
1.4.5-20051010