From 83d366452af8e93f0722658d730528d699f21e2b Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 9 Mar 2017 08:33:21 +0100 Subject: Preliminary port groups work --- src/client/ClientStore.cpp | 10 ++++++++-- src/client/GraphModel.cpp | 10 ++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) (limited to 'src/client') diff --git a/src/client/ClientStore.cpp b/src/client/ClientStore.cpp index eac853f7..92b6eab1 100644 --- a/src/client/ClientStore.cpp +++ b/src/client/ClientStore.cpp @@ -19,6 +19,7 @@ #include "ingen/client/BlockModel.hpp" #include "ingen/client/ClientStore.hpp" #include "ingen/client/GraphModel.hpp" +#include "ingen/client/GroupModel.hpp" #include "ingen/client/ObjectModel.hpp" #include "ingen/client/PluginModel.hpp" #include "ingen/client/PortModel.hpp" @@ -243,9 +244,9 @@ ClientStore::put(const Raul::URI& uri, { typedef Properties::const_iterator Iterator; - bool is_graph, is_block, is_port, is_output; + bool is_graph, is_block, is_port, is_output, is_group; Resource::type(uris(), properties, - is_graph, is_block, is_port, is_output); + is_graph, is_block, is_port, is_output, is_group); // Check for specially handled types const Iterator t = properties.find(_uris.rdf_type); @@ -334,6 +335,11 @@ ClientStore::put(const Raul::URI& uri, SPtr p(new PortModel(uris(), path, index, pdir)); p->set_properties(properties); add_object(p); + } else if (is_group) { + _log.warn(fmt("Group! %1%\n") % path.c_str()); + SPtr g(new GroupModel(uris(), path)); + g->set_properties(properties); + add_object(g); } else { _log.warn(fmt("Ignoring %1% of unknown type\n") % path.c_str()); } diff --git a/src/client/GraphModel.cpp b/src/client/GraphModel.cpp index d02a3736..8cfd08e1 100644 --- a/src/client/GraphModel.cpp +++ b/src/client/GraphModel.cpp @@ -21,6 +21,7 @@ #include "ingen/client/BlockModel.hpp" #include "ingen/client/ClientStore.hpp" #include "ingen/client/GraphModel.hpp" +#include "ingen/client/GroupModel.hpp" using namespace std; @@ -38,6 +39,15 @@ GraphModel::add_child(SPtr c) return; } + SPtr gm = dynamic_ptr_cast(c); + if (gm) { + fprintf(stderr, "GROUP!!!!!!!!!!!\n"); + _signal_new_group.emit(gm); + // add_group(gm); + return; + } + + SPtr bm = dynamic_ptr_cast(c); if (bm) { _signal_new_block.emit(bm); -- cgit v1.2.1