diff options
author | David Robillard <d@drobilla.net> | 2017-03-19 13:26:38 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2017-03-20 02:58:56 +0100 |
commit | f1c793f7e2148b10610a09a459d9e89b39d2d87b (patch) | |
tree | b898407dce08af0f2f978d59a85d4887d8555b54 /ingen/client/ThreadedSigClientInterface.hpp | |
parent | efc0fe0a973db706d9409b345ad6fae585f4388c (diff) | |
download | ingen-f1c793f7e2148b10610a09a459d9e89b39d2d87b.tar.gz ingen-f1c793f7e2148b10610a09a459d9e89b39d2d87b.tar.bz2 ingen-f1c793f7e2148b10610a09a459d9e89b39d2d87b.zip |
Fix round-trip preservation of property contexts
Diffstat (limited to 'ingen/client/ThreadedSigClientInterface.hpp')
-rw-r--r-- | ingen/client/ThreadedSigClientInterface.hpp | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/ingen/client/ThreadedSigClientInterface.hpp b/ingen/client/ThreadedSigClientInterface.hpp index db3aad44..219fd8d1 100644 --- a/ingen/client/ThreadedSigClientInterface.hpp +++ b/ingen/client/ThreadedSigClientInterface.hpp @@ -87,8 +87,9 @@ public: void delta(const Raul::URI& path, const Properties& remove, - const Properties& add) - { push_sig(sigc::bind(delta_slot, path, remove, add)); } + const Properties& add, + Resource::Graph ctx = Resource::Graph::DEFAULT) + { push_sig(sigc::bind(delta_slot, path, remove, add, ctx)); } void connect(const Raul::Path& tail, const Raul::Path& head) { push_sig(sigc::bind(connection_slot, tail, head)); } @@ -108,8 +109,11 @@ public: void disconnect_all(const Raul::Path& graph, const Raul::Path& path) { push_sig(sigc::bind(disconnect_all_slot, graph, path)); } - void set_property(const Raul::URI& subject, const Raul::URI& key, const Atom& value) - { push_sig(sigc::bind(property_change_slot, subject, key, value)); } + void set_property(const Raul::URI& subject, + const Raul::URI& key, + const Atom& value, + Resource::Graph ctx = Resource::Graph::DEFAULT) + { push_sig(sigc::bind(property_change_slot, subject, key, value, ctx)); } /** Process all queued events - Called from GTK thread to emit signals. */ bool emit_signals() { @@ -149,22 +153,24 @@ private: Raul::SRSWQueue<Closure> _sigs; - typedef Resource::Graph Graph; + using Graph = Resource::Graph; + using Path = Raul::Path; + using URI = Raul::URI; sigc::slot<void> bundle_begin_slot; sigc::slot<void> bundle_end_slot; sigc::slot<void, int32_t, Status, std::string> response_slot; sigc::slot<void, std::string> error_slot; - sigc::slot<void, Raul::URI, Raul::URI, Raul::Symbol> new_plugin_slot; - sigc::slot<void, Raul::URI, Properties, Graph> put_slot; - sigc::slot<void, Raul::URI, Properties, Properties> delta_slot; - 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::URI, 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; + sigc::slot<void, URI, URI, Raul::Symbol> new_plugin_slot; + sigc::slot<void, URI, Properties, Graph> put_slot; + sigc::slot<void, URI, Properties, Properties, Graph> delta_slot; + sigc::slot<void, Path, Path> connection_slot; + sigc::slot<void, URI> object_deleted_slot; + sigc::slot<void, Path, Path> object_moved_slot; + sigc::slot<void, URI, URI> object_copied_slot; + sigc::slot<void, Path, Path> disconnection_slot; + sigc::slot<void, Path, Path> disconnect_all_slot; + sigc::slot<void, URI, URI, Atom, Graph> property_change_slot; }; } // namespace Client |