diff --git a/daemon/control.c b/daemon/control.c index 14e10444..28aa51d4 100644 --- a/daemon/control.c +++ b/daemon/control.c @@ -30,8 +30,9 @@ #include "../dbus/interface.h" #include "../dbus/error.h" #include "control.h" +#include "../dbus_constants.h" -#define INTERFACE_NAME DBUS_NAME_BASE ".Control" +#define INTERFACE_NAME IFACE_CONTROL static void ladish_is_studio_loaded(method_call_t * call_ptr) { diff --git a/daemon/control.h b/daemon/control.h index be74b0af..3f6afdc1 100644 --- a/daemon/control.h +++ b/daemon/control.h @@ -28,8 +28,6 @@ #ifndef __LASHD_DBUS_IFACE_CONTROL_H__ #define __LASHD_DBUS_IFACE_CONTROL_H__ -#define CONTROL_OBJECT_PATH DBUS_BASE_PATH "/Control" - extern const interface_t g_lashd_interface_control; void emit_studio_appeared(); diff --git a/daemon/main.c b/daemon/main.c index c5380aef..b907ef21 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -39,6 +39,7 @@ #include "control.h" #include "jack.h" #include "studio.h" +#include "../dbus_constants.h" bool g_quit; const char * g_dbus_unique_name; @@ -137,7 +138,7 @@ static bool connect_dbus(void) goto unref_connection; } - ret = dbus_bus_request_name(g_dbus_connection, DBUS_NAME_BASE, DBUS_NAME_FLAG_DO_NOT_QUEUE, &g_dbus_error); + ret = dbus_bus_request_name(g_dbus_connection, SERVICE_NAME, DBUS_NAME_FLAG_DO_NOT_QUEUE, &g_dbus_error); if (ret == -1) { lash_error("Failed to acquire bus name: %s", g_dbus_error.message); diff --git a/daemon/studio.c b/daemon/studio.c index a357a3f9..00a7f4c8 100644 --- a/daemon/studio.c +++ b/daemon/studio.c @@ -27,6 +27,7 @@ #include "common.h" #include "../jack_proxy.h" #include "patchbay.h" +#include "../dbus_constants.h" extern const interface_t g_interface_studio; @@ -462,7 +463,7 @@ studio_activate( { object_path_t * object; - object = object_path_new(DBUS_BASE_PATH "/Studio", studio, 2, &g_interface_studio, &g_interface_patchbay); + object = object_path_new(STUDIO_OBJECT_PATH, studio, 2, &g_interface_studio, &g_interface_patchbay); if (object == NULL) { lash_error("object_path_new() failed"); @@ -610,7 +611,7 @@ SIGNALS_BEGIN SIGNAL_DESCRIBE(RoomDisappeared) SIGNALS_END -INTERFACE_BEGIN(g_interface_studio, DBUS_NAME_BASE ".Studio") +INTERFACE_BEGIN(g_interface_studio, IFACE_STUDIO) INTERFACE_DEFAULT_HANDLER INTERFACE_EXPOSE_METHODS INTERFACE_EXPOSE_SIGNALS diff --git a/dbus_constants.h b/dbus_constants.h new file mode 100644 index 00000000..92fa75ec --- /dev/null +++ b/dbus_constants.h @@ -0,0 +1,47 @@ +/* -*- Mode: C ; c-basic-offset: 2 -*- */ +/* + * LADI Session Handler (ladish) + * + * Copyright (C) 2009 Nedko Arnaudov + * + ************************************************************************** + * This file contains constants for D-Bus service and interface names and for D-Bus object paths + ************************************************************************** + * + * LADI Session Handler 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 2 of the License, or + * (at your option) any later version. + * + * LADI Session Handler 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 LADI Session Handler. If not, see + * or write to the Free Software Foundation, Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef DBUS_CONSTANTS_H__C21DE0EE_C19C_42F0_8D63_D613E4806C0E__INCLUDED +#define DBUS_CONSTANTS_H__C21DE0EE_C19C_42F0_8D63_D613E4806C0E__INCLUDED + +#define JACKDBUS_SERVICE_NAME "org.jackaudio.service" +#define JACKDBUS_OBJECT_PATH "/org/jackaudio/Controller" +#define JACKDBUS_IFACE_CONTROL "org.jackaudio.JackControl" +#define JACKDBUS_IFACE_CONFIGURE "org.jackaudio.Configure" +#define JACKDBUS_IFACE_PATCHBAY "org.jackaudio.JackPatchbay" + +#define SERVICE_NAME DBUS_NAME_BASE +#define CONTROL_OBJECT_PATH DBUS_BASE_PATH "/Control" +#define IFACE_CONTROL DBUS_NAME_BASE ".Control" +#define STUDIO_OBJECT_PATH DBUS_BASE_PATH "/Studio" +#define IFACE_STUDIO DBUS_NAME_BASE ".Studio" +#define IFACE_ROOM DBUS_NAME_BASE ".Room" +#define LAUNCHER_OBJECT_PATH DBUS_BASE_PATH "/Launcher" +#define IFACE_LAUNCHER DBUS_NAME_BASE ".Launcher" +#define APPLICATION_OBJECT_PATH DBUS_BASE_PATH "/Application" +#define IFACE_APPLICATION DBUS_NAME_BASE ".App" + +#endif /* #ifndef DBUS_CONSTANTS_H__C21DE0EE_C19C_42F0_8D63_D613E4806C0E__INCLUDED */ diff --git a/graph_proxy.c b/graph_proxy.c index d6dbb2e2..cafebcc7 100644 --- a/graph_proxy.c +++ b/graph_proxy.c @@ -33,8 +33,7 @@ #include "common/klist.h" #include "common/debug.h" #include "dbus/helpers.h" - -#define JACKDBUS_IFACE_PATCHBAY "org.jackaudio.JackPatchbay" +#include "dbus_constants.h" #define JACKDBUS_PORT_FLAG_INPUT 0x00000001 #define JACKDBUS_PORT_FLAG_OUTPUT 0x00000002 diff --git a/gui/control_proxy.c b/gui/control_proxy.c index 4d7e381d..40433e62 100644 --- a/gui/control_proxy.c +++ b/gui/control_proxy.c @@ -27,10 +27,7 @@ #include "control_proxy.h" #include "../dbus/helpers.h" - -#define SERVICE DBUS_NAME_BASE -#define OBJECT DBUS_BASE_PATH "/Control" -#define IFACE DBUS_NAME_BASE ".Control" +#include "../dbus_constants.h" const char * g_signals[] = { @@ -44,19 +41,19 @@ static DBusHandlerResult message_hook(DBusConnection * connection, DBusMessage * const char * object_path; object_path = dbus_message_get_path(message); - if (object_path == NULL || strcmp(object_path, OBJECT) != 0) + if (object_path == NULL || strcmp(object_path, CONTROL_OBJECT_PATH) != 0) { return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } - if (dbus_message_is_signal(message, IFACE, "StudioAppeared")) + if (dbus_message_is_signal(message, IFACE_CONTROL, "StudioAppeared")) { lash_info("StudioAppeared"); control_proxy_on_studio_appeared(); return DBUS_HANDLER_RESULT_HANDLED; } - if (dbus_message_is_signal(message, IFACE, "StudioDisappeared")) + if (dbus_message_is_signal(message, IFACE_CONTROL, "StudioDisappeared")) { lash_info("StudioDisappeared"); control_proxy_on_studio_disappeared(); @@ -70,7 +67,7 @@ static bool control_proxy_is_studio_loaded(bool * present_ptr) { dbus_bool_t present; - if (!dbus_call_simple(SERVICE, OBJECT, IFACE, "IsStudioLoaded", "", "b", &present)) + if (!dbus_call_simple(SERVICE_NAME, CONTROL_OBJECT_PATH, IFACE_CONTROL, "IsStudioLoaded", "", "b", &present)) { return false; } @@ -84,14 +81,14 @@ bool control_proxy_init(void) { bool studio_present; - if (!dbus_register_object_signal_handler(g_dbus_connection, SERVICE, OBJECT, IFACE, g_signals, message_hook, NULL)) + if (!dbus_register_object_signal_handler(g_dbus_connection, SERVICE_NAME, CONTROL_OBJECT_PATH, IFACE_CONTROL, g_signals, message_hook, NULL)) { return false; } if (!control_proxy_is_studio_loaded(&studio_present)) { - dbus_unregister_object_signal_handler(g_dbus_connection, SERVICE, OBJECT, IFACE, g_signals, message_hook, NULL); + dbus_unregister_object_signal_handler(g_dbus_connection, SERVICE_NAME, CONTROL_OBJECT_PATH, IFACE_CONTROL, g_signals, message_hook, NULL); return false; } @@ -105,7 +102,7 @@ bool control_proxy_init(void) void control_proxy_uninit(void) { - dbus_unregister_object_signal_handler(g_dbus_connection, SERVICE, OBJECT, IFACE, g_signals, message_hook, NULL); + dbus_unregister_object_signal_handler(g_dbus_connection, SERVICE_NAME, CONTROL_OBJECT_PATH, IFACE_CONTROL, g_signals, message_hook, NULL); } bool control_proxy_get_studio_list(struct list_head * studio_list) diff --git a/gui/lash_proxy.cpp b/gui/lash_proxy.cpp index 2b4ca7bb..4715cdc9 100644 --- a/gui/lash_proxy.cpp +++ b/gui/lash_proxy.cpp @@ -36,10 +36,6 @@ #include "globals.hpp" #include "dbus_helpers.h" -#define LASH_SERVICE DBUS_NAME_BASE -#define LASH_OBJECT "/org/ladish/Control" -#define LASH_IFACE_CONTROL DBUS_NAME_BASE ".Control" - struct lash_proxy_impl { void init(); diff --git a/gui/main.c b/gui/main.c index 067c06d6..adead83b 100644 --- a/gui/main.c +++ b/gui/main.c @@ -32,6 +32,7 @@ #include "../jack_proxy.h" #include "dbus_helpers.h" #include "control_proxy.h" +#include "../dbus_constants.h" #if 0 class Patchage { @@ -880,7 +881,7 @@ struct view * create_view(const char * name, const char * service, const char * goto free_view; } - if (!graph_create(JACKDBUS_SERVICE, JACKDBUS_OBJECT, &view_ptr->graph)) + if (!graph_create(service, object, &view_ptr->graph)) { goto free_name; } @@ -948,7 +949,7 @@ struct view * g_studio_view; void control_proxy_on_studio_appeared(void) { - g_jack_view = create_view("Raw JACK", JACKDBUS_SERVICE, JACKDBUS_OBJECT); + g_jack_view = create_view("Raw JACK", JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH); attach_view(g_jack_view); } diff --git a/jack_proxy.c b/jack_proxy.c index e8a710f7..4007c2e3 100644 --- a/jack_proxy.c +++ b/jack_proxy.c @@ -32,9 +32,7 @@ #include "jack_proxy.h" #include "dbus/helpers.h" #include "common/debug.h" - -#define JACKDBUS_IFACE_CONTROL "org.jackaudio.JackControl" -#define JACKDBUS_IFACE_CONFIGURE "org.jackaudio.Configure" +#include "dbus_constants.h" jack_proxy_callback_server_started g_on_server_started; jack_proxy_callback_server_stopped g_on_server_stopped; @@ -100,7 +98,7 @@ on_bus_signal( return DBUS_HANDLER_RESULT_HANDLED; } - if (strcmp(object_name, JACKDBUS_SERVICE) != 0) + if (strcmp(object_name, JACKDBUS_SERVICE_NAME) != 0) { return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } @@ -164,7 +162,7 @@ dbus_signal_handler( lash_debug("'%s' sent signal '%s'::'%s'", object_path, interface, signal_name); /* Handle JACK patchbay and control interface signals */ - if (object_path != NULL && strcmp(object_path, JACKDBUS_OBJECT) == 0) + if (object_path != NULL && strcmp(object_path, JACKDBUS_OBJECT_PATH) == 0) { if (strcmp(interface, JACKDBUS_IFACE_CONTROL) == 0) { @@ -203,7 +201,7 @@ jack_proxy_init( dbus_bus_add_match( g_dbus_connection, - "type='signal',interface='"DBUS_INTERFACE_DBUS"',member=NameOwnerChanged,arg0='"JACKDBUS_SERVICE"'", + "type='signal',interface='"DBUS_INTERFACE_DBUS"',member=NameOwnerChanged,arg0='"JACKDBUS_SERVICE_NAME"'", &err); if (dbus_error_is_set(&err)) { @@ -217,7 +215,7 @@ jack_proxy_init( snprintf( rule, sizeof(rule), - "type='signal',sender='"JACKDBUS_SERVICE"',path='"JACKDBUS_OBJECT"',interface='"JACKDBUS_IFACE_CONTROL"',member='%s'", + "type='signal',sender='"JACKDBUS_SERVICE_NAME"',path='"JACKDBUS_OBJECT_PATH"',interface='"JACKDBUS_IFACE_CONTROL"',member='%s'", *signal); dbus_bus_add_match(g_dbus_connection, rule, &err); @@ -256,7 +254,7 @@ jack_proxy_is_started( { dbus_bool_t started; - if (!dbus_call_simple(JACKDBUS_SERVICE, JACKDBUS_OBJECT, JACKDBUS_IFACE_CONTROL, "IsStarted", "", "b", &started)) + if (!dbus_call_simple(JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, JACKDBUS_IFACE_CONTROL, "IsStarted", "", "b", &started)) { return false; } @@ -330,7 +328,7 @@ jack_proxy_read_conf_container( dbus_bool_t leaf; /* Whether children are parameters (true) or containers (false) */ char * child; - request_ptr = dbus_message_new_method_call(JACKDBUS_SERVICE, JACKDBUS_OBJECT, JACKDBUS_IFACE_CONFIGURE, "ReadContainer"); + request_ptr = dbus_message_new_method_call(JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, JACKDBUS_IFACE_CONFIGURE, "ReadContainer"); if (request_ptr == NULL) { lash_error("dbus_message_new_method_call() failed."); @@ -462,7 +460,7 @@ jack_proxy_get_parameter_value( dbus_bool_t is_set; struct jack_parameter_variant default_value; - request_ptr = dbus_message_new_method_call(JACKDBUS_SERVICE, JACKDBUS_OBJECT, JACKDBUS_IFACE_CONFIGURE, "GetParameterValue"); + request_ptr = dbus_message_new_method_call(JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, JACKDBUS_IFACE_CONFIGURE, "GetParameterValue"); if (request_ptr == NULL) { lash_error("dbus_message_new_method_call() failed."); @@ -535,19 +533,19 @@ jack_proxy_get_parameter_value( bool jack_proxy_start_server(void) { - return dbus_call_simple(JACKDBUS_SERVICE, JACKDBUS_OBJECT, JACKDBUS_IFACE_CONTROL, "StartServer", "", ""); + return dbus_call_simple(JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, JACKDBUS_IFACE_CONTROL, "StartServer", "", ""); } bool jack_proxy_stop_server(void) { - return dbus_call_simple(JACKDBUS_SERVICE, JACKDBUS_OBJECT, JACKDBUS_IFACE_CONTROL, "StopServer", "", ""); + return dbus_call_simple(JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, JACKDBUS_IFACE_CONTROL, "StopServer", "", ""); } bool jack_proxy_is_realtime(bool * realtime_ptr) { dbus_bool_t realtime; - if (!dbus_call_simple(JACKDBUS_SERVICE, JACKDBUS_OBJECT, JACKDBUS_IFACE_CONTROL, "IsStarted", "", "b", &realtime)) + if (!dbus_call_simple(JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, JACKDBUS_IFACE_CONTROL, "IsStarted", "", "b", &realtime)) { return false; } @@ -558,30 +556,30 @@ bool jack_proxy_is_realtime(bool * realtime_ptr) bool jack_proxy_sample_rate(uint32_t * sample_rate_ptr) { - return dbus_call_simple(JACKDBUS_SERVICE, JACKDBUS_OBJECT, JACKDBUS_IFACE_CONTROL, "GetSampleRate", "", "u", sample_rate_ptr); + return dbus_call_simple(JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, JACKDBUS_IFACE_CONTROL, "GetSampleRate", "", "u", sample_rate_ptr); } bool jack_proxy_get_xruns(uint32_t * xruns_ptr) { - return dbus_call_simple(JACKDBUS_SERVICE, JACKDBUS_OBJECT, JACKDBUS_IFACE_CONTROL, "GetXruns", "", "u", xruns_ptr); + return dbus_call_simple(JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, JACKDBUS_IFACE_CONTROL, "GetXruns", "", "u", xruns_ptr); } bool jack_proxy_get_dsp_load(double * dsp_load_ptr) { - return dbus_call_simple(JACKDBUS_SERVICE, JACKDBUS_OBJECT, JACKDBUS_IFACE_CONTROL, "GetXruns", "", "d", dsp_load_ptr); + return dbus_call_simple(JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, JACKDBUS_IFACE_CONTROL, "GetXruns", "", "d", dsp_load_ptr); } bool jack_proxy_get_buffer_size(uint32_t * size_ptr) { - return dbus_call_simple(JACKDBUS_SERVICE, JACKDBUS_OBJECT, JACKDBUS_IFACE_CONTROL, "GetBufferSize", "", "u", size_ptr); + return dbus_call_simple(JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, JACKDBUS_IFACE_CONTROL, "GetBufferSize", "", "u", size_ptr); } bool jack_proxy_set_buffer_size(uint32_t size) { - return dbus_call_simple(JACKDBUS_SERVICE, JACKDBUS_OBJECT, JACKDBUS_IFACE_CONTROL, "GetBufferSize", "u", &size, ""); + return dbus_call_simple(JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, JACKDBUS_IFACE_CONTROL, "GetBufferSize", "u", &size, ""); } bool jack_proxy_reset_xruns(void) { - return dbus_call_simple(JACKDBUS_SERVICE, JACKDBUS_OBJECT, JACKDBUS_IFACE_CONTROL, "GetBufferSize", "", ""); + return dbus_call_simple(JACKDBUS_SERVICE_NAME, JACKDBUS_OBJECT_PATH, JACKDBUS_IFACE_CONTROL, "GetBufferSize", "", ""); } diff --git a/jack_proxy.h b/jack_proxy.h index 7a6d15ec..e25200df 100644 --- a/jack_proxy.h +++ b/jack_proxy.h @@ -30,9 +30,6 @@ #include "common.h" -#define JACKDBUS_SERVICE "org.jackaudio.service" -#define JACKDBUS_OBJECT "/org/jackaudio/Controller" - struct jack_parameter_variant { enum