diff options
author | David Robillard <d@drobilla.net> | 2009-11-12 06:56:26 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-11-12 06:56:26 +0000 |
commit | 64bd557e75113743f179086b365ea7d97b72ee3e (patch) | |
tree | 6a6f5b72a8ce97616cd5ccff188f2e44e92d1ba8 /src/gui/ControlPanel.cpp | |
parent | 023dcf4cb297928879eb0e53cf0216edb562f6fa (diff) | |
download | ingen-64bd557e75113743f179086b365ea7d97b72ee3e.tar.gz ingen-64bd557e75113743f179086b365ea7d97b72ee3e.tar.bz2 ingen-64bd557e75113743f179086b365ea7d97b72ee3e.zip |
String port support.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2255 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/gui/ControlPanel.cpp')
-rw-r--r-- | src/gui/ControlPanel.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/gui/ControlPanel.cpp b/src/gui/ControlPanel.cpp index 99b66899..1e7d177b 100644 --- a/src/gui/ControlPanel.cpp +++ b/src/gui/ControlPanel.cpp @@ -111,22 +111,29 @@ ControlPanel::add_port(SharedPtr<PortModel> pm) if (find_port(pm->path()) != NULL) return; - // Add port - if (pm->type().is_control() && pm->is_input()) { - Control* control = NULL; + Control* control = NULL; - if (pm->is_toggle()) { + // Add port + if (pm->is_input()) { + if (pm->type().is_control() && pm->is_toggle()) { ToggleControl* tc; Glib::RefPtr<Gnome::Glade::Xml> xml = GladeFactory::new_glade_reference("toggle_control"); xml->get_widget_derived("toggle_control", tc); control = tc; + } else if (pm->type().is_string()) { + StringControl* sc; + Glib::RefPtr<Gnome::Glade::Xml> xml = GladeFactory::new_glade_reference("string_control"); + xml->get_widget_derived("string_control", sc); + control = sc; } else { SliderControl* sc; Glib::RefPtr<Gnome::Glade::Xml> xml = GladeFactory::new_glade_reference("control_strip"); xml->get_widget_derived("control_strip", sc); control = sc; } + } + if (control) { control->init(this, pm); if (_controls.size() > 0) @@ -223,20 +230,21 @@ ControlPanel::disable_port(const Path& path) /** Callback for Controls to notify this of a change. */ void -ControlPanel::value_changed(SharedPtr<PortModel> port, float val) +ControlPanel::value_changed_atom(SharedPtr<PortModel> port, const Raul::Atom& val) { if (_callback_enabled) { if (_all_voices_radio->get_active()) { - App::instance().engine()->set_port_value(port->path(), Atom(val)); + App::instance().engine()->set_port_value(port->path(), val); port->value(val); } else { int voice = _voice_spinbutton->get_value_as_int(); - App::instance().engine()->set_voice_value(port->path(), voice, Atom(val)); + App::instance().engine()->set_voice_value(port->path(), voice, val); port->value(val); } } } + void ControlPanel::all_voices_selected() { |