diff --git a/gui/main.c b/gui/main.c index 72113499..4a3ba8d4 100644 --- a/gui/main.c +++ b/gui/main.c @@ -866,28 +866,50 @@ void control_proxy_on_studio_appeared(void) return; } + activate_view(g_studio_view); +} + +void control_proxy_on_studio_disappeared(void) +{ + if (g_studio_view != NULL) + { + destroy_view(g_studio_view); + g_jack_view = NULL; + } +} + +void jack_started(void) +{ + lash_info("JACK started"); +} + +void jack_stopped(void) +{ + lash_info("JACK stopped"); +} + +void jack_appeared(void) +{ + lash_info("JACK appeared"); + if (!create_view("Raw JACK", JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, &g_jack_view)) { lash_error("create_view() failed for jack"); return; } - - activate_view(g_jack_view); } -void control_proxy_on_studio_disappeared(void) +void jack_disappeared(void) { + lash_info("JACK disappeared"); + if (g_jack_view != NULL) { destroy_view(g_jack_view); g_jack_view = NULL; } - if (g_studio_view != NULL) - { - destroy_view(g_studio_view); - g_jack_view = NULL; - } + activate_view(g_jack_view); } int main(int argc, char** argv) @@ -915,6 +937,11 @@ int main(int argc, char** argv) patchage_dbus_init(); + if (!jack_proxy_init(jack_started, jack_stopped, jack_appeared, jack_disappeared)) + { + return 1; + } + if (!control_proxy_init()) { return 1;