X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/1059e1cc0c2ecfa237406949aa26155b6a5b9154..66f23d4fabf89ad09adbd4dfc15ac6b5b2b7da83:/interpreter/preprocessor/faust-0.9.47mr3/compiler/headers/description.hh diff --git a/interpreter/preprocessor/faust-0.9.47mr3/compiler/headers/description.hh b/interpreter/preprocessor/faust-0.9.47mr3/compiler/headers/description.hh new file mode 100644 index 0000000..67d15d2 --- /dev/null +++ b/interpreter/preprocessor/faust-0.9.47mr3/compiler/headers/description.hh @@ -0,0 +1,82 @@ +#ifndef __DESCRIPTION__ +#define __DESCRIPTION__ + +//------------------------------------ +// generation of an xml description +//------------------------------------ + +#include +#include +#include +#include +#include +#include "signals.hh" +#include "smartpointer.hh" +#include "tlib.hh" +#include "uitree.hh" + +using namespace std; + +void extractMetadata(const string& fulllabel, string& label, map >& metadata); +string extractName(Tree fulllabel); + +class Description +{ + string fName; + string fAuthor; + string fCopyright; + string fLicense; + string fVersion; + + int fInputs; + int fOutputs; + int fWidgetID; + int fActiveWidgetCount; + int fPassiveWidgetCount; + list fActiveLines; + list fPassiveLines; + list fLayoutLines; + list fLayoutTabs; + + + public: + + Description(): /*fName("Unknow"), + fAuthor("Unknow"), + fCopyright("Unknow"), + fLicense("Unknow"), + fVersion("Unknow"),*/ + + fInputs(0), + fOutputs(0), + fWidgetID(0), + fActiveWidgetCount(0), + fPassiveWidgetCount(0) + {} + + Description* name(const string& s) { fName = s; return this; } + Description* author(const string& s) { fAuthor = s; return this; } + Description* copyright(const string& s) { fCopyright = s; return this; } + Description* license(const string& s) { fLicense = s; return this; } + Description* version(const string& s) { fVersion = s; return this; } + + Description* inputs(int n) { fInputs = n; return this; } + Description* outputs(int n) { fOutputs = n; return this; } + + void ui(Tree t); + void print(int n, ostream& fout); + + + private: + void addGroup(int level, Tree t); + int addWidget(Tree label, Tree varname, Tree sig); + + void tab (int n, ostream& fout); + void addActiveLine(const string& l) { fActiveLines.push_back(l);} + void addPassiveLine(const string& l) { fPassiveLines.push_back(l);} + void addLayoutLine(int n, const string& l) { fLayoutTabs.push_back(n); fLayoutLines.push_back(l);} + + +}; + +#endif