00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MARSYAS_MARSYSTEMTEMPLATEADVANCED_H
00020 #define MARSYAS_MARSYSTEMTEMPLATEADVANCED_H
00021
00022 #include "MarSystem.h"
00023
00024 namespace Marsyas
00025 {
00032
00033
00034 struct MyHeader
00035 {
00036 std::string someString;
00037 mrs_natural someValue;
00038 bool someFlag;
00039 realvec someVec;
00040
00041
00042
00043 marsyas_EXPORT friend bool operator==(const MyHeader& hdr1, const MyHeader& hdr2);
00044 marsyas_EXPORT friend bool operator!=(const MyHeader& hdr1, const MyHeader& hdr2);
00045 marsyas_EXPORT friend MyHeader operator+(MyHeader& hdr1, MyHeader& hdr2);
00046 marsyas_EXPORT friend MyHeader operator-(MyHeader& hdr1, MyHeader& hdr2);
00047 marsyas_EXPORT friend MyHeader operator*(MyHeader& hdr1, MyHeader& hdr2);
00048 marsyas_EXPORT friend MyHeader operator/(MyHeader& hdr1, MyHeader& hdr2);
00049 marsyas_EXPORT friend std::ostream& operator<<(std::ostream& os, const MyHeader& hdr);
00050 marsyas_EXPORT friend std::istream& operator>>(std::istream& is, MyHeader& hdr);
00051 };
00052
00053
00054 typedef MarControlValueT<MyHeader> MyHeaderT;
00055
00056 class marsyas_EXPORT MarSystemTemplateAdvanced: public MarSystem
00057 {
00058 private:
00059 std::string someString_;
00060
00061
00062 void addControls();
00063
00064
00065
00066
00067
00068 MarControlPtr ctrl_header_;
00069
00070 void myUpdate(MarControlPtr sender);
00071
00072 public:
00073 MarSystemTemplateAdvanced(std::string name);
00074 MarSystemTemplateAdvanced(const MarSystemTemplateAdvanced& a);
00075 ~MarSystemTemplateAdvanced();
00076 MarSystem* clone() const;
00077
00078 void myProcess(realvec& in, realvec& out);
00079 };
00080
00081 }
00082
00083 #endif //MARSYAS_MARSYSTEMTEMPLATEADVANCED_H
00084