00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _GEDDEI_XXCOUPLING_H
00011 #define _GEDDEI_XXCOUPLING_H
00012
00013 #ifdef __GEDDEI_BUILD
00014 #include "bufferdatas.h"
00015 #else
00016 #include <geddei/bufferdatas.h>
00017 #endif
00018
00019 namespace Geddei
00020 {
00021
00022 class SignalTypeRefs;
00023 class Properties;
00024
00029 class xxCoupling
00030 {
00031 protected:
00042 virtual void transact(const BufferDatas &d, const uint chunks) = 0;
00043
00052 virtual BufferDatas deliverResults(uint *timeTaken = 0) = 0;
00053
00057 virtual void stoppingL() {}
00058
00063 virtual void stoppedL() {}
00064
00068 virtual void stoppingR() {}
00069
00074 virtual void stoppedR() {}
00075
00076 public:
00091 virtual void specifyTypes(const SignalTypeRefs &inTypes, const SignalTypeRefs &outTypes) = 0;
00092
00098 virtual void initFromProperties(const Properties &p) = 0;
00099
00103 virtual void go() = 0;
00104
00108 virtual void stop() = 0;
00109
00116 virtual void defineIO(const uint numInputs, const uint numOutputs) = 0;
00117
00124 void stopping() { stoppingR(); stoppingL(); }
00125
00132 void stopped() { stoppedL(); stoppedR(); }
00133
00137 virtual ~xxCoupling() {}
00138 };
00139
00140 };
00141
00142 #endif