本文整理汇总了C++中FUI::saveState方法的典型用法代码示例。如果您正苦于以下问题:C++ FUI::saveState方法的具体用法?C++ FUI::saveState怎么用?C++ FUI::saveState使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FUI
的用法示例。
在下文中一共展示了FUI::saveState方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
//-------------------------------------------------------------------------
// 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);
GUI* interface = new GTKUI (appname, &argc, &argv);
FUI* finterface = new FUI();
DSP.buildUserInterface(interface);
DSP.buildUserInterface(finterface);
DSP.buildUserInterface(new PrintUI());
#ifdef HTTPCTRL
httpdUI* httpdinterface = new httpdUI(appname, argc, argv);
DSP.buildUserInterface(httpdinterface);
std::cout << "HTTPD is on" << std::endl;
#endif
#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 HTTPCTRL
httpdinterface->run();
#endif
#ifdef OSCCTRL
oscinterface->run();
#endif
interface->run();
audio.stop();
finterface->saveState(rcfilename);
// desallocation
delete interface;
delete finterface;
#ifdef HTTPCTRL
delete httpdinterface;
#endif
#ifdef OSCCTRL
delete oscinterface;
#endif
return 0;
}
示例2: main
//-------------------------------------------------------------------------
// 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);
CMDUI* interface = new CMDUI(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
#ifdef HTTPCTRL
httpdUI* httpdinterface = new httpdUI(appname, DSP.getNumInputs(), DSP.getNumOutputs(), argc, argv);
DSP.buildUserInterface(httpdinterface);
#endif
jackaudio audio;
audio.init(appname, &DSP);
interface->process_command();
audio.start();
#ifdef HTTPCTRL
httpdinterface->run();
#endif
#ifdef OSCCTRL
oscinterface->run();
#endif
interface->run();
audio.stop();
finterface->saveState(rcfilename);
// desallocation
delete interface;
delete finterface;
#ifdef HTTPCTRL
delete httpdinterface;
#endif
#ifdef OSCCTRL
delete oscinterface;
#endif
return 0;
}
示例3: main
//-------------------------------------------------------------------------
// MAIN
//-------------------------------------------------------------------------
int main(int argc, char *argv[] )
{
char* appname = basename (argv [0]);
char rcfilename[256];
char* home = getenv("HOME");
snprintf(rcfilename, 255, "%s/.%src", home, appname);
DSP = new mydsp();
if (DSP==0) {
std::cerr << "Unable to allocate Faust DSP object" << std::endl;
exit(1);
}
GUI* interface = new QTGUI(argc, argv);
FUI* finterface = new FUI();
DSP->buildUserInterface(interface);
DSP->buildUserInterface(finterface);
#ifdef HTTPCTRL
httpdUI* httpdinterface = new httpdUI(appname, argc, argv);
DSP->buildUserInterface(httpdinterface);
std::cout << "HTTPD is on" << std::endl;
#endif
#ifdef OSCCTRL
GUI* oscinterface = new OSCUI(appname, argc, argv);
DSP->buildUserInterface(oscinterface);
#endif
alsaaudio audio (argc, argv, DSP);
audio.init(appname, DSP);
finterface->recallState(rcfilename);
audio.start();
#ifdef HTTPCTRL
httpdinterface->run();
#endif
#ifdef OSCCTRL
oscinterface->run();
#endif
interface->run();
audio.stop();
finterface->saveState(rcfilename);
return 0;
}
示例4: main
/******************************************************************************
*******************************************************************************
MAIN PLAY THREAD
*******************************************************************************
*******************************************************************************/
int main( int argc, char *argv[] )
{
char name[256], dst[258];
char rcfilename[256];
char* home = getenv("HOME");
snprintf(name, 255, "%s", basename(argv[0]));
snprintf(dst, 257, "/%s/", name);
snprintf(rcfilename, 255, "%s/.%src", home, name);
QApplication myApp(argc, argv);
QTGUI* interface = new QTGUI();
FUI* finterface = new FUI();
DSP.buildUserInterface(interface);
DSP.buildUserInterface(finterface);
oscdsp osca (dst, argc, argv);
OSCUI* oscinterface = new OSCUI(name, argc, argv, &osca);
DSP.buildUserInterface(oscinterface);
snprintf(dst, 257, "/%s/", oscinterface->getRootName());
osca.setDest (dst);
osca.init (name, &DSP);
finterface->recallState(rcfilename);
osca.start ();
oscinterface->run();
interface->run();
myApp.setStyleSheet(interface->styleSheet());
myApp.exec();
interface->stop();
osca.stop();
finterface->saveState(rcfilename);
// desallocation
delete interface;
delete finterface;
delete oscinterface;
return 0;
}
示例5: 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);
GUI* interface = new QTGUI(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;
}
示例6: main
//.........这里部分代码省略.........
DSP = new dsp_sequencer(dsp_poly, new effect());
#endif
#else
nvoices = lopt(argv, "--nvoices", nvoices);
int group = lopt(argv, "--group", 1);
if (nvoices > 0) {
std::cout << "Started with " << nvoices << " voices\n";
dsp_poly = new mydsp_poly(new mydsp(), nvoices, true, group);
#if MIDICTRL
if (hasMIDISync()) {
DSP = new timed_dsp(dsp_poly);
} else {
DSP = dsp_poly;
}
#else
DSP = dsp_poly;
#endif
} else {
#if MIDICTRL
if (hasMIDISync()) {
DSP = new timed_dsp(new mydsp());
} else {
DSP = new mydsp();
}
#else
DSP = new mydsp();
#endif
}
#endif
if (DSP == 0) {
std::cerr << "Unable to allocate Faust DSP object" << std::endl;
exit(1);
}
CMDUI* interface = new CMDUI(argc, argv);
FUI* finterface = new FUI();
DSP->buildUserInterface(interface);
DSP->buildUserInterface(finterface);
#ifdef MIDICTRL
rt_midi midi_handler(appname);
midi_handler.addMidiIn(dsp_poly);
MidiUI midiinterface(&midi_handler);
DSP->buildUserInterface(&midiinterface);
std::cout << "MIDI is on" << std::endl;
#endif
#ifdef HTTPCTRL
httpdUI* httpdinterface = new httpdUI(appname, DSP->getNumInputs(), DSP->getNumOutputs(), argc, argv);
DSP->buildUserInterface(httpdinterface);
std::cout << "HTTPD is on" << std::endl;
#endif
#ifdef OSCCTRL
GUI* oscinterface = new OSCUI(appname, argc, argv);
DSP->buildUserInterface(oscinterface);
#endif
alsaaudio audio (argc, argv, DSP);
audio.init(appname, DSP);
finterface->recallState(rcfilename);
audio.start();
#ifdef HTTPCTRL
httpdinterface->run();
#endif
#ifdef OSCCTRL
oscinterface->run();
#endif
#ifdef MIDICTRL
if (!midiinterface.run()) {
std::cerr << "MidiUI run error\n";
}
#endif
interface->run();
#ifdef MIDICTRL
midiinterface.stop();
#endif
audio.stop();
finterface->saveState(rcfilename);
// desallocation
delete interface;
delete finterface;
#ifdef HTTPCTRL
delete httpdinterface;
#endif
#ifdef OSCCTRL
delete oscinterface;
#endif
return 0;
}
示例7: main
//.........这里部分代码省略.........
DSP->buildUserInterface(&oscinterface);
cout << "OSC is on" << endl;
#endif
dummyaudio audio(44100, 128, 5, 128);
audio.init(name, DSP);
#ifdef MIDICTRL
rt_midi midi_handler(name);
midi_handler.addMidiIn(dsp_poly);
MidiUI midiinterface(&midi_handler);
DSP->buildUserInterface(&midiinterface);
#endif
finterface.recallState(rcfilename);
if (dsp_poly) {
cout << "keyOn 60 67 72 75" << endl;
dsp_poly->keyOn(0, 60, 127);
dsp_poly->keyOn(0, 67, 127);
dsp_poly->keyOn(0, 72, 127);
dsp_poly->keyOn(0, 75, 127);
}
// Play notes once
audio.start();
cout << "ins " << audio.getNumInputs() << endl;
cout << "outs " << audio.getNumOutputs() << endl;
if (dsp_poly) {
cout << "allNotesOff" << endl;
dsp_poly->allNotesOff(true);
}
// Rendering in now finished...
if (dsp_poly) {
cout << "keyOn 60 67 72 75" << endl;
dsp_poly->keyOn(0, 60, 127);
dsp_poly->keyOn(0, 67, 127);
dsp_poly->keyOn(0, 72, 127);
dsp_poly->keyOn(0, 75, 127);
}
// Play notes a second time
audio.start();
cout << "ins " << audio.getNumInputs() << endl;
cout << "outs " << audio.getNumOutputs() << endl;
if (dsp_poly) {
cout << "allNotesOff" << endl;
dsp_poly->allNotesOff(true);
}
// Rendering in now finished...
if (dsp_poly) {
cout << "keyOn 60 67 72 75" << endl;
dsp_poly->keyOn(0, 60, 127);
dsp_poly->keyOn(0, 67, 127);
dsp_poly->keyOn(0, 72, 127);
dsp_poly->keyOn(0, 75, 127);
}
// Play notes a third time
audio.start();
cout << "ins " << audio.getNumInputs() << endl;
cout << "outs " << audio.getNumOutputs() << endl;
if (dsp_poly) {
cout << "allNotesOff" << endl;
dsp_poly->allNotesOff(true);
}
#ifdef HTTPCTRL
httpdinterface.run();
#ifdef QRCODECTRL
interface.displayQRCode(httpdinterface.getTCPPort());
#endif
#endif
#ifdef OSCCTRL
oscinterface.run();
#endif
#ifdef MIDICTRL
if (!midiinterface.run()) {
cerr << "MidiUI run error\n";
}
#endif
audio.stop();
finterface.saveState(rcfilename);
delete DSP;
return 0;
}
示例8: main
int main(int argc, char *argv[])
{
char* name = basename (argv [0]);
char rcfilename[256];
char* home = getenv("HOME");
snprintf(rcfilename, 256, "%s/.%src", home, name);
#ifdef POLY
int poly = lopt(argv, "--poly", 4);
int group = lopt(argv, "--group", 1);
#if MIDICTRL
if (hasMIDISync()) {
DSP = new timed_dsp(new mydsp_poly(new mydsp(), poly, true, group));
} else {
DSP = new mydsp_poly(new mydsp(), poly, true, group);
}
#else
DSP = new mydsp_poly(new mydsp(), poly, false, group);
#endif
#else
#if MIDICTRL
if (hasMIDISync()) {
DSP = new timed_dsp(new mydsp());
} else {
DSP = new mydsp();
}
#else
DSP = new mydsp();
#endif
#endif
if (DSP == 0) {
std::cerr << "Unable to allocate Faust DSP object" << std::endl;
exit(1);
}
QApplication myApp(argc, argv);
QTGUI* interface = new QTGUI();
FUI* finterface = new FUI();
DSP->buildUserInterface(interface);
DSP->buildUserInterface(finterface);
#ifdef MIDICTRL
rt_midi midi_handler(name);
MidiUI midiinterface(&midi_handler);
DSP->buildUserInterface(&midiinterface);
std::cout << "MIDI is on" << std::endl;
#endif
#ifdef HTTPCTRL
httpdUI* httpdinterface = new httpdUI(name, DSP->getNumInputs(), DSP->getNumOutputs(), argc, argv);
DSP->buildUserInterface(httpdinterface);
std::cout << "HTTPD is on" << std::endl;
#endif
#ifdef OSCCTRL
GUI* oscinterface = new OSCUI(name, argc, argv);
DSP->buildUserInterface(oscinterface);
#endif
alsaaudio audio (argc, argv, DSP);
audio.init(name, DSP);
finterface->recallState(rcfilename);
audio.start();
#ifdef HTTPCTRL
httpdinterface->run();
#endif
#ifdef OSCCTRL
oscinterface->run();
#endif
#ifdef MIDICTRL
if (!midiinterface.run()) {
std::cerr << "MidiUI run error\n";
}
#endif
interface->run();
myApp.setStyleSheet(interface->styleSheet());
myApp.exec();
interface->stop();
#ifdef MIDICTRL
midiinterface.stop();
#endif
audio.stop();
finterface->saveState(rcfilename);
// desallocation
delete interface;
delete finterface;
#ifdef HTTPCTRL
//.........这里部分代码省略.........
示例9: main
//.........这里部分代码省略.........
long srate = (long)lopt(argv, "--frequency", 44100);
int fpb = lopt(argv, "--buffer", 512);
#ifdef POLY
int poly = lopt(argv, "--poly", 4);
int group = lopt(argv, "--group", 1);
#if MIDICTRL
if (hasMIDISync()) {
DSP = new timed_dsp(new mydsp_poly(new mydsp(), poly, true, group));
} else {
DSP = new mydsp_poly(new mydsp(), poly, true, group);
}
#else
DSP = new mydsp_poly(new mydsp(), poly, false, group);
#endif
#else
#if MIDICTRL
if (hasMIDISync()) {
DSP = new timed_dsp(new mydsp());
} else {
DSP = new mydsp();
}
#else
DSP = new mydsp();
#endif
#endif
if (DSP == 0) {
std::cerr << "Unable to allocate Faust DSP object" << std::endl;
exit(1);
}
QApplication myApp(argc, argv);
QTGUI interface;
FUI finterface;
DSP->buildUserInterface(&interface);
DSP->buildUserInterface(&finterface);
#ifdef MIDICTRL
rt_midi midi_handler(name);
MidiUI midiinterface(&midi_handler);
DSP->buildUserInterface(&midiinterface);
std::cout << "MIDI is on" << std::endl;
#endif
#ifdef HTTPCTRL
httpdUI httpdinterface(name, DSP->getNumInputs(), DSP->getNumOutputs(), argc, argv);
DSP->buildUserInterface(&httpdinterface);
std::cout << "HTTPD is on" << std::endl;
#endif
#ifdef OSCCTRL
OSCUI oscinterface(name, argc, argv);
DSP->buildUserInterface(&oscinterface);
std::cout << "OSC is on" << std::endl;
#endif
rtaudio audio(srate, fpb);
audio.init(name, DSP);
finterface.recallState(rcfilename);
audio.start();
printf("ins %d\n", audio.getNumInputs());
printf("outs %d\n", audio.getNumOutputs());
#ifdef HTTPCTRL
httpdinterface.run();
#ifdef QRCODECTRL
interface.displayQRCode(httpdinterface.getTCPPort());
#endif
#endif
#ifdef OSCCTRL
oscinterface.run();
#endif
#ifdef MIDICTRL
if (!midiinterface.run()) {
std::cerr << "MidiUI run error\n";
}
#endif
interface.run();
myApp.setStyleSheet(interface.styleSheet());
myApp.exec();
interface.stop();
#ifdef MIDICTRL
midiinterface.stop();
#endif
audio.stop();
finterface.saveState(rcfilename);
return 0;
}
示例10: main
//-------------------------------------------------------------------------
// MAIN
//-------------------------------------------------------------------------
int main(int argc, char *argv[])
{
char appname[256];
char rcfilename[256];
char* home = getenv("HOME");
int celt = lopt(argv, "--celt", -1);
const char* master_ip = lopts(argv, "--a", DEFAULT_MULTICAST_IP);
int master_port = lopt(argv, "--p", DEFAULT_PORT);
int mtu = lopt(argv, "--m", DEFAULT_MTU);
int latency = lopt(argv, "--l", 2);
snprintf(appname, 255, "%s", basename(argv[0]));
snprintf(rcfilename, 255, "%s/.%src", home, appname);
CMDUI* interface = new CMDUI(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
#ifdef HTTPCTRL
httpdUI* httpdinterface = new httpdUI(appname, argc, argv);
DSP.buildUserInterface(httpdinterface);
#endif
netjackaudio audio(celt, master_ip, master_port, mtu, latency);
if (!audio.init(appname, &DSP)) {
return 0;
}
finterface->recallState(rcfilename);
if (!audio.start()) {
return 0;
}
#ifdef HTTPCTRL
httpdinterface->run();
#endif
#ifdef OSCCTRL
oscinterface->run();
#endif
interface->run();
audio.stop();
finterface->saveState(rcfilename);
// desallocation
delete interface;
delete finterface;
#ifdef HTTPCTRL
delete httpdinterface;
#endif
#ifdef OSCCTRL
delete oscinterface;
#endif
return 0;
}
示例11: main
int main(int argc, char *argv[])
{
char appname[256];
char filename[256];
char rcfilename[256];
std::string error_msg;
char* home = getenv("HOME");
llvm_dsp* DSP = NULL;
llvm_dsp_factory* factory;
int inc_arg = 0;
int celt = lopt(argv, "--celt", -1);
const char* master_ip = lopts(argv, "--a", DEFAULT_MULTICAST_IP);
int master_port = lopt(argv, "--p", DEFAULT_PORT);
if (isopt(argv, "--celt")) inc_arg += 2;
if (isopt(argv, "--a")) inc_arg += 2;
if (isopt(argv, "--p")) inc_arg += 2;
if (argc < 2) {
printf("Usage: faust-netjack-gtk args [file.dsp | file.bc]\n");
exit(1);
} else {
factory = createDSPFactoryFromFile(argv[1], argc-2-inc_arg, (const char**)&argv[inc_arg+2], "", error_msg);
DSP = factory->createDSPInstance();
if (!DSP) {
std::cerr << error_msg;
std::cerr << "Cannot load .dsp or .bc file" << std::endl;
exit(1);
}
}
snprintf(appname, 256, "%s", basename(argv[0]));
snprintf(filename, 256, "%s", basename(argv[argc-1]));
snprintf(rcfilename, 256, "%s/.%s-%src", home, appname, argv[1]);
GUI* interface = new GTKUI(filename, &argc, &argv);
FUI* finterface = new FUI();
DSP->buildUserInterface(interface);
DSP->buildUserInterface(finterface);
#ifdef HTTPCTRL
httpdUI* httpdinterface = new httpdUI(appname, argc, argv);
DSP->buildUserInterface(httpdinterface);
#endif
#ifdef OSCCTRL
GUI* oscinterface = new OSCUI(filename, argc, argv);
DSP->buildUserInterface(oscinterface);
#endif
netjackaudio audio(celt, master_ip, master_port, DEFAULT_MTU);
if (!audio.init(filename, DSP)) {
return 0;
}
finterface->recallState(rcfilename);
audio.start();
#ifdef HTTPCTRL
httpdinterface->run();
#endif
#ifdef OSCCTRL
oscinterface->run();
#endif
interface->run();
audio.stop();
finterface->saveState(rcfilename);
return 0;
}
示例12: main
int main(int argc, char *argv[])
{
char name[256];
char rcfilename[256];
char* home = getenv("HOME");
snprintf(name, 255, "%s", basename(argv[0]));
snprintf(rcfilename, 255, "%s/.%src", home, basename(argv[0]));
long srate = (long)lopt(argv, "--frequency", -1);
int fpb = lopt(argv, "--buffer", 512);
QApplication myApp(argc, argv);
QTGUI* interface = new QTGUI();
DSP.buildUserInterface(interface);
FUI* finterface = new FUI();
DSP.buildUserInterface(finterface);
#ifdef HTTPCTRL
httpdUI* httpdinterface = new httpdUI(name, argc, argv);
DSP.buildUserInterface(httpdinterface);
#endif
#ifdef OSCCTRL
GUI* oscinterface = new OSCUI(name, argc, argv);
DSP.buildUserInterface(oscinterface);
#endif
coreaudio audio(srate, fpb);
audio.init(name, &DSP);
finterface->recallState(rcfilename);
audio.start();
#ifdef HTTPCTRL
httpdinterface->run();
#ifdef QRCODECTRL
interface->displayQRCode( httpdinterface->getTCPPort() );
#endif
#endif
#ifdef OSCCTRL
oscinterface->run();
#endif
interface->run();
myApp.setStyleSheet(STYLESHEET);
myApp.exec();
interface->stop();
audio.stop();
finterface->saveState(rcfilename);
// desallocation
delete interface;
delete finterface;
#ifdef HTTPCTRL
delete httpdinterface;
#endif
#ifdef OSCCTRL
delete oscinterface;
#endif
return 0;
}
示例13: 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);
int poly = lopt(argv, "--poly", 4);
#if MIDICTRL
rtmidi midi;
#endif
#ifdef POLY
#if MIDICTRL
DSP = new mydsp_poly(poly, true);
midi.addMidiIn(DSP);
#else
DSP = new mydsp_poly(poly);
#endif
#else
DSP = new mydsp();
#endif
if (DSP == 0) {
std::cerr << "Unable to allocate Faust DSP object" << std::endl;
exit(1);
}
QApplication myApp(argc, argv);
QTGUI interface;
FUI finterface;
DSP->buildUserInterface(&interface);
DSP->buildUserInterface(&finterface);
#ifdef MIDICTRL
MidiUI midiinterface(&midi);
DSP->buildUserInterface(&midiinterface);
std::cout << "MIDI is on" << std::endl;
#endif
#ifdef HTTPCTRL
httpdUI httpdinterface(appname, DSP->getNumInputs(), DSP->getNumOutputs(), argc, argv);
DSP->buildUserInterface(&httpdinterface);
std::cout << "HTTPD is on" << std::endl;
#endif
#ifdef OSCCTRL
OSCUI oscinterface(appname, argc, argv);
DSP->buildUserInterface(&oscinterface);
std::cout << "OSC is on" << std::endl;
#endif
jackaudio audio;
audio.init(appname, DSP);
finterface.recallState(rcfilename);
audio.start();
printf("ins %d\n", audio.get_num_inputs());
printf("outs %d\n", audio.get_num_outputs());
#if MIDICTRL
midi.start();
#endif
#ifdef HTTPCTRL
httpdinterface.run();
#ifdef QRCODECTRL
interface.displayQRCode(httpdinterface.getTCPPort());
#endif
#endif
#ifdef OSCCTRL
oscinterface.run();
#endif
#ifdef MIDICTRL
midiinterface.run();
#endif
interface.run();
myApp.setStyleSheet(interface.styleSheet());
myApp.exec();
interface.stop();
audio.stop();
finterface.saveState(rcfilename);
#if MIDICTRL
midi.stop();
#endif
return 0;
}