diff options
author | David Robillard <d@drobilla.net> | 2006-07-03 18:28:10 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2006-07-03 18:28:10 +0000 |
commit | 2df7c1a1e805bea3d439d345d37469a8d202a656 (patch) | |
tree | 4c3f0ebb6928b1f3437b6708ffc0ab7873756a6f | |
parent | 0aaae8b002fcff9fdd81a6155c609a546f68b938 (diff) | |
download | ingen-2df7c1a1e805bea3d439d345d37469a8d202a656.tar.gz ingen-2df7c1a1e805bea3d439d345d37469a8d202a656.tar.bz2 ingen-2df7c1a1e805bea3d439d345d37469a8d202a656.zip |
Creating of multiple patch input/output ports
git-svn-id: http://svn.drobilla.net/lad/ingen@80 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r-- | src/libs/engine/events/AddPortEvent.cpp | 7 | ||||
-rw-r--r-- | src/progs/ingenuity/OmFlowCanvas.cpp | 21 | ||||
-rw-r--r-- | src/progs/ingenuity/OmFlowCanvas.h | 1 | ||||
-rw-r--r-- | src/progs/ingenuity/ingenuity.glade | 10 |
4 files changed, 29 insertions, 10 deletions
diff --git a/src/libs/engine/events/AddPortEvent.cpp b/src/libs/engine/events/AddPortEvent.cpp index 1c96206a..92c9cfb9 100644 --- a/src/libs/engine/events/AddPortEvent.cpp +++ b/src/libs/engine/events/AddPortEvent.cpp @@ -45,8 +45,7 @@ AddPortEvent::AddPortEvent(CountedPtr<Responder> responder, const string& path, _data_type(DataType::UNKNOWN), _patch(NULL), _patch_port(NULL), - _driver_port(NULL), - _succeeded(true) + _driver_port(NULL) { string type_str; if (type == "CONTROL" || type == "AUDIO") @@ -118,8 +117,8 @@ AddPortEvent::execute(samplecount offset) void AddPortEvent::post_process() { - if (!_succeeded) { - const string msg = string("Could not create port - ").append(_path);// + " already exists."; + if (!_patch_port) { + const string msg = string("Could not create port - ").append(_path); m_responder->respond_error(msg); } else { m_responder->respond_ok(); diff --git a/src/progs/ingenuity/OmFlowCanvas.cpp b/src/progs/ingenuity/OmFlowCanvas.cpp index 57b66998..fc9ec9ef 100644 --- a/src/progs/ingenuity/OmFlowCanvas.cpp +++ b/src/progs/ingenuity/OmFlowCanvas.cpp @@ -172,10 +172,27 @@ OmFlowCanvas::destroy_selected() } +string +OmFlowCanvas::generate_port_name(const string& base) { + string name = base; + + char num_buf[5]; + for (uint i=1; i < 9999; ++i) { + snprintf(num_buf, 5, "%d", i); + name = base + "_"; + name += num_buf; + if (!m_patch_controller->patch_model()->get_port(name)) + break; + } + + return name; +} + + void OmFlowCanvas::menu_add_port(const string& name, const string& type, bool is_output) { - const Path& path = m_patch_controller->path().base_path() + name; + const Path& path = m_patch_controller->path().base_path() + generate_port_name(name); Controller::instance().create_port(path, type, is_output); char temp_buf[16]; @@ -184,6 +201,8 @@ OmFlowCanvas::menu_add_port(const string& name, const string& type, bool is_outp snprintf(temp_buf, 16, "%d", m_last_click_y); Controller::instance().set_metadata(path, "module-y", temp_buf); } + + /* void OmFlowCanvas::menu_add_audio_input() diff --git a/src/progs/ingenuity/OmFlowCanvas.h b/src/progs/ingenuity/OmFlowCanvas.h index 47cb9b2d..d14c79d3 100644 --- a/src/progs/ingenuity/OmFlowCanvas.h +++ b/src/progs/ingenuity/OmFlowCanvas.h @@ -53,6 +53,7 @@ public: { m_menu->popup(event->button.button, event->button.time); } private: + string generate_port_name(const string& base); void menu_add_port(const string& name, const string& type, bool is_output); /*void menu_add_audio_input(); void menu_add_audio_output(); diff --git a/src/progs/ingenuity/ingenuity.glade b/src/progs/ingenuity/ingenuity.glade index 17736ce2..67286660 100644 --- a/src/progs/ingenuity/ingenuity.glade +++ b/src/progs/ingenuity/ingenuity.glade @@ -3022,14 +3022,14 @@ <widget class="GtkAboutDialog" id="about_win"> <property name="destroy_with_parent">True</property> - <property name="name" translatable="yes">OmGtk</property> + <property name="name" translatable="yes">Ingenuity</property> <property name="copyright" translatable="yes">Copyright (C) 2005-2006 Dave Robillard</property> - <property name="comments" translatable="yes">A client for the Om modular synthesizer</property> + <property name="comments" translatable="yes">A graphical client for the Ingen audio processor</property> <property name="license" translatable="yes">Licensed under the GNU GPL, Version 2. -See COPYING file included with Om, or http://www.gnu.org/licenses/gpl.txt for more information</property> - <property name="wrap_license">False</property> - <property name="website">http://om-synth.nongnu.org</property> +See COPYING file included with this distribution, or http://www.gnu.org/licenses/gpl.txt for more information</property> + <property name="wrap_license">True</property> + <property name="website">http://codeson.net/software/ingen</property> <property name="website_label" translatable="yes"></property> <property name="authors">Author: Dave Robillard <drobilla@connect.carelton.ca> |