FAUST compiler  0.9.9.6b8
description.hh
Go to the documentation of this file.
1 #ifndef __DESCRIPTION__
2 #define __DESCRIPTION__
3 
4 //------------------------------------
5 // generation of an xml description
6 //------------------------------------
7 
8 #include <string>
9 #include <list>
10 #include <set>
11 #include <map>
12 #include <string>
13 #include "signals.hh"
14 #include "smartpointer.hh"
15 #include "tlib.hh"
16 #include "uitree.hh"
17 
18 using namespace std;
19 
20 void extractMetadata(const string& fulllabel, string& label, map<string, set<string> >& metadata);
21 string extractName(Tree fulllabel);
22 
24 {
25  string fName;
26  string fAuthor;
27  string fCopyright;
28  string fLicense;
29  string fVersion;
30 
31  string fClassName;
32  int fInputs;
33  int fOutputs;
34  int fWidgetID;
37  list<string> fActiveLines;
38  list<string> fPassiveLines;
39  list<string> fLayoutLines;
40  list<int> fLayoutTabs;
41 
42 
43  public:
44 
45  Description(): /*fName("Unknow"),
46  fAuthor("Unknow"),
47  fCopyright("Unknow"),
48  fLicense("Unknow"),
49  fVersion("Unknow"),*/
50 
51  fInputs(0),
52  fOutputs(0),
53  fWidgetID(0),
54  fActiveWidgetCount(0),
55  fPassiveWidgetCount(0)
56  {}
57 
58  Description* name(const string& s) { fName = s; return this; }
59  Description* author(const string& s) { fAuthor = s; return this; }
60  Description* copyright(const string& s) { fCopyright = s; return this; }
61  Description* license(const string& s) { fLicense = s; return this; }
62  Description* version(const string& s) { fVersion = s; return this; }
63 
64  Description* className(const string& s) { fClassName = s; return this; }
65  Description* inputs(int n) { fInputs = n; return this; }
66  Description* outputs(int n) { fOutputs = n; return this; }
67 
68  void ui(Tree t);
69  void print(int n, ostream& fout);
70 
71 
72  private:
73  void addGroup(int level, Tree t);
74  int addWidget(Tree label, Tree varname, Tree sig);
75 
76  void tab (int n, ostream& fout);
77  void addActiveLine(const string& l) { fActiveLines.push_back(l);}
78  void addPassiveLine(const string& l) { fPassiveLines.push_back(l);}
79  void addLayoutLine(int n, const string& l) { fLayoutTabs.push_back(n); fLayoutLines.push_back(l);}
80 
81 
82 };
83 
84 #endif
Description * name(const string &s)
Definition: description.hh:58
Description * className(const string &s)
Definition: description.hh:64
Description * author(const string &s)
Definition: description.hh:59
Description * copyright(const string &s)
Definition: description.hh:60
void tab(int n, ostream &fout)
Definition: klass.cpp:68
void extractMetadata(const string &fulllabel, string &label, map< string, set< string > > &metadata)
Extracts metdata from a label : 'vol [unit: dB]' -> 'vol' + metadata.
Definition: description.cpp:14
list< string > fLayoutLines
Definition: description.hh:39
list< string > fActiveLines
Definition: description.hh:37
void addActiveLine(const string &l)
Definition: description.hh:77
A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches.
Definition: tree.hh:109
string fClassName
Definition: description.hh:31
string extractName(Tree fulllabel)
string fVersion
Definition: description.hh:29
list< int > fLayoutTabs
Definition: description.hh:40
string fCopyright
Definition: description.hh:27
int fActiveWidgetCount
Definition: description.hh:35
Description * inputs(int n)
Definition: description.hh:65
Description * outputs(int n)
Definition: description.hh:66
Description * license(const string &s)
Definition: description.hh:61
string fName
Definition: description.hh:25
int fPassiveWidgetCount
Definition: description.hh:36
Description * version(const string &s)
Definition: description.hh:62
list< string > fPassiveLines
Definition: description.hh:38
string fLicense
Definition: description.hh:28
string fAuthor
Definition: description.hh:26
void addPassiveLine(const string &l)
Definition: description.hh:78
void addLayoutLine(int n, const string &l)
Definition: description.hh:79
void print(Tree t, FILE *out)
Definition: list.cpp:154