00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef SPLITTER_MODULE
00034 #define SPLITTER_MODULE
00035
00036 #include "syn/Stream/OpenALAudioContext.h"
00037 #include "syn/Stream/OpenALAudioOStream.h"
00038 #include "syn/Core/SampleBufferQueue.h"
00039 #include "syn/Core/SampleBufferQueuePtr.h"
00040 #include "syn/Core/Module.h"
00041
00042 namespace syn
00043 {
00048 class SplitterModule : public Module
00049 {
00050 public:
00051 SplitterModule();
00052 virtual ~SplitterModule() {};
00053 virtual void update();
00054
00055 virtual bool open();
00056 virtual bool isOpen() { return mIsOpen; }
00057 void close();
00058
00062 virtual unsigned int pcount() const
00063 {
00064 return mPutCount;
00065 }
00066
00068 virtual Module* clone() const
00069 {
00070 SplitterModule* mod = new SplitterModule;
00071 return mod;
00072 }
00073
00077 virtual void getParam( const std::string& key, MultivariateType& value )
00078 {
00079 }
00080
00082 virtual void setParam( const std::string& key, const MultivariateType& value )
00083 {
00084 }
00086
00087 private:
00088 TerminalPtr mTerminal;
00089
00090 void setDoneState( bool state );
00091 bool isOutputHigh();
00092
00093 syn::AudioFormat mFmt;
00094
00095 int mPutCount;
00096 bool mIsOpen;
00097
00099
00100
00102
00103 };
00104
00105 }
00106
00107 #endif //SPLITTER_MODULE