From 1f1758f4dda0ddaf01c0b1d3a756f9db8ddc979d Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 20 Apr 2011 15:27:34 +0000 Subject: Make disconnect take URI parameters (for wildcare URI towards killing disconnect_all). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3183 a436a847-0d15-0410-975c-d299462d15a1 --- src/client/ClientStore.cpp | 12 ++++++++++-- src/client/ClientStore.hpp | 4 ++-- src/client/HTTPEngineSender.cpp | 4 ++-- src/client/HTTPEngineSender.hpp | 4 ++-- src/client/OSCClientReceiver.cpp | 6 +++--- src/client/OSCEngineSender.cpp | 8 ++++---- src/client/OSCEngineSender.hpp | 4 ++-- src/client/SigClientInterface.hpp | 6 +++--- src/client/ThreadedSigClientInterface.hpp | 6 +++--- 9 files changed, 31 insertions(+), 23 deletions(-) (limited to 'src/client') diff --git a/src/client/ClientStore.cpp b/src/client/ClientStore.cpp index be7d4186..48fa0d1e 100644 --- a/src/client/ClientStore.cpp +++ b/src/client/ClientStore.cpp @@ -459,9 +459,17 @@ ClientStore::connect(const Path& src_path, } void -ClientStore::disconnect(const Path& src_path, - const Path& dst_path) +ClientStore::disconnect(const URI& src, + const URI& dst) { + if (!Path::is_path(src) && !Path::is_path(dst)) { + std::cerr << "Bad disconnect notification " << src << " => " << dst << std::endl; + return; + } + + const Path src_path(src.str()); + const Path dst_path(dst.str()); + SharedPtr src_port = PtrCast(object(src_path)); SharedPtr dst_port = PtrCast(object(dst_path)); diff --git a/src/client/ClientStore.hpp b/src/client/ClientStore.hpp index c5dc023a..d904cbf2 100644 --- a/src/client/ClientStore.hpp +++ b/src/client/ClientStore.hpp @@ -94,8 +94,8 @@ public: void connect(const Raul::Path& src_port_path, const Raul::Path& dst_port_path); - void disconnect(const Raul::Path& src_port_path, - const Raul::Path& dst_port_path); + void disconnect(const Raul::URI& src, + const Raul::URI& dst); void disconnect_all(const Raul::Path& parent_patch_path, const Raul::Path& path); diff --git a/src/client/HTTPEngineSender.cpp b/src/client/HTTPEngineSender.cpp index ceb60162..d9b477a6 100644 --- a/src/client/HTTPEngineSender.cpp +++ b/src/client/HTTPEngineSender.cpp @@ -137,8 +137,8 @@ HTTPEngineSender::connect(const Path& src_port_path, } void -HTTPEngineSender::disconnect(const Path& src_port_path, - const Path& dst_port_path) +HTTPEngineSender::disconnect(const URI& src, + const URI& dst) { LOG(warn) << "TODO: HTTP disconnect" << endl; } diff --git a/src/client/HTTPEngineSender.hpp b/src/client/HTTPEngineSender.hpp index b5653273..75e2a2f7 100644 --- a/src/client/HTTPEngineSender.hpp +++ b/src/client/HTTPEngineSender.hpp @@ -90,8 +90,8 @@ public: virtual void connect(const Raul::Path& src_port_path, const Raul::Path& dst_port_path); - virtual void disconnect(const Raul::Path& src_port_path, - const Raul::Path& dst_port_path); + virtual void disconnect(const Raul::URI& src, + const Raul::URI& dst); virtual void disconnect_all(const Raul::Path& parent_patch_path, const Raul::Path& path); diff --git a/src/client/OSCClientReceiver.cpp b/src/client/OSCClientReceiver.cpp index 31c0aa2a..d0119987 100644 --- a/src/client/OSCClientReceiver.cpp +++ b/src/client/OSCClientReceiver.cpp @@ -200,10 +200,10 @@ OSCClientReceiver::_connection_cb(const char* path, const char* types, lo_arg** int OSCClientReceiver::_disconnection_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) { - const char* src_port_path = &argv[0]->s; - const char* dst_port_path = &argv[1]->s; + const char* src_uri = &argv[0]->s; + const char* dst_uri = &argv[1]->s; - _target->disconnect(src_port_path, dst_port_path); + _target->disconnect(src_uri, dst_uri); return 0; } diff --git a/src/client/OSCEngineSender.cpp b/src/client/OSCEngineSender.cpp index 9de1192a..51e6f8c9 100644 --- a/src/client/OSCEngineSender.cpp +++ b/src/client/OSCEngineSender.cpp @@ -156,13 +156,13 @@ OSCEngineSender::connect(const Path& src_port_path, } void -OSCEngineSender::disconnect(const Path& src_port_path, - const Path& dst_port_path) +OSCEngineSender::disconnect(const URI& src, + const URI& dst) { send("/disconnect", "iss", next_id(), - src_port_path.c_str(), - dst_port_path.c_str(), + src.c_str(), + dst.c_str(), LO_ARGS_END); } diff --git a/src/client/OSCEngineSender.hpp b/src/client/OSCEngineSender.hpp index 98d2d40c..041a16b8 100644 --- a/src/client/OSCEngineSender.hpp +++ b/src/client/OSCEngineSender.hpp @@ -91,8 +91,8 @@ public: virtual void connect(const Raul::Path& src_port_path, const Raul::Path& dst_port_path); - virtual void disconnect(const Raul::Path& src_port_path, - const Raul::Path& dst_port_path); + virtual void disconnect(const Raul::URI& src, + const Raul::URI& dst); virtual void disconnect_all(const Raul::Path& parent_patch_path, const Raul::Path& path); diff --git a/src/client/SigClientInterface.hpp b/src/client/SigClientInterface.hpp index 7d968524..fc5201e1 100644 --- a/src/client/SigClientInterface.hpp +++ b/src/client/SigClientInterface.hpp @@ -57,7 +57,7 @@ public: sigc::signal signal_object_moved; sigc::signal signal_object_deleted; sigc::signal signal_connection; - sigc::signal signal_disconnection; + sigc::signal signal_disconnection; sigc::signal signal_disconnect_all; sigc::signal signal_variable_change; sigc::signal signal_property_change; @@ -107,8 +107,8 @@ protected: void move(const Raul::Path& old_path, const Raul::Path& new_path) { EMIT(object_moved, old_path, new_path); } - void disconnect(const Raul::Path& src_port_path, const Raul::Path& dst_port_path) - { EMIT(disconnection, src_port_path, dst_port_path); } + void disconnect(const Raul::URI& src, const Raul::URI& dst) + { EMIT(disconnection, src, dst); } void disconnect_all(const Raul::Path& parent_patch_path, const Raul::Path& path) { EMIT(disconnect_all, parent_patch_path, path); } diff --git a/src/client/ThreadedSigClientInterface.hpp b/src/client/ThreadedSigClientInterface.hpp index d9f89503..87c2f1a5 100644 --- a/src/client/ThreadedSigClientInterface.hpp +++ b/src/client/ThreadedSigClientInterface.hpp @@ -101,8 +101,8 @@ public: void move(const Raul::Path& old_path, const Raul::Path& new_path) { push_sig(sigc::bind(object_moved_slot, old_path, new_path)); } - void disconnect(const Raul::Path& src_port_path, const Raul::Path& dst_port_path) - { push_sig(sigc::bind(disconnection_slot, src_port_path, dst_port_path)); } + void disconnect(const Raul::URI& src, const Raul::URI& dst) + { push_sig(sigc::bind(disconnection_slot, src, dst)); } void disconnect_all(const Raul::Path& parent_patch_path, const Raul::Path& path) { push_sig(sigc::bind(disconnect_all_slot, parent_patch_path, path)); } @@ -138,7 +138,7 @@ private: sigc::slot connection_slot; sigc::slot object_deleted_slot; sigc::slot object_moved_slot; - sigc::slot disconnection_slot; + sigc::slot disconnection_slot; sigc::slot disconnect_all_slot; sigc::slot variable_change_slot; sigc::slot property_change_slot; -- cgit v1.2.1