diff options
author | David Robillard <d@drobilla.net> | 2015-02-08 07:02:59 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2015-02-08 07:02:59 +0000 |
commit | 0f9c8151d5b42b243a499bb31a1e1f0b2e8c5f6f (patch) | |
tree | 1ed4df4df4c3f160120544d92c681f1b4519e1aa /ingen/client | |
parent | 8733afb7ae9a04f46ac6318667182da16eca9fe5 (diff) | |
download | ingen-0f9c8151d5b42b243a499bb31a1e1f0b2e8c5f6f.tar.gz ingen-0f9c8151d5b42b243a499bb31a1e1f0b2e8c5f6f.tar.bz2 ingen-0f9c8151d5b42b243a499bb31a1e1f0b2e8c5f6f.zip |
Server-side copy paste with LV2 state support.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5541 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'ingen/client')
-rw-r--r-- | ingen/client/ClientStore.hpp | 5 | ||||
-rw-r--r-- | ingen/client/SigClientInterface.hpp | 4 | ||||
-rw-r--r-- | ingen/client/ThreadedSigClientInterface.hpp | 5 |
3 files changed, 12 insertions, 2 deletions
diff --git a/ingen/client/ClientStore.hpp b/ingen/client/ClientStore.hpp index f53217b4..1871fca2 100644 --- a/ingen/client/ClientStore.hpp +++ b/ingen/client/ClientStore.hpp @@ -55,7 +55,6 @@ public: ClientStore( URIs& uris, Log& log, - SPtr<Interface> engine = SPtr<Interface>(), SPtr<SigClientInterface> emitter = SPtr<SigClientInterface>()); Raul::URI uri() const { return Raul::URI("ingen:/clients/store"); } @@ -81,6 +80,9 @@ public: const Resource::Properties& remove, const Resource::Properties& add); + void copy(const Raul::Path& old_path, + const Raul::URI& new_uri); + void move(const Raul::Path& old_path, const Raul::Path& new_path); @@ -129,7 +131,6 @@ private: URIs& _uris; Log& _log; - SPtr<Interface> _engine; SPtr<SigClientInterface> _emitter; SPtr<Plugins> _plugins; ///< Map, keyed by plugin URI diff --git a/ingen/client/SigClientInterface.hpp b/ingen/client/SigClientInterface.hpp index 07e6e333..39fff895 100644 --- a/ingen/client/SigClientInterface.hpp +++ b/ingen/client/SigClientInterface.hpp @@ -53,6 +53,7 @@ public: INGEN_SIGNAL(error, void, std::string) INGEN_SIGNAL(put, void, Raul::URI, Resource::Properties, Resource::Graph) INGEN_SIGNAL(delta, void, Raul::URI, Resource::Properties, Resource::Properties) + INGEN_SIGNAL(object_copied, void, Raul::Path, Raul::URI) INGEN_SIGNAL(object_moved, void, Raul::Path, Raul::Path) INGEN_SIGNAL(object_deleted, void, Raul::URI) INGEN_SIGNAL(connection, void, Raul::Path, Raul::Path) @@ -97,6 +98,9 @@ protected: void del(const Raul::URI& uri) { EMIT(object_deleted, uri); } + void copy(const Raul::Path& old_path, const Raul::URI& new_uri) + { EMIT(object_copied, old_path, new_uri); } + void move(const Raul::Path& old_path, const Raul::Path& new_path) { EMIT(object_moved, old_path, new_path); } diff --git a/ingen/client/ThreadedSigClientInterface.hpp b/ingen/client/ThreadedSigClientInterface.hpp index ab9a7ee9..0d5d5e57 100644 --- a/ingen/client/ThreadedSigClientInterface.hpp +++ b/ingen/client/ThreadedSigClientInterface.hpp @@ -59,6 +59,7 @@ public: , connection_slot(_signal_connection.make_slot()) , object_deleted_slot(_signal_object_deleted.make_slot()) , object_moved_slot(_signal_object_moved.make_slot()) + , object_copied_slot(_signal_object_copied.make_slot()) , disconnection_slot(_signal_disconnection.make_slot()) , disconnect_all_slot(_signal_disconnect_all.make_slot()) , property_change_slot(_signal_property_change.make_slot()) @@ -97,6 +98,9 @@ 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 copy(const Raul::Path& old_path, const Raul::URI& new_uri) + { push_sig(sigc::bind(object_copied_slot, old_path, new_uri)); } + void disconnect(const Raul::Path& tail, const Raul::Path& head) { push_sig(sigc::bind(disconnection_slot, tail, head)); } @@ -157,6 +161,7 @@ private: sigc::slot<void, Raul::Path, Raul::Path> connection_slot; sigc::slot<void, Raul::URI> object_deleted_slot; sigc::slot<void, Raul::Path, Raul::Path> object_moved_slot; + sigc::slot<void, Raul::Path, Raul::URI> object_copied_slot; sigc::slot<void, Raul::Path, Raul::Path> disconnection_slot; sigc::slot<void, Raul::Path, Raul::Path> disconnect_all_slot; sigc::slot<void, Raul::URI, Raul::URI, Atom> property_change_slot; |