|
FAUST compiler
0.9.9.6b8
|
#include <description.hh>
Public Member Functions | |
| Description () | |
| Description * | name (const string &s) |
| Description * | author (const string &s) |
| Description * | copyright (const string &s) |
| Description * | license (const string &s) |
| Description * | version (const string &s) |
| Description * | inputs (int n) |
| Description * | outputs (int n) |
| void | ui (Tree t) |
| void | print (int n, ostream &fout) |
Private Member Functions | |
| 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) |
| void | addPassiveLine (const string &l) |
| void | addLayoutLine (int n, const string &l) |
Private Attributes | |
| string | fName |
| string | fAuthor |
| string | fCopyright |
| string | fLicense |
| string | fVersion |
| int | fInputs |
| int | fOutputs |
| int | fWidgetID |
| int | fActiveWidgetCount |
| int | fPassiveWidgetCount |
| list< string > | fActiveLines |
| list< string > | fPassiveLines |
| list< string > | fLayoutLines |
| list< int > | fLayoutTabs |
Definition at line 23 of file description.hh.
| Description::Description | ( | ) | [inline] |
Definition at line 44 of file description.hh.
: /*fName("Unknow"), fAuthor("Unknow"), fCopyright("Unknow"), fLicense("Unknow"), fVersion("Unknow"),*/ fInputs(0), fOutputs(0), fWidgetID(0), fActiveWidgetCount(0), fPassiveWidgetCount(0) {}
| void Description::addActiveLine | ( | const string & | l | ) | [inline, private] |
Definition at line 75 of file description.hh.
Referenced by addWidget().
{ fActiveLines.push_back(l);}

| void Description::addGroup | ( | int | level, |
| Tree | t | ||
| ) | [private] |
Definition at line 205 of file description.cpp.
References addLayoutLine(), addWidget(), hd(), isNil(), isUiFolder(), isUiWidget(), left(), right(), subst(), T(), tl(), tree2int(), tree2str(), and xmlize().
Referenced by ui().
{
Tree label, elements, varname, sig;
const char* groupnames[] = {"vgroup", "hgroup", "tgroup"};
if (isUiFolder(t, label, elements)) {
const int orient = tree2int(left(label));
const char * str = tree2str(right(label));
addLayoutLine(level, subst("<group type=\"$0\">", groupnames[orient]));
addLayoutLine(level+1, subst("<label>$0</label>", xmlize(str)));
while (!isNil(elements)) {
addGroup(level+1, right(hd(elements)));
elements = tl(elements);
}
addLayoutLine(level, "</group>");
} else if (isUiWidget(t, label, varname, sig)) {
int w = addWidget(label, varname, sig);
addLayoutLine(level, subst("<widgetref id=\"$0\" />", T(w)));
} else {
fprintf(stderr, "error in user interface generation 2\n");
exit(1);
}
}


| void Description::addLayoutLine | ( | int | n, |
| const string & | l | ||
| ) | [inline, private] |
Definition at line 77 of file description.hh.
Referenced by addGroup().
{ fLayoutTabs.push_back(n); fLayoutLines.push_back(l);}

| void Description::addPassiveLine | ( | const string & | l | ) | [inline, private] |
Definition at line 76 of file description.hh.
Referenced by addWidget().
{ fPassiveLines.push_back(l);}

