//------------------------------------------------------------------------- // 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; }
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; }