From b18b677b0b747ad4fbcd71102488b2cfab7cb3f9 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 15 Aug 2008 02:48:48 +0000 Subject: Add strong Symbol class (just a restricted string, like path) and use it for ingen object symbols. git-svn-id: http://svn.drobilla.net/lad/ingen@1387 a436a847-0d15-0410-975c-d299462d15a1 --- src/common/interface/EngineInterface.hpp | 2 +- src/common/interface/GraphObject.hpp | 3 ++- src/libs/client/NodeModel.hpp | 2 +- src/libs/client/ObjectModel.hpp | 3 ++- src/libs/engine/GraphObjectImpl.hpp | 3 ++- src/libs/engine/PatchImpl.cpp | 10 +++++----- src/libs/engine/QueuedEngineInterface.cpp | 4 ++-- src/libs/gui/BreadCrumb.hpp | 2 +- 8 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/common/interface/EngineInterface.hpp b/src/common/interface/EngineInterface.hpp index 41406ca8..08fb9c1a 100644 --- a/src/common/interface/EngineInterface.hpp +++ b/src/common/interface/EngineInterface.hpp @@ -80,7 +80,7 @@ public: bool polyphonic) = 0; virtual void rename(const string& old_path, - const string& new_name) = 0; + const string& new_symbol) = 0; virtual void destroy(const string& path) = 0; diff --git a/src/common/interface/GraphObject.hpp b/src/common/interface/GraphObject.hpp index 0f6ff9cb..88ee8df0 100644 --- a/src/common/interface/GraphObject.hpp +++ b/src/common/interface/GraphObject.hpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -46,7 +47,7 @@ public: typedef PathTable< SharedPtr >::const_iterator const_iterator; virtual const Raul::Path path() const = 0; - virtual const std::string name() const = 0; + virtual const Raul::Symbol symbol() const = 0; virtual const Variables& variables() const = 0; virtual bool polyphonic() const = 0; diff --git a/src/libs/client/NodeModel.hpp b/src/libs/client/NodeModel.hpp index d50926ae..72665e66 100644 --- a/src/libs/client/NodeModel.hpp +++ b/src/libs/client/NodeModel.hpp @@ -57,7 +57,7 @@ public: const string& plugin_uri() const { return _plugin_uri; } const Shared::Plugin* plugin() const { return _plugin.get(); } uint32_t num_ports() const { return _ports.size(); } - const PortModelList& ports() const { return _ports; } + const PortModelList& ports() const { return _ports; } void port_value_range(SharedPtr port, float& min, float& max); diff --git a/src/libs/client/ObjectModel.hpp b/src/libs/client/ObjectModel.hpp index 55a5e6e1..61ac62bb 100644 --- a/src/libs/client/ObjectModel.hpp +++ b/src/libs/client/ObjectModel.hpp @@ -36,6 +36,7 @@ using Raul::PathTable; using std::string; using Raul::Atom; using Raul::Path; +using Raul::Symbol; namespace Ingen { namespace Client { @@ -65,7 +66,7 @@ public: const Variables& variables() const { return _variables; } const Path path() const { return _path; } - const string name() const { return _path.name(); } + const Symbol symbol() const { return _path.name(); } SharedPtr parent() const { return _parent; } bool polyphonic() const { return _polyphonic; } diff --git a/src/libs/engine/GraphObjectImpl.hpp b/src/libs/engine/GraphObjectImpl.hpp index b5a259af..f3c7286a 100644 --- a/src/libs/engine/GraphObjectImpl.hpp +++ b/src/libs/engine/GraphObjectImpl.hpp @@ -30,6 +30,7 @@ using Raul::Atom; using Raul::Path; +using Raul::Symbol; namespace Raul { class Maid; } @@ -58,7 +59,7 @@ public: GraphObject* graph_parent() const { return _parent; } inline GraphObjectImpl* parent() const { return _parent; } - const std::string name() const { return _name; } + const Symbol symbol() const { return _name; } virtual void process(ProcessContext& context) = 0; diff --git a/src/libs/engine/PatchImpl.cpp b/src/libs/engine/PatchImpl.cpp index aedaacbf..97f9dde3 100644 --- a/src/libs/engine/PatchImpl.cpp +++ b/src/libs/engine/PatchImpl.cpp @@ -274,11 +274,11 @@ PatchImpl::add_node(List::Node* ln) * Preprocessing thread only. */ PatchImpl::Nodes::Node* -PatchImpl::remove_node(const string& name) +PatchImpl::remove_node(const string& symbol) { assert(ThreadManager::current_thread_id() == THREAD_PRE_PROCESS); for (List::iterator i = _nodes.begin(); i != _nodes.end(); ++i) - if ((*i)->name() == name) + if ((*i)->symbol() == symbol) return _nodes.erase(i); return NULL; @@ -360,14 +360,14 @@ PatchImpl::create_port(const string& name, DataType type, size_t buffer_size, bo * Realtime safe. Preprocessing thread only. */ List::Node* -PatchImpl::remove_port(const string& name) +PatchImpl::remove_port(const string& symbol) { assert(ThreadManager::current_thread_id() == THREAD_PRE_PROCESS); bool found = false; List::Node* ret = NULL; for (List::iterator i = _input_ports.begin(); i != _input_ports.end(); ++i) { - if ((*i)->name() == name) { + if ((*i)->symbol() == symbol) { ret = _input_ports.erase(i); found = true; } @@ -375,7 +375,7 @@ PatchImpl::remove_port(const string& name) if (!found) for (List::iterator i = _output_ports.begin(); i != _output_ports.end(); ++i) { - if ((*i)->name() == name) { + if ((*i)->symbol() == symbol) { ret = _output_ports.erase(i); found = true; } diff --git a/src/libs/engine/QueuedEngineInterface.cpp b/src/libs/engine/QueuedEngineInterface.cpp index d6792b09..988093aa 100644 --- a/src/libs/engine/QueuedEngineInterface.cpp +++ b/src/libs/engine/QueuedEngineInterface.cpp @@ -176,9 +176,9 @@ QueuedEngineInterface::create_node(const string& path, void QueuedEngineInterface::rename(const string& old_path, - const string& new_name) + const string& new_symbol) { - push_queued(new RenameEvent(_engine, _responder, now(), old_path, new_name)); + push_queued(new RenameEvent(_engine, _responder, now(), old_path, new_symbol)); } diff --git a/src/libs/gui/BreadCrumb.hpp b/src/libs/gui/BreadCrumb.hpp index 194a1e8f..c3b05e01 100644 --- a/src/libs/gui/BreadCrumb.hpp +++ b/src/libs/gui/BreadCrumb.hpp @@ -60,7 +60,7 @@ public: void set_path(const Path& path) { remove(); - const string text = (path == "/") ? "/" : path.name(); + const string text = (path == "/") ? "/" : path.name().c_str(); Gtk::Label* lab = manage(new Gtk::Label(text)); lab->set_padding(0, 0); lab->show(); -- cgit v1.2.1