X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/1059e1cc0c2ecfa237406949aa26155b6a5b9154..66f23d4fabf89ad09adbd4dfc15ac6b5b2b7da83:/interpreter/preprocessor/faust-0.9.47mr3/architecture/jack-gtk.cpp diff --git a/interpreter/preprocessor/faust-0.9.47mr3/architecture/jack-gtk.cpp b/interpreter/preprocessor/faust-0.9.47mr3/architecture/jack-gtk.cpp new file mode 100644 index 0000000..21a2910 --- /dev/null +++ b/interpreter/preprocessor/faust-0.9.47mr3/architecture/jack-gtk.cpp @@ -0,0 +1,118 @@ +/************************************************************************ + + IMPORTANT NOTE : this file contains two clearly delimited sections : + the ARCHITECTURE section (in two parts) and the USER section. Each section + is governed by its own copyright and license. Please check individually + each section for license and copyright information. +*************************************************************************/ + +/*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/ + +/************************************************************************ + FAUST Architecture File + Copyright (C) 2003-2011 Thomas Charbonnel and GRAME + --------------------------------------------------------------------- + This Architecture section is free software; you can redistribute it + and/or modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 3 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; If not, see . + + EXCEPTION : As a special exception, you may create a larger work + that contains this FAUST architecture section and distribute + that work under terms of your choice, so long as this FAUST + architecture section is not modified. + + + ************************************************************************ + ************************************************************************/ + +#include +#include +#include + +#include "gui/FUI.h" +#include "misc.h" +#include "gui/faustgtk.h" +#include "audio/jack-dsp.h" + +#ifdef OSCCTRL +#include "gui/OSCUI.h" +#endif + +/**************************BEGIN USER SECTION **************************/ + +/****************************************************************************** +******************************************************************************* + + VECTOR INTRINSICS + +******************************************************************************* +*******************************************************************************/ + +<> + + +<> + +/***************************END USER SECTION ***************************/ + +/*******************BEGIN ARCHITECTURE SECTION (part 2/2)***************/ + +mydsp* DSP; + +list GUI::fGuiList; + +//------------------------------------------------------------------------- +// MAIN +//------------------------------------------------------------------------- +int main(int argc, char *argv[]) +{ + char appname[256]; + char rcfilename[256]; + char* home = getenv("HOME"); + + snprintf(appname, 255, "%s", basename(argv[0])); + snprintf(rcfilename, 255, "%s/.%src", home, appname); + + DSP = new mydsp(); + if (DSP==0) { + cerr << "Unable to allocate Faust DSP object" << endl; + exit(1); + } + GUI* interface = new GTKUI (appname, &argc, &argv); + FUI* finterface = new FUI(); + DSP->buildUserInterface(interface); + DSP->buildUserInterface(finterface); + +#ifdef OSCCTRL + GUI* oscinterface = new OSCUI(appname, argc, argv); + DSP->buildUserInterface(oscinterface); +#endif + + jackaudio audio; + audio.init(appname, DSP); + finterface->recallState(rcfilename); + audio.start(); + +#ifdef OSCCTRL + oscinterface->run(); +#endif + interface->run(); + + audio.stop(); + finterface->saveState(rcfilename); + delete DSP; + return 0; +} + + +/********************END ARCHITECTURE SECTION (part 2/2)****************/ +