From 0e1bf6ddfc77866ff6477a3f394c030c2a5e1b39 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 30 Jul 2012 23:00:13 +0000 Subject: Eliminate pure virtual base classes Patch, Node, and Port, and the virtual inheritance they imposed. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4576 a436a847-0d15-0410-975c-d299462d15a1 --- src/shared/Builder.cpp | 8 ++++---- src/shared/LV2Features.cpp | 2 +- src/shared/Store.cpp | 10 +++------- 3 files changed, 8 insertions(+), 12 deletions(-) (limited to 'src/shared') diff --git a/src/shared/Builder.cpp b/src/shared/Builder.cpp index 944b00ce..dadd2989 100644 --- a/src/shared/Builder.cpp +++ b/src/shared/Builder.cpp @@ -15,6 +15,7 @@ */ #include "ingen/Edge.hpp" +#include "ingen/GraphObject.hpp" #include "ingen/Interface.hpp" #include "ingen/shared/Builder.hpp" #include "ingen/shared/URIs.hpp" @@ -41,10 +42,9 @@ Builder::build(SharedPtr object) void Builder::connect(SharedPtr object) { - SharedPtr patch = PtrCast(object); - if (patch) { - for (Patch::Edges::const_iterator i = patch->edges().begin(); - i != patch->edges().end(); ++i) { + if (object->graph_type() == GraphObject::PATCH) { + for (GraphObject::Edges::const_iterator i = object->edges().begin(); + i != object->edges().end(); ++i) { _interface.connect(i->second->tail_path(), i->second->head_path()); } return; diff --git a/src/shared/LV2Features.cpp b/src/shared/LV2Features.cpp index 24b3f6fa..7061ff76 100644 --- a/src/shared/LV2Features.cpp +++ b/src/shared/LV2Features.cpp @@ -49,7 +49,7 @@ LV2Features::FeatureArray::~FeatureArray() } SharedPtr -LV2Features::lv2_features(Shared::World* world, Node* node) const +LV2Features::lv2_features(Shared::World* world, GraphObject* node) const { FeatureArray::FeatureVector vec; for (Features::const_iterator f = _features.begin(); f != _features.end(); ++f) { diff --git a/src/shared/Store.cpp b/src/shared/Store.cpp index 821322e7..ad950fd7 100644 --- a/src/shared/Store.cpp +++ b/src/shared/Store.cpp @@ -17,8 +17,7 @@ #include #include -#include "ingen/Node.hpp" -#include "ingen/Port.hpp" +#include "ingen/GraphObject.hpp" #include "ingen/shared/Store.hpp" #include "raul/PathTable.hpp" #include "raul/TableImpl.hpp" @@ -39,11 +38,8 @@ Store::add(GraphObject* o) insert(make_pair(o->path(), o)); - Node* node = dynamic_cast(o); - if (node) { - for (uint32_t i=0; i < node->num_ports(); ++i) { - add(node->port(i)); - } + for (uint32_t i = 0; i < o->num_ports(); ++i) { + add(o->port(i)); } } -- cgit v1.2.1