aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorHanspeter Portner <dev@open-music-kontrollers.ch>2015-09-12 20:54:43 +0200
committerHanspeter Portner <dev@open-music-kontrollers.ch>2015-09-12 20:54:43 +0200
commit864c9e7218bc3c0b7973151cb9b0b91d66adc90e (patch)
tree2a66a4f9c2088d320f0a8f82c595644a0c0347b3 /bin
parentce806d7b95a2220a9cbd77fc5d5dc9247a36548c (diff)
downloadsynthpod-864c9e7218bc3c0b7973151cb9b0b91d66adc90e.tar.xz
remove GUI build option, add GUI cli argument.
* remove GUI build option * add command line argument to disable GUI * split man page in two.
Diffstat (limited to 'bin')
-rw-r--r--bin/CMakeLists.txt26
-rw-r--r--bin/synthpod_alsa.175
-rw-r--r--bin/synthpod_alsa.c52
-rw-r--r--bin/synthpod_bin.h74
-rw-r--r--bin/synthpod_jack.1 (renamed from bin/synthpod.1)20
-rw-r--r--bin/synthpod_jack.c59
6 files changed, 168 insertions, 138 deletions
diff --git a/bin/CMakeLists.txt b/bin/CMakeLists.txt
index 24b50e72..4c7cbd53 100644
--- a/bin/CMakeLists.txt
+++ b/bin/CMakeLists.txt
@@ -15,10 +15,6 @@ if(BUILD_JACK OR BUILD_ALSA)
# icon
install(FILES ${PROJECT_SOURCE_DIR}/data/pix/synthpod.png DESTINATION
${SYNTHPOD_ICON_DIR})
-
-# man page
- install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/synthpod.1 DESTINATION
- man/man1)
endif()
if(BUILD_JACK)
@@ -54,11 +50,8 @@ if(BUILD_JACK)
${ECORE_CON_LDFLAGS}
${JACK_LIBS}
"-lm"
- synthpod.lib)
- if(BUILD_UI)
- target_link_libraries(synthpod.jack
- synthpod_ui.lib)
- endif()
+ synthpod.lib
+ synthpod_ui.lib)
set_target_properties(synthpod.jack PROPERTIES OUTPUT_NAME "synthpod_jack")
install(TARGETS synthpod.jack DESTINATION bin)
@@ -67,6 +60,10 @@ if(BUILD_JACK)
${PROJECT_BINARY_DIR}/bin/synthpod_jack.desktop @ONLY)
install(FILES ${PROJECT_BINARY_DIR}/bin/synthpod_jack.desktop DESTINATION
${SYNTHPOD_DESKTOP_DIR})
+
+# man page
+ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/synthpod_jack.1 DESTINATION
+ man/man1)
endif()
if(BUILD_ALSA)
@@ -94,11 +91,8 @@ if(BUILD_ALSA)
"-lasound" #FIXME
${ZITA_ALSA_PCMI_LIBRARY}
"-lm"
- synthpod.lib)
- if(BUILD_UI)
- target_link_libraries(synthpod.alsa
- synthpod_ui.lib)
- endif()
+ synthpod.lib
+ synthpod_ui.lib)
set_target_properties(synthpod.alsa PROPERTIES OUTPUT_NAME "synthpod_alsa")
install(TARGETS synthpod.alsa DESTINATION bin)
@@ -107,4 +101,8 @@ if(BUILD_ALSA)
${PROJECT_BINARY_DIR}/bin/synthpod_alsa.desktop @ONLY)
install(FILES ${PROJECT_BINARY_DIR}/bin/synthpod_alsa.desktop DESTINATION
${SYNTHPOD_DESKTOP_DIR})
+
+# man page
+ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/synthpod_alsa.1 DESTINATION
+ man/man1)
endif()
diff --git a/bin/synthpod_alsa.1 b/bin/synthpod_alsa.1
new file mode 100644
index 00000000..374889f2
--- /dev/null
+++ b/bin/synthpod_alsa.1
@@ -0,0 +1,75 @@
+.TH SYNTHPOD "1" "September 12, 2015"
+
+.SH NAME
+synthpod \- a lightweight nonlinear LV2 plugin container
+
+.SH SYNOPSIS
+.B synthpod_alsa
+[\fIoptions\fR] [\fIbundle-path\fR]
+
+.SH DESCRIPTION
+\fBsynthpod\fP is a lightweight nonlinear LV2 plugin container, aka host.
+.PP
+It is a pure stand-alone ALSA client with NSM session support and ALSA AUDIO/MIDI.
+.PP
+It is a also a first-class LV2 plugin (http://open-music-kontrollers.ch/lv2/synthpod#stereo).
+
+.SH OPTIONS
+.HP
+\fB\-v\fR
+.IP
+Print version and license information
+
+.HP
+\fB\-h\fR
+.IP
+Print usage information
+
+.HP
+\fB\-2\fR
+.IP
+Disable GUI
+
+.HP
+\fB\-i\fR capture-device
+.IP
+Capture device ("default")
+
+.HP
+\fB\-o\fR playback-device
+.IP
+Playback device ("default")
+
+.HP
+\fB\-r\fR sample-rate
+.IP
+Sample Rate (48000)
+
+.HP
+\fB\-p\fR sample-period
+.IP
+Frames per period (1024)
+
+.HP
+\fB\-n\fR period-number
+.IP
+Number of periods of playback latency (3)
+
+.HP
+\fB\-s\fR sequence-size
+.IP
+Minimal byte size of event sequence buffers (8192)
+
+.SH FILES
+.TP
+.I $XDG_DATA_HOME/synthpod $HOME/.local/share/synthpod
+Default bundle state directory
+.TP
+.I $HOME/.lv2
+Default LV2 preset directory
+
+.SH LICENSE
+Artistic License 2.0.
+
+.SH AUTHOR
+Hanspeter Portner (dev@open-music-kontrollers.ch).
diff --git a/bin/synthpod_alsa.c b/bin/synthpod_alsa.c
index 2e6487bc..275434d6 100644
--- a/bin/synthpod_alsa.c
+++ b/bin/synthpod_alsa.c
@@ -117,7 +117,6 @@ _rt_thread(void *data, Eina_Thread thread)
int paused = sp_app_paused(app);
if(paused == 1) // aka loading state
{
- printf("paused\n");
pcmi_pcm_idle(pcmi, nsamples);
continue;
@@ -433,7 +432,6 @@ _system_port_del(void *data, void *sys_port)
free(chan);
}
-#if defined(BUILD_UI)
static void
_ui_saved(void *data, int status)
{
@@ -452,7 +450,6 @@ _ui_saved(void *data, int status)
elm_exit();
}
}
-#endif // BUILD_UI
static int
_alsa_init(prog_t *handle, const char *id)
@@ -525,9 +522,7 @@ _open(const char *path, const char *name, const char *id, void *data)
Eina_Bool status = eina_thread_create(&handle->thread,
EINA_THREAD_URGENT, -1, _rt_thread, handle); //TODO
-#if defined(BUILD_UI) //FIXME
sp_ui_bundle_load(bin->ui, bin->path, 1);
-#endif
return 0; // success
}
@@ -539,9 +534,7 @@ _save(void *data)
prog_t *handle = (void *)bin - offsetof(prog_t, bin);
handle->save_state = SAVE_STATE_NSM;
-#if defined(BUILD_UI) //FIXME
sp_ui_bundle_save(bin->ui, bin->path, 1);
-#endif
return 0; // success
}
@@ -549,22 +542,12 @@ _save(void *data)
static const synthpod_nsm_driver_t nsm_driver = {
.open = _open,
.save = _save,
-#if defined(BUILD_UI)
.show = _show,
.hide = _hide
-#else
- .show = NULL,
- .hide = NULL
-#endif // BUILD_UI
};
-#if defined(BUILD_UI)
EAPI_MAIN int
elm_main(int argc, char **argv)
-#else
-int
-main(int argc, char **argv)
-#endif
{
static prog_t handle;
bin_t *bin = &handle.bin;
@@ -577,21 +560,27 @@ main(int argc, char **argv)
const char *def = "default";
handle.play_name = def;
handle.capt_name = def;
+
+ bin->has_gui = true;
+
+ fprintf(stderr,
+ "--------------------------------------------------------------------\n"
+ "Synthpod "SYNTHPOD_VERSION"\n"
+ "--------------------------------------------------------------------\n"
+ "\n"
+ "Copyright (c) 2015 Hanspeter Portner (dev@open-music-kontrollers.ch)\n"
+ "\n"
+ "This is free software: you can redistribute it and/or modify\n"
+ "it under the terms of the Artistic License 2.0 as published by\n"
+ "The Perl Foundation.\n\n");
int c;
- while((c = getopt(argc, argv, "vh2i:o:r:p:n:s:")) != -1)
+ while((c = getopt(argc, argv, "vhG2i:o:r:p:n:s:")) != -1)
{
switch(c)
{
case 'v':
- fprintf(stderr, "Synthpod " SYNTHPOD_VERSION "\n"
- "\n"
- "Copyright (c) 2015 Hanspeter Portner (dev@open-music-kontrollers.ch)\n"
- "\n"
- "This is free software: you can redistribute it and/or modify\n"
- "it under the terms of the Artistic License 2.0 as published by\n"
- "The Perl Foundation.\n"
- "\n"
+ fprintf(stderr,
"This source is distributed in the hope that it will be useful,\n"
"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
@@ -603,12 +592,14 @@ main(int argc, char **argv)
return 0;
case 'h':
fprintf(stderr,
+ "--------------------------------------------------------------------\n"
"USAGE\n"
" %s [OPTIONS] [BUNDLE_PATH]\n"
"\n"
"OPTIONS\n"
- " [-v] print version and license information\n"
+ " [-v] print version and full license information\n"
" [-h] print usage information\n"
+ " [-G] disable GUI\n"
" [-2] force 2 channel mode\n"
" [-i] capture-device capture device (\"default\")\n"
" [-o] playback-device playback device (\"default\")\n"
@@ -618,6 +609,9 @@ main(int argc, char **argv)
" [-s] sequence-size minimum sequence size (8192)\n\n"
, argv[0]);
return 0;
+ case 'G':
+ bin->has_gui = false;
+ break;
case '2':
handle.twochan = 1;
break;
@@ -667,7 +661,6 @@ main(int argc, char **argv)
bin->app_driver.osc_sched = NULL;
-#if defined(BUILD_UI)
bin->ui_driver.saved = _ui_saved;
bin->ui_driver.features = SP_UI_FEATURE_NEW | SP_UI_FEATURE_SAVE | SP_UI_FEATURE_CLOSE;
@@ -675,7 +668,6 @@ main(int argc, char **argv)
bin->ui_driver.features |= SP_UI_FEATURE_IMPORT_FROM | SP_UI_FEATURE_EXPORT_TO;
else
bin->ui_driver.features |= SP_UI_FEATURE_OPEN | SP_UI_FEATURE_SAVE_AS;
-#endif
// run
bin_run(bin, argv, &nsm_driver);
@@ -692,6 +684,4 @@ main(int argc, char **argv)
return 0;
}
-#if defined(BUILD_UI)
ELM_MAIN()
-#endif
diff --git a/bin/synthpod_bin.h b/bin/synthpod_bin.h
index 64380dc3..a6111866 100644
--- a/bin/synthpod_bin.h
+++ b/bin/synthpod_bin.h
@@ -20,12 +20,7 @@
#include <synthpod_app.h>
-#if defined(BUILD_UI)
# include <synthpod_ui.h>
-#else
-# include <Ecore.h>
-# include <Ecore_File.h>
-#endif
#include <Eina.h>
@@ -71,7 +66,7 @@ struct _bin_t {
char *path;
synthpod_nsm_t *nsm;
-#if defined(BUILD_UI)
+ bool has_gui;
sp_ui_t *ui;
sp_ui_driver_t ui_driver;
@@ -80,9 +75,6 @@ struct _bin_t {
Ecore_Animator *ui_anim;
Evas_Object *win;
-#else
- Ecore_Event_Handler *sig;
-#endif
volatile int worker_dead;
Eina_Thread worker_thread;
@@ -96,7 +88,6 @@ struct _bin_t {
LV2_URID log_warning;
};
-#if defined(BUILD_UI)
// non-rt ui-thread
static void
_ui_delete_request(void *data, Evas_Object *obj, void *event)
@@ -136,15 +127,6 @@ _ui_animator(void *data)
return EINA_TRUE; // continue animator
}
-#else
-static Eina_Bool
-_quit(void *data, int type, void *info)
-{
- ecore_main_loop_quit();
-
- return EINA_TRUE;
-}
-#endif // BUILD_UI
// non-rt worker-thread
static void *
@@ -188,7 +170,6 @@ _worker_thread(void *data, Eina_Thread thread)
return NULL;
}
-#if defined(BUILD_UI)
// rt
static void *
_app_to_ui_request(size_t size, void *data)
@@ -227,7 +208,6 @@ _ui_to_app_advance(size_t size, void *data)
varchunk_write_advance(bin->app_from_ui, size);
}
-#endif
// rt
static void *
@@ -325,13 +305,13 @@ _log_printf(void *data, LV2_URID type, const char *fmt, ...)
return ret;
}
-#if defined(BUILD_UI)
static int
_show(void *data)
{
bin_t *bin = data;
- evas_object_show(bin->win);
+ if(bin->win)
+ evas_object_show(bin->win);
return 0;
}
@@ -341,20 +321,18 @@ _hide(void *data)
{
bin_t *bin = data;
- evas_object_hide(bin->win);
+ if(bin->win)
+ evas_object_hide(bin->win);
return 0;
}
-#endif // BUILD_UI
static void
bin_init(bin_t *bin)
{
// varchunk init
-#if defined(BUILD_UI)
bin->app_to_ui = varchunk_new(CHUNK_SIZE);
bin->app_from_ui = varchunk_new(CHUNK_SIZE);
-#endif
bin->app_to_worker = varchunk_new(CHUNK_SIZE);
bin->app_from_worker = varchunk_new(CHUNK_SIZE);
bin->app_to_log = varchunk_new(CHUNK_SIZE);
@@ -373,19 +351,13 @@ bin_init(bin_t *bin)
bin->app_driver.unmap = unmap;
bin->app_driver.log_printf = _log_printf;
bin->app_driver.log_vprintf = _log_vprintf;
-#if defined(BUILD_UI)
bin->app_driver.to_ui_request = _app_to_ui_request;
bin->app_driver.to_ui_advance = _app_to_ui_advance;
-#else
- bin->app_driver.to_ui_request = NULL;
- bin->app_driver.to_ui_advance = NULL;
-#endif
bin->app_driver.to_worker_request = _app_to_worker_request;
bin->app_driver.to_worker_advance = _app_to_worker_advance;
bin->app_driver.to_app_request = _worker_to_app_request;
bin->app_driver.to_app_advance = _worker_to_app_advance;
-#if defined(BUILD_UI)
bin->ui_driver.map = map;
bin->ui_driver.unmap = unmap;
bin->ui_driver.to_app_request = _ui_to_app_request;
@@ -394,23 +366,28 @@ bin_init(bin_t *bin)
bin->ui_driver.opened = _ui_opened;
bin->ui_driver.close = _ui_close;
-#endif
}
static void
bin_run(bin_t *bin, char **argv, const synthpod_nsm_driver_t *nsm_driver)
{
-#if defined(BUILD_UI)
// create main window
bin->ui_anim = ecore_animator_add(_ui_animator, bin);
- bin->win = elm_win_util_standard_add("synthpod", "Synthpod");
- evas_object_smart_callback_add(bin->win, "delete,request", _ui_delete_request, NULL);
- evas_object_resize(bin->win, 1280, 720);
- evas_object_show(bin->win);
+
+ bin->win = NULL;
+ if(bin->has_gui)
+ {
+ bin->win = elm_win_util_standard_add("synthpod", "Synthpod");
+ if(bin->win)
+ {
+ evas_object_smart_callback_add(bin->win, "delete,request", _ui_delete_request, NULL);
+ evas_object_resize(bin->win, 1280, 720);
+ evas_object_show(bin->win);
+ }
+ }
// ui init
bin->ui = sp_ui_new(bin->win, NULL, &bin->ui_driver, bin, 1);
-#endif
// NSM init
const char *exe = strrchr(argv[0], '/');
@@ -424,22 +401,17 @@ bin_run(bin_t *bin, char **argv, const synthpod_nsm_driver_t *nsm_driver)
Eina_Bool status = eina_thread_create(&bin->worker_thread,
EINA_THREAD_URGENT, -1, _worker_thread, bin); //TODO
-#if defined(BUILD_UI)
// main loop
elm_run();
// ui deinit
sp_ui_free(bin->ui);
- evas_object_del(bin->win);
- ecore_animator_del(bin->ui_anim);
-#else
- bin->sig = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, _quit, NULL);
+ if(bin->win)
+ evas_object_del(bin->win);
- ecore_main_loop_begin();
-
- ecore_event_handler_del(bin->sig);
-#endif // BUILD_UI
+ if(bin->ui_anim)
+ ecore_animator_del(bin->ui_anim);
}
static void
@@ -470,10 +442,8 @@ bin_deinit(bin_t *bin)
ext_urid_free(bin->ext_urid);
// varchunk deinit
-#if defined(BUILD_UI)
varchunk_free(bin->app_to_ui);
varchunk_free(bin->app_from_ui);
-#endif
varchunk_free(bin->app_to_log);
varchunk_free(bin->app_to_worker);
varchunk_free(bin->app_from_worker);
@@ -499,7 +469,6 @@ bin_process_pre(bin_t *bin, uint32_t nsamples, int paused)
// run synthpod app pre
sp_app_run_pre(bin->app, nsamples);
-#if defined(BUILD_UI)
// read events from UI
if(!paused) // aka not saving state
{
@@ -513,7 +482,6 @@ bin_process_pre(bin_t *bin, uint32_t nsamples, int paused)
varchunk_read_advance(bin->app_from_ui);
}
}
-#endif // BUILD_UI
// run synthpod app post
sp_app_run_post(bin->app, nsamples);
diff --git a/bin/synthpod.1 b/bin/synthpod_jack.1
index 17c09f6a..514b52ae 100644
--- a/bin/synthpod.1
+++ b/bin/synthpod_jack.1
@@ -1,36 +1,50 @@
-.TH SYNTHPOD "1" "July 16, 2015"
+.TH SYNTHPOD "1" "September 12, 2015"
+
.SH NAME
synthpod \- a lightweight nonlinear LV2 plugin container
+
.SH SYNOPSIS
.B synthpod_jack
[\fIoptions\fR] [\fIbundle-path\fR]
+
.SH DESCRIPTION
\fBsynthpod\fP is a lightweight nonlinear LV2 plugin container, aka host.
.PP
It is a pure stand-alone JACK client with JACK/NSM session support and JACK AUDIO/MIDI.
.PP
It is a also a first-class LV2 plugin (http://open-music-kontrollers.ch/lv2/synthpod#stereo).
+
.SH OPTIONS
.HP
\fB\-v\fR
.IP
Print version and license information
+
.HP
\fB\-h\fR
.IP
Print usage information
+
+.HP
+\fB\-G\fR
+.IP
+Disable GUI
+
.HP
\fB\-n\fR server-name
.IP
Connect to named JACK daemon
+
.HP
\fB\-u\fR client-uuid
.IP
Client UUID for JACK session management
+
.HP
\fB\-s\fR sequence-size
.IP
-Minimal byte size of event sequence buffers (may be bigger)
+Minimal byte size of event sequence buffers (8192)
+
.SH FILES
.TP
.I $XDG_DATA_HOME/synthpod $HOME/.local/share/synthpod
@@ -38,7 +52,9 @@ Default bundle state directory
.TP
.I $HOME/.lv2
Default LV2 preset directory
+
.SH LICENSE
Artistic License 2.0.
+
.SH AUTHOR
Hanspeter Portner (dev@open-music-kontrollers.ch).
diff --git a/bin/synthpod_jack.c b/bin/synthpod_jack.c
index e324243c..2ae950e0 100644
--- a/bin/synthpod_jack.c
+++ b/bin/synthpod_jack.c
@@ -669,16 +669,12 @@ _session_async(void *data)
// fall-through
case JackSessionSave:
handle->save_state = SAVE_STATE_JACK;
-#if defined(BUILD_UI) //FIXME
sp_ui_bundle_save(bin->ui, ev->session_dir, 1);
-#endif
break;
case JackSessionSaveTemplate:
handle->save_state = SAVE_STATE_JACK;
-#if defined(BUILD_UI) //FIXME
sp_ui_bundle_new(bin->ui);
sp_ui_bundle_save(bin->ui, ev->session_dir, 1);
-#endif
break;
}
}
@@ -722,7 +718,6 @@ _sample_rate(jack_nframes_t sample_rate, void *data)
return 0;
}
-#if defined(BUILD_UI)
static void
_ui_saved(void *data, int status)
{
@@ -753,7 +748,6 @@ _ui_saved(void *data, int status)
elm_exit();
}
}
-#endif // BUILD_UI
static void *
_system_port_add(void *data, System_Port_Type type, const char *short_name,
@@ -863,11 +857,7 @@ _shutdown_async(void *data)
{
prog_t *handle = data;
-#if defined(BUILD_UI)
elm_exit();
-#else
- ecore_main_loop_quit();
-#endif
}
static void
@@ -989,9 +979,7 @@ _open(const char *path, const char *name, const char *id, void *data)
// jack activate
jack_activate(handle->client); //TODO check
-#if defined(BUILD_UI) //FIXME
sp_ui_bundle_load(bin->ui, bin->path, 1);
-#endif
return 0; // success
}
@@ -1003,9 +991,7 @@ _save(void *data)
prog_t *handle = (void *)bin - offsetof(prog_t, bin);
handle->save_state = SAVE_STATE_NSM;
-#if defined(BUILD_UI) //FIXME
sp_ui_bundle_save(bin->ui, bin->path, 1);
-#endif
return 0; // success
}
@@ -1013,13 +999,8 @@ _save(void *data)
static const synthpod_nsm_driver_t nsm_driver = {
.open = _open,
.save = _save,
-#if defined(BUILD_UI)
.show = _show,
.hide = _hide
-#else
- .show = NULL,
- .hide = NULL
-#endif // BUILD_UI
};
#if defined(JACK_HAS_CYCLE_TIMES)
@@ -1074,13 +1055,8 @@ _osc_schedule_frames2osc(osc_schedule_handle_t instance, int64_t frames)
}
#endif // JACK_HAS_CYCLE_TIMES
-#if defined(BUILD_UI)
EAPI_MAIN int
elm_main(int argc, char **argv)
-#else
-int
-main(int argc, char **argv)
-#endif
{
static prog_t handle;
bin_t *bin = &handle.bin;
@@ -1088,21 +1064,27 @@ main(int argc, char **argv)
handle.server_name = NULL;
handle.session_id = NULL;
handle.seq_size = SEQ_SIZE;
+
+ bin->has_gui = true;
+
+ fprintf(stderr,
+ "--------------------------------------------------------------------\n"
+ "Synthpod "SYNTHPOD_VERSION"\n"
+ "--------------------------------------------------------------------\n"
+ "\n"
+ "Copyright (c) 2015 Hanspeter Portner (dev@open-music-kontrollers.ch)\n"
+ "\n"
+ "This is free software: you can redistribute it and/or modify\n"
+ "it under the terms of the Artistic License 2.0 as published by\n"
+ "The Perl Foundation.\n\n");
int c;
- while((c = getopt(argc, argv, "vhn:u:s:")) != -1)
+ while((c = getopt(argc, argv, "vhGn:u:s:")) != -1)
{
switch(c)
{
case 'v':
- fprintf(stderr, "Synthpod "SYNTHPOD_VERSION"\n"
- "\n"
- "Copyright (c) 2015 Hanspeter Portner (dev@open-music-kontrollers.ch)\n"
- "\n"
- "This is free software: you can redistribute it and/or modify\n"
- "it under the terms of the Artistic License 2.0 as published by\n"
- "The Perl Foundation.\n"
- "\n"
+ fprintf(stderr,
"This source is distributed in the hope that it will be useful,\n"
"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
@@ -1114,17 +1096,22 @@ main(int argc, char **argv)
return 0;
case 'h':
fprintf(stderr,
+ "--------------------------------------------------------------------\n"
"USAGE\n"
" %s [OPTIONS] [BUNDLE_PATH]\n"
"\n"
"OPTIONS\n"
- " [-v] print version and license information\n"
+ " [-v] print version and full license information\n"
" [-h] print usage information\n"
+ " [-G] disable GUI\n"
" [-n] server-name connect to named JACK daemon\n"
" [-u] client-uuid client UUID for JACK session management\n"
" [-s] sequence-size minimum sequence size (8192)\n\n"
, argv[0]);
return 0;
+ case 'G':
+ bin->has_gui = false;
+ break;
case 'n':
handle.server_name = optarg;
break;
@@ -1179,7 +1166,6 @@ main(int argc, char **argv)
bin->app_driver.osc_sched = NULL;
#endif
-#if defined(BUILD_UI)
bin->ui_driver.saved = _ui_saved;
bin->ui_driver.features = SP_UI_FEATURE_NEW | SP_UI_FEATURE_SAVE | SP_UI_FEATURE_CLOSE;
@@ -1187,7 +1173,6 @@ main(int argc, char **argv)
bin->ui_driver.features |= SP_UI_FEATURE_IMPORT_FROM | SP_UI_FEATURE_EXPORT_TO;
else
bin->ui_driver.features |= SP_UI_FEATURE_OPEN | SP_UI_FEATURE_SAVE_AS;
-#endif
// run
bin_run(bin, argv, &nsm_driver);
@@ -1204,6 +1189,4 @@ main(int argc, char **argv)
return 0;
}
-#if defined(BUILD_UI)
ELM_MAIN()
-#endif