diff options
author | David Robillard <d@drobilla.net> | 2008-08-17 01:34:53 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-08-17 01:34:53 +0000 |
commit | 694b31089c8060fc6b908b146b12c0e340d004c7 (patch) | |
tree | 48b0e0195de5e7b297e65be15eda35639585ef8a /src/libs/client/ThreadedSigClientInterface.hpp | |
parent | 3dc90cc95df35e5c786857336f22856c6373b00f (diff) | |
download | ingen-694b31089c8060fc6b908b146b12c0e340d004c7.tar.gz ingen-694b31089c8060fc6b908b146b12c0e340d004c7.tar.bz2 ingen-694b31089c8060fc6b908b146b12c0e340d004c7.zip |
Cloooser...
Bundling of OSC communication both ways (previous was just engine->client).
Factor out common OSC*Sender functionality (bundling stuff).
Fully type-safe and polyphony-aware port value setting/getting, from RDF through OSC through engine and back again.
git-svn-id: http://svn.drobilla.net/lad/ingen@1409 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/client/ThreadedSigClientInterface.hpp')
-rw-r--r-- | src/libs/client/ThreadedSigClientInterface.hpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/libs/client/ThreadedSigClientInterface.hpp b/src/libs/client/ThreadedSigClientInterface.hpp index 03c638bb..ccdbf318 100644 --- a/src/libs/client/ThreadedSigClientInterface.hpp +++ b/src/libs/client/ThreadedSigClientInterface.hpp @@ -64,12 +64,14 @@ public: , object_renamed_slot(signal_object_renamed.make_slot()) , disconnection_slot(signal_disconnection.make_slot()) , variable_change_slot(signal_variable_change.make_slot()) - , control_change_slot(signal_control_change.make_slot()) + , port_value_slot(signal_port_value.make_slot()) , port_activity_slot(signal_port_activity.make_slot()) , program_add_slot(signal_program_add.make_slot()) , program_remove_slot(signal_program_remove.make_slot()) {} + virtual std::string uri() const { return "(internal)"; } + virtual void subscribe(Shared::EngineInterface* engine) { throw; } void bundle_begin() @@ -134,8 +136,11 @@ public: void set_variable(const string& path, const string& key, const Raul::Atom& value) { push_sig(sigc::bind(variable_change_slot, path, key, value)); } - void control_change(const string& port_path, float value) - { push_sig(sigc::bind(control_change_slot, port_path, value)); } + void set_port_value(const string& port_path, const Raul::Atom& value) + { push_sig(sigc::bind(port_value_slot, port_path, value)); } + + void set_voice_value(const string& port_path, uint32_t voice, const Raul::Atom& value) + { push_sig(sigc::bind(voice_value_slot, port_path, voice, value)); } void port_activity(const string& port_path) { push_sig(sigc::bind(port_activity_slot, port_path)); } @@ -175,7 +180,8 @@ private: sigc::slot<void, string, string> object_renamed_slot; sigc::slot<void, string, string> disconnection_slot; sigc::slot<void, string, string, Raul::Atom> variable_change_slot; - sigc::slot<void, string, float> control_change_slot; + sigc::slot<void, string, Raul::Atom> port_value_slot; + sigc::slot<void, string, uint32_t, Raul::Atom> voice_value_slot; sigc::slot<void, string> port_activity_slot; sigc::slot<void, string, uint32_t, uint32_t, string> program_add_slot; sigc::slot<void, string, uint32_t, uint32_t> program_remove_slot; |