From 5a7beed295e6c8cee627774b9ca4d2e0eff510c1 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 14 Jun 2006 18:23:57 +0000 Subject: Removed unused cruft from GTK client git-svn-id: http://svn.drobilla.net/lad/grauph@37 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/client/PatchModel.cpp | 8 ++++---- src/libs/client/PatchModel.h | 27 ++++++++++++++------------- src/libs/client/Store.cpp | 13 +++++++++++-- 3 files changed, 29 insertions(+), 19 deletions(-) (limited to 'src/libs/client') diff --git a/src/libs/client/PatchModel.cpp b/src/libs/client/PatchModel.cpp index 551b3d4c..7d786301 100644 --- a/src/libs/client/PatchModel.cpp +++ b/src/libs/client/PatchModel.cpp @@ -49,12 +49,12 @@ PatchModel::set_path(const Path& new_path) } -NodeModel* +CountedPtr PatchModel::get_node(const string& name) { assert(name.find("/") == string::npos); NodeModelMap::iterator i = m_nodes.find(name); - return ((i != m_nodes.end()) ? (*i).second.get() : NULL); + return ((i != m_nodes.end()) ? (*i).second : CountedPtr(NULL)); } @@ -173,9 +173,9 @@ PatchModel::add_connection(CountedPtr cm) return; } - NodeModel* src_node = get_node(cm->src_port_path().parent().name()); + NodeModel* src_node = get_node(cm->src_port_path().parent().name()).get(); PortModel* src_port = (src_node == NULL) ? NULL : src_node->get_port(cm->src_port_path().name()).get(); - NodeModel* dst_node = get_node(cm->dst_port_path().parent().name()); + NodeModel* dst_node = get_node(cm->dst_port_path().parent().name()).get(); PortModel* dst_port = (dst_node == NULL) ? NULL : dst_node->get_port(cm->dst_port_path().name()).get(); assert(src_port != NULL); diff --git a/src/libs/client/PatchModel.h b/src/libs/client/PatchModel.h index 6b3b212f..c099d768 100644 --- a/src/libs/client/PatchModel.h +++ b/src/libs/client/PatchModel.h @@ -44,20 +44,21 @@ public: m_poly(poly) {} - const NodeModelMap& nodes() const { return m_nodes; } + const NodeModelMap& nodes() const { return m_nodes; } const list >& connections() const { return m_connections; } virtual void set_path(const Path& path); - NodeModel* get_node(const string& node_name); - void add_node(CountedPtr nm); - void remove_node(const string& name); + CountedPtr get_node(const string& node_name); + void add_node(CountedPtr nm); + void remove_node(const string& name); - void rename_node(const Path& old_path, const Path& new_path); - void rename_node_port(const Path& old_path, const Path& new_path); + void rename_node(const Path& old_path, const Path& new_path); + void rename_node_port(const Path& old_path, const Path& new_path); + CountedPtr get_connection(const string& src_port_path, const string& dst_port_path); - void add_connection(CountedPtr cm); - void remove_connection(const string& src_port_path, const string& dst_port_path); + void add_connection(CountedPtr cm); + void remove_connection(const string& src_port_path, const string& dst_port_path); virtual void clear(); @@ -80,11 +81,11 @@ private: PatchModel(const PatchModel& copy); PatchModel& operator=(const PatchModel& copy); - NodeModelMap m_nodes; - list > m_connections; - string m_filename; - bool m_enabled; - size_t m_poly; + NodeModelMap m_nodes; + list > m_connections; + string m_filename; + bool m_enabled; + size_t m_poly; }; typedef map PatchModelMap; diff --git a/src/libs/client/Store.cpp b/src/libs/client/Store.cpp index d1555f4d..ef70dc28 100644 --- a/src/libs/client/Store.cpp +++ b/src/libs/client/Store.cpp @@ -209,6 +209,17 @@ Store::new_patch_event(const string& path, uint32_t poly) if (m_objects.find(path) == m_objects.end()) { PatchModel* const p = new PatchModel(path, poly); add_object(p); + + std::map >::iterator pi = m_objects.find(p->path().parent()); + if (pi != m_objects.end()) { + CountedPtr parent = (*pi).second; + if (parent) { + p->set_parent(parent); + parent->add_node(p); + } else { + cerr << "ERROR: new patch with no parent" << endl; + } + } } } @@ -217,8 +228,6 @@ void Store::new_node_event(const string& plugin_type, const string& plugin_uri, const string& node_path, bool is_polyphonic, uint32_t num_ports) { // FIXME: What to do with a conflict? - // FIXME: resolve plugin here - if (m_objects.find(node_path) == m_objects.end()) { -- cgit v1.2.1