From d10592fb7b43e9a02c71d52d9910f82d5dd4b592 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 17 Feb 2011 20:59:05 +0000 Subject: Fix compilation with --jack-dbus (fix ticket #626). git-svn-id: http://svn.drobilla.net/lad/trunk/patchage@2985 a436a847-0d15-0410-975c-d299462d15a1 --- src/JackDbusDriver.cpp | 89 ++++++++++++++++---------------------------------- src/JackDbusDriver.hpp | 42 ++++++++++++------------ 2 files changed, 50 insertions(+), 81 deletions(-) (limited to 'src') diff --git a/src/JackDbusDriver.cpp b/src/JackDbusDriver.cpp index 4c7e862..882da11 100644 --- a/src/JackDbusDriver.cpp +++ b/src/JackDbusDriver.cpp @@ -39,27 +39,27 @@ #include "PatchageEvent.hpp" #include "PatchageModule.hpp" -#define JACKDBUS_SERVICE "org.jackaudio.service" -#define JACKDBUS_OBJECT "/org/jackaudio/Controller" -#define JACKDBUS_IFACE_CONTROL "org.jackaudio.JackControl" -#define JACKDBUS_IFACE_PATCHBAY "org.jackaudio.JackPatchbay" +#define JACKDBUS_SERVICE "org.jackaudio.service" +#define JACKDBUS_OBJECT "/org/jackaudio/Controller" +#define JACKDBUS_IFACE_CONTROL "org.jackaudio.JackControl" +#define JACKDBUS_IFACE_PATCHBAY "org.jackaudio.JackPatchbay" + #define JACKDBUS_CALL_DEFAULT_TIMEOUT 1000 // in milliseconds -#define JACKDBUS_PORT_FLAG_INPUT 0x00000001 -#define JACKDBUS_PORT_FLAG_OUTPUT 0x00000002 -#define JACKDBUS_PORT_FLAG_PHYSICAL 0x00000004 -#define JACKDBUS_PORT_FLAG_CAN_MONITOR 0x00000008 -#define JACKDBUS_PORT_FLAG_TERMINAL 0x00000010 +#define JACKDBUS_PORT_FLAG_INPUT 0x00000001 +#define JACKDBUS_PORT_FLAG_OUTPUT 0x00000002 +#define JACKDBUS_PORT_FLAG_PHYSICAL 0x00000004 +#define JACKDBUS_PORT_FLAG_CAN_MONITOR 0x00000008 +#define JACKDBUS_PORT_FLAG_TERMINAL 0x00000010 -#define JACKDBUS_PORT_TYPE_AUDIO 0 -#define JACKDBUS_PORT_TYPE_MIDI 1 +#define JACKDBUS_PORT_TYPE_AUDIO 0 +#define JACKDBUS_PORT_TYPE_MIDI 1 //#define LOG_TO_STD #define LOG_TO_STATUS //#define USE_FULL_REFRESH - JackDriver::JackDriver(Patchage* app) : _app(app) , _dbus_connection(0) @@ -71,7 +71,6 @@ JackDriver::JackDriver(Patchage* app) dbus_error_init(&_dbus_error); } - JackDriver::~JackDriver() { if (_dbus_connection) { @@ -83,20 +82,19 @@ JackDriver::~JackDriver() } } - /** Destroy all JACK (canvas) ports. */ void JackDriver::destroy_all() { - ItemList modules = _app->canvas()->items(); // copy - for (ItemList::iterator m = modules.begin(); m != modules.end(); ++m) { - SharedPtr module = PtrCast(*m); + FlowCanvas::ItemList modules = _app->canvas()->items(); // copy + for (FlowCanvas::ItemList::iterator m = modules.begin(); m != modules.end(); ++m) { + SharedPtr module = PtrCast(*m); if (!module) continue; - PortVector ports = module->ports(); // copy - for (PortVector::iterator p = ports.begin(); p != ports.end(); ++p) { + FlowCanvas::PortVector ports = module->ports(); // copy + for (FlowCanvas::PortVector::iterator p = ports.begin(); p != ports.end(); ++p) { SharedPtr port = boost::dynamic_pointer_cast(*p); if (port && (port->type() == JACK_AUDIO || port->type() == JACK_MIDI)) { module->remove_port(port); @@ -111,7 +109,6 @@ JackDriver::destroy_all() } } - void JackDriver::update_attached() { @@ -136,7 +133,6 @@ JackDriver::update_attached() } } - void JackDriver::on_jack_appeared() { @@ -144,7 +140,6 @@ JackDriver::on_jack_appeared() update_attached(); } - void JackDriver::on_jack_disappeared() { @@ -161,7 +156,6 @@ JackDriver::on_jack_disappeared() _server_started = false; } - /** Handle signals we have subscribed for in attach(). */ DBusHandlerResult JackDriver::dbus_message_hook( @@ -367,7 +361,6 @@ JackDriver::dbus_message_hook( return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } - bool JackDriver::call( bool response_expected, @@ -416,7 +409,6 @@ JackDriver::call( return reply_ptr; } - bool JackDriver::is_started() { @@ -441,7 +433,6 @@ JackDriver::is_started() return started; } - void JackDriver::start_server() { @@ -456,7 +447,6 @@ JackDriver::start_server() update_attached(); } - void JackDriver::stop_server() { @@ -474,7 +464,6 @@ JackDriver::stop_server() } } - void JackDriver::attach(bool launch_daemon) { @@ -513,21 +502,18 @@ JackDriver::attach(bool launch_daemon) } } - void JackDriver::detach() { stop_server(); } - bool JackDriver::is_attached() const { return _dbus_connection && _server_responding; } - void JackDriver::add_port( SharedPtr& module, @@ -551,7 +537,6 @@ JackDriver::add_port( _app->enqueue_resize(module); } - void JackDriver::add_port( dbus_uint64_t client_id, @@ -589,7 +574,6 @@ JackDriver::add_port( add_port(module, local_port_type, port_name, port_flags & JACKDBUS_PORT_FLAG_INPUT); } - void JackDriver::remove_port( dbus_uint64_t client_id, @@ -625,7 +609,6 @@ JackDriver::remove_port( } } - SharedPtr JackDriver::find_or_create_module( ModuleType type, @@ -642,7 +625,6 @@ JackDriver::find_or_create_module( return module; } - void JackDriver::connect_ports( dbus_uint64_t connection_id, @@ -657,20 +639,19 @@ JackDriver::connect_ports( { SharedPtr port1 = _app->canvas()->find_port_by_name(client1_name, port1_name); if (!port1) { - error_msg((string)"Unable to connect unknown port '" + port1_name + "' of client '" + client1_name + "'"); + error_msg((std::string)"Unable to connect unknown port '" + port1_name + "' of client '" + client1_name + "'"); return; } SharedPtr port2 = _app->canvas()->find_port_by_name(client2_name, port2_name); if (!port2) { - error_msg((string)"Unable to connect unknown port '" + port2_name + "' of client '" + client2_name + "'"); + error_msg((std::string)"Unable to connect unknown port '" + port2_name + "' of client '" + client2_name + "'"); return; } _app->canvas()->add_connection(port1, port2, port1->color() + 0x22222200); } - void JackDriver::disconnect_ports( dbus_uint64_t connection_id, @@ -685,20 +666,19 @@ JackDriver::disconnect_ports( { SharedPtr port1 = _app->canvas()->find_port_by_name(client1_name, port1_name); if (!port1) { - error_msg((string)"Unable to disconnect unknown port '" + port1_name + "' of client '" + client1_name + "'"); + error_msg((std::string)"Unable to disconnect unknown port '" + port1_name + "' of client '" + client1_name + "'"); return; } SharedPtr port2 = _app->canvas()->find_port_by_name(client2_name, port2_name); if (!port2) { - error_msg((string)"Unable to disconnect unknown port '" + port2_name + "' of client '" + client2_name + "'"); + error_msg((std::string)"Unable to disconnect unknown port '" + port2_name + "' of client '" + client2_name + "'"); return; } _app->canvas()->remove_connection(port1, port2); } - void JackDriver::refresh_internal(bool force) { @@ -738,7 +718,7 @@ JackDriver::refresh_internal(bool force) reply_signature = dbus_message_get_signature(reply_ptr); if (strcmp(reply_signature, "ta(tsa(tsuu))a(tstststst)") != 0) { - error_msg((string )"GetGraph() reply signature mismatch. " + reply_signature); + error_msg((std::string)"GetGraph() reply signature mismatch. " + reply_signature); goto unref; } @@ -857,14 +837,12 @@ unref: dbus_message_unref(reply_ptr); } - void JackDriver::refresh() { refresh_internal(true); } - bool JackDriver::connect( SharedPtr src, @@ -894,7 +872,6 @@ JackDriver::connect( return true; } - bool JackDriver::disconnect( SharedPtr src, @@ -924,7 +901,6 @@ JackDriver::disconnect( return true; } - jack_nframes_t JackDriver::buffer_size() { @@ -954,7 +930,6 @@ fail: return 4096; // something fake, patchage needs it to match combobox value } - bool JackDriver::set_buffer_size(jack_nframes_t size) { @@ -972,7 +947,6 @@ JackDriver::set_buffer_size(jack_nframes_t size) return true; } - float JackDriver::sample_rate() { @@ -995,20 +969,22 @@ JackDriver::sample_rate() return sample_rate; } - bool JackDriver::is_realtime() const { DBusMessage* reply_ptr; - dbus_bool_t realtime; + dbus_bool_t realtime; - if (!this->call(true, JACKDBUS_IFACE_CONTROL, "IsRealtime", &reply_ptr, DBUS_TYPE_INVALID)) { + JackDriver* me = const_cast(this); + if (!me->call(true, JACKDBUS_IFACE_CONTROL, "IsRealtime", + &reply_ptr, DBUS_TYPE_INVALID)) { return false; } - if (!dbus_message_get_args(reply_ptr, &this->_dbus_error, DBUS_TYPE_BOOLEAN, &realtime, DBUS_TYPE_INVALID)) { + if (!dbus_message_get_args(reply_ptr, &me->_dbus_error, DBUS_TYPE_BOOLEAN, + &realtime, DBUS_TYPE_INVALID)) { dbus_message_unref(reply_ptr); - dbus_error_free(&this->_dbus_error); + dbus_error_free(&me->_dbus_error); error_msg("decoding reply of IsRealtime failed."); return false; } @@ -1018,7 +994,6 @@ JackDriver::is_realtime() const return realtime; } - size_t JackDriver::get_xruns() { @@ -1045,7 +1020,6 @@ JackDriver::get_xruns() return xruns; } - void JackDriver::reset_xruns() { @@ -1058,7 +1032,6 @@ JackDriver::reset_xruns() dbus_message_unref(reply_ptr); } - float JackDriver::get_max_dsp_load() { @@ -1091,14 +1064,12 @@ JackDriver::get_max_dsp_load() return _max_dsp_load; } - void JackDriver::reset_max_dsp_load() { _max_dsp_load = 0.0; } - SharedPtr JackDriver::create_port_view( Patchage* patchage, @@ -1107,7 +1078,6 @@ JackDriver::create_port_view( assert(false); // we dont use events at all } - void JackDriver::error_msg(const std::string& msg) const { @@ -1120,7 +1090,6 @@ JackDriver::error_msg(const std::string& msg) const #endif } - void JackDriver::info_msg(const std::string& msg) const { diff --git a/src/JackDbusDriver.hpp b/src/JackDbusDriver.hpp index d93bf06..3aee110 100644 --- a/src/JackDbusDriver.hpp +++ b/src/JackDbusDriver.hpp @@ -76,57 +76,57 @@ private: void info_msg(const std::string& msg) const; boost::shared_ptr find_or_create_module( - ModuleType type, + ModuleType type, const std::string& name); void add_port( boost::shared_ptr& module, - PortType type, - const std::string& name, - bool is_input); + PortType type, + const std::string& name, + bool is_input); void add_port( dbus_uint64_t client_id, - const char *client_name, + const char* client_name, dbus_uint64_t port_id, - const char *port_name, + const char* port_name, dbus_uint32_t port_flags, dbus_uint32_t port_type); void remove_port( dbus_uint64_t client_id, - const char *client_name, + const char* client_name, dbus_uint64_t port_id, - const char *port_name); + const char* port_name); void connect_ports( dbus_uint64_t connection_id, dbus_uint64_t client1_id, - const char *client1_name, + const char* client1_name, dbus_uint64_t port1_id, - const char *port1_name, + const char* port1_name, dbus_uint64_t client2_id, - const char *client2_name, + const char* client2_name, dbus_uint64_t port2_id, - const char *port2_name); + const char* port2_name); void disconnect_ports( dbus_uint64_t connection_id, dbus_uint64_t client1_id, - const char *client1_name, + const char* client1_name, dbus_uint64_t port1_id, - const char *port1_name, + const char* port1_name, dbus_uint64_t client2_id, - const char *client2_name, + const char* client2_name, dbus_uint64_t port2_id, - const char *port2_name); + const char* port2_name); bool call( - bool response_expected, - const char* iface, - const char* method, - DBusMessage ** reply_ptr_ptr, - int in_type, + bool response_expected, + const char* iface, + const char* method, + DBusMessage** reply_ptr_ptr, + int in_type, ...); void update_attached(); -- cgit v1.2.1