X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/c7f552fd8888da2f0d8cfb228fe0f28d3df3a12c..b4b6f2ea75b9f0f3ca918f5b84016610bf7a4d4f:/interpretor/preprocessor/faust-0.9.47mr3/architecture/pa-gtk.cpp diff --git a/interpretor/preprocessor/faust-0.9.47mr3/architecture/pa-gtk.cpp b/interpretor/preprocessor/faust-0.9.47mr3/architecture/pa-gtk.cpp new file mode 100644 index 0000000..908be20 --- /dev/null +++ b/interpretor/preprocessor/faust-0.9.47mr3/architecture/pa-gtk.cpp @@ -0,0 +1,156 @@ +/************************************************************************ + + 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 GRAME, Centre National de Creation Musicale + --------------------------------------------------------------------- + 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 "gui/FUI.h" +#include "misc.h" +#include "audio/portaudio-dsp.h" +#include "gui/faustgtk.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 +//------------------------------------------------------------------------- +#if 0 +int main(int argc, char *argv[] ) +{ + gtk_init (&argc, &argv); + const char* name = basename(argv[0]); + + char rcfilename[256]; + char* home = getenv("HOME"); + snprintf(rcfilename, 255, "%s/.%src", home, basename(argv[0])); + + GUI* interface = new GTKUI (name, &argc, &argv); + DSP.buildUserInterface(interface); + +#ifdef OSCCTRL + GUI* oscinterface = new OSCUI(jname, argc, argv); + DSP.buildUserInterface(oscinterface); +#endif + + long srate = (long)lopt(argv, "--frequency", 44100); + int fpb = lopt(argv, "--buffer", 128); + portaudio audio (srate, fpb); + + audio.init(name, &DSP); + //interface->recallState(rcfilename); + audio.start(); + +#ifdef OSCCTRL + oscinterface->run(); +#endif + interface->run(); + + audio.stop(); + //interface->saveState(rcfilename); + return 0; +} +#endif + +long lopt(char *argv[], const char *name, long def) +{ + int i; + for (i=0; argv[i]; i++) if (!strcmp(argv[i], name)) return atoi(argv[i+1]); + return def; +} + +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); + + 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 + + long srate = (long)lopt(argv, "--frequency", 44100); + int fpb = lopt(argv, "--buffer", 128); + + portaudio audio (srate, fpb); + audio.init(appname, &DSP); + finterface->recallState(rcfilename); + audio.start(); + +#ifdef OSCCTRL + oscinterface->run(); +#endif + interface->run(); + + audio.stop(); + finterface->saveState(rcfilename); + return 0; +} + + +/********************END ARCHITECTURE SECTION (part 2/2)****************/ +