| int Description::addWidget | ( | Tree | label, |
| Tree | varname, | ||
| Tree | sig | ||
| ) | [private] |
Definition at line 242 of file description.cpp.
References addActiveLine(), addPassiveLine(), fActiveWidgetCount, fPassiveWidgetCount, fWidgetID, isSigButton(), isSigCheckbox(), isSigHBargraph(), isSigHSlider(), isSigNumEntry(), isSigVBargraph(), isSigVSlider(), subst(), T(), tree2double(), tree2str(), and xmlize().
Referenced by addGroup().
{
Tree path, c, x, y, z;
// add an active widget description
if ( isSigButton(sig, path) ) {
fWidgetID++;
fActiveWidgetCount++;
addActiveLine(subst("<widget type=\"button\" id=\"$0\">", T(fWidgetID)));
addActiveLine(subst("\t<label>$0</label>", xmlize(tree2str(label))));
addActiveLine(subst("\t<varname>$0</varname>", tree2str(varname)));
addActiveLine("</widget>");
} else if ( isSigCheckbox(sig, path) ) {
fWidgetID++;
fActiveWidgetCount++;
addActiveLine(subst("<widget type=\"checkbox\" id=\"$0\">", T(fWidgetID)));
addActiveLine(subst("\t<label>$0</label>", xmlize(tree2str(label))));
addActiveLine(subst("\t<varname>$0</varname>", tree2str(varname)));
addActiveLine("</widget>");
} else if ( isSigVSlider(sig, path,c,x,y,z) ) {
fWidgetID++;
fActiveWidgetCount++;
addActiveLine(subst("<widget type=\"vslider\" id=\"$0\">", T(fWidgetID)));
addActiveLine(subst("\t<label>$0</label>", xmlize(tree2str(label))));
addActiveLine(subst("\t<varname>$0</varname>", tree2str(varname)));
addActiveLine(subst("\t<init>$0</init>", T(tree2double(c))));
addActiveLine(subst("\t<min>$0</min>", T(tree2double(x))));
addActiveLine(subst("\t<max>$0</max>", T(tree2double(y))));
addActiveLine(subst("\t<step>$0</step>", T(tree2double(z))));
addActiveLine("</widget>");
} else if ( isSigHSlider(sig, path,c,x,y,z) ) {
fWidgetID++;
fActiveWidgetCount++;
addActiveLine(subst("<widget type=\"hslider\" id=\"$0\">", T(fWidgetID)));
addActiveLine(subst("\t<label>$0</label>", xmlize(tree2str(label))));
addActiveLine(subst("\t<varname>$0</varname>", tree2str(varname)));
addActiveLine(subst("\t<init>$0</init>", T(tree2double(c))));
addActiveLine(subst("\t<min>$0</min>", T(tree2double(x))));
addActiveLine(subst("\t<max>$0</max>", T(tree2double(y))));
addActiveLine(subst("\t<step>$0</step>", T(tree2double(z))));
addActiveLine("</widget>");
} else if ( isSigNumEntry(sig, path,c,x,y,z) ) {
fWidgetID++;
fActiveWidgetCount++;
addActiveLine(subst("<widget type=\"nentry\" id=\"$0\">", T(fWidgetID)));
addActiveLine(subst("\t<label>$0</label>", xmlize(tree2str(label))));
addActiveLine(subst("\t<varname>$0</varname>", tree2str(varname)));
addActiveLine(subst("\t<init>$0</init>", T(tree2double(c))));
addActiveLine(subst("\t<min>$0</min>", T(tree2double(x))));
addActiveLine(subst("\t<max>$0</max>", T(tree2double(y))));
addActiveLine(subst("\t<step>$0</step>", T(tree2double(z))));
addActiveLine("</widget>");
// add a passive widget description
} else if ( isSigVBargraph(sig,path,x,y,z) ) {
fWidgetID++;
fPassiveWidgetCount++;
addPassiveLine(subst("<widget type=\"vbargraph\" id=\"$0\">", T(fWidgetID)));
addPassiveLine(subst("\t<label>$0</label>", xmlize(tree2str(label))));
addPassiveLine(subst("\t<varname>$0</varname>", tree2str(varname)));
addPassiveLine(subst("\t<min>$0</min>", T(tree2double(x))));
addPassiveLine(subst("\t<max>$0</max>", T(tree2double(y))));
addPassiveLine("</widget>");
} else if ( isSigHBargraph(sig,path,x,y,z) ) {
fWidgetID++;
fPassiveWidgetCount++;
addPassiveLine(subst("<widget type=\"hbargraph\" id=\"$0\">", T(fWidgetID)));
addPassiveLine(subst("\t<label>$0</label>", xmlize(tree2str(label))));
addPassiveLine(subst("\t<varname>$0</varname>", tree2str(varname)));
addPassiveLine(subst("\t<min>$0</min>", T(tree2double(x))));
addPassiveLine(subst("\t<max>$0</max>", T(tree2double(y))));
addPassiveLine("</widget>");
} else {
fprintf(stderr, "Error describing widget : unrecognized expression\n");
exit(1);
}
return fWidgetID;
}


| Description* Description::author | ( | const string & | s | ) | [inline] |
Definition at line 58 of file description.hh.
Referenced by main().
{ fAuthor = s; return this; }

| Description* Description::copyright | ( | const string & | s | ) | [inline] |
Definition at line 59 of file description.hh.
Referenced by main().
{ fCopyright = s; return this; }

| Description* Description::inputs | ( | int | n | ) | [inline] |
Definition at line 63 of file description.hh.
Referenced by main().
{ fInputs = n; return this; }

| Description* Description::license | ( | const string & | s | ) | [inline] |
Definition at line 60 of file description.hh.
Referenced by main().
{ fLicense = s; return this; }

| Description* Description::name | ( | const string & | s | ) | [inline] |
Definition at line 57 of file description.hh.
Referenced by main().
{ fName = s; return this; }

| Description* Description::outputs | ( | int | n | ) | [inline] |
Definition at line 64 of file description.hh.
Referenced by main().
{ fOutputs = n; return this; }

| void Description::print | ( | int | n, |
| ostream & | fout | ||
| ) |
Definition at line 146 of file description.cpp.
References fActiveLines, fActiveWidgetCount, fAuthor, fCopyright, fInputs, fLayoutLines, fLayoutTabs, fLicense, fName, fOutputs, fPassiveLines, fPassiveWidgetCount, fVersion, tab(), and xmlize().
Referenced by main().
{
list<string>::iterator s;
list<int>::iterator t;
tab(n,fout); fout << "<faust>";
tab(n+1,fout); fout << "<name>" << xmlize(fName) << "</name>";
tab(n+1,fout); fout << "<author>" << xmlize(fAuthor) << "</author>";
tab(n+1,fout); fout << "<copyright>" << xmlize(fCopyright) << "</copyright>";
tab(n+1,fout); fout << "<license>" << xmlize(fLicense) << "</license>";
tab(n+1,fout); fout << "<version>" << xmlize(fVersion) << "</version>";
tab(n+1,fout); fout << "<inputs>" << fInputs << "</inputs>";
tab(n+1,fout); fout << "<outputs>" << fOutputs << "</outputs>";
tab(n+1,fout); fout << "<ui>";
// active widget list
tab(n+2,fout); fout << "<activewidgets>";
tab(n+3,fout); fout << "<count>" << fActiveWidgetCount << "</count>";
for (s = fActiveLines.begin(); s != fActiveLines.end(); s++) {
tab(n+3, fout); fout << *s;
}
tab(n+2,fout); fout << "</activewidgets>";
tab(n+2,fout);
// passive widget list
tab(n+2,fout); fout << "<passivewidgets>";
tab(n+3,fout); fout << "<count>" << fPassiveWidgetCount << "</count>";
for (s = fPassiveLines.begin(); s != fPassiveLines.end(); s++) {
tab(n+3, fout); fout << *s;
}
tab(n+2,fout); fout << "</passivewidgets>";
tab(n+2,fout);
// widget layout
tab(n+2,fout); fout << "<layout>";
for ( t = fLayoutTabs.begin(), s = fLayoutLines.begin();
s != fLayoutLines.end(); t++, s++) {
tab(n+3+*t, fout); fout << *s;
}
tab(n+2,fout); fout << "</layout>";
tab(n+1,fout); fout << "</ui>";
tab(n,fout); fout << "</faust>" << endl;
}


| void Description::tab | ( | int | n, |
| ostream & | fout | ||
| ) | [private] |
Definition at line 236 of file description.cpp.
Referenced by print().
{
fout << '\n';
while (n--) fout << '\t';
}

| void Description::ui | ( | Tree | t | ) |
Definition at line 199 of file description.cpp.
References addGroup().
Referenced by SchedulerCompiler::compileMultiSignal(), and VectorCompiler::compileMultiSignal().
{
addGroup(0,t);
}


| Description* Description::version | ( | const string & | s | ) | [inline] |
Definition at line 61 of file description.hh.
Referenced by main().
{ fVersion = s; return this; }

list<string> Description::fActiveLines [private] |
Definition at line 36 of file description.hh.
Referenced by print().
int Description::fActiveWidgetCount [private] |
Definition at line 34 of file description.hh.
Referenced by addWidget(), and print().
string Description::fAuthor [private] |
Definition at line 26 of file description.hh.
Referenced by print().
string Description::fCopyright [private] |
Definition at line 27 of file description.hh.
Referenced by print().
int Description::fInputs [private] |
Definition at line 31 of file description.hh.
Referenced by print().
list<string> Description::fLayoutLines [private] |
Definition at line 38 of file description.hh.
Referenced by print().
list<int> Description::fLayoutTabs [private] |
Definition at line 39 of file description.hh.
Referenced by print().
string Description::fLicense [private] |
Definition at line 28 of file description.hh.
Referenced by print().
string Description::fName [private] |
Definition at line 25 of file description.hh.
Referenced by print().
int Description::fOutputs [private] |
Definition at line 32 of file description.hh.
Referenced by print().
list<string> Description::fPassiveLines [private] |
Definition at line 37 of file description.hh.
Referenced by print().
int Description::fPassiveWidgetCount [private] |
Definition at line 35 of file description.hh.
Referenced by addWidget(), and print().
string Description::fVersion [private] |
Definition at line 29 of file description.hh.
Referenced by print().
int Description::fWidgetID [private] |
Definition at line 33 of file description.hh.
Referenced by addWidget().
1.8.0