00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MARSYAS_Combinator_H
00020 #define MARSYAS_Combinator_H
00021
00022 #include "MarSystem.h"
00023
00024 namespace Marsyas
00025 {
00040 class marsyas_EXPORT Combinator: public MarSystem
00041 {
00042 private:
00043
00045 void addControls();
00046
00048 void myUpdate(MarControlPtr sender);
00049
00050
00051
00052
00053
00054
00055 enum Combinators_t
00056 {
00057 kAdd,
00058 kMult,
00059 kMax,
00060 kMin,
00061
00062 kNumCombinators
00063 };
00064 Combinators_t GetCombinatorIdx (const mrs_string ctrlString);
00065
00066 static const mrs_string combinatorStrings[kNumCombinators];
00067
00069 MarControlPtr ctrl_weights_,
00070 ctrl_combinator_,
00071 ctrl_numInputs_;
00072
00073 public:
00075 Combinator(std::string name);
00076
00078 Combinator(const Combinator& a);
00079
00081 ~Combinator();
00082
00084 MarSystem* clone() const;
00085
00087 void myProcess(realvec& in, realvec& out);
00088 };
00089
00090 }
00091
00092
00093 #endif
00094
00095