summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ingen/Builder.hpp49
-rw-r--r--src/Builder.cpp52
-rw-r--r--src/gui/GraphCanvas.cpp11
-rw-r--r--src/wscript1
4 files changed, 6 insertions, 107 deletions
diff --git a/ingen/Builder.hpp b/ingen/Builder.hpp
deleted file mode 100644
index 728a5cb9..00000000
--- a/ingen/Builder.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- This file is part of Ingen.
- Copyright 2007-2012 David Robillard <http://drobilla.net/>
-
- Ingen is free software: you can redistribute it and/or modify it under the
- terms of the GNU Affero General Public License as published by the Free
- Software Foundation, either version 3 of the License, or any later version.
-
- Ingen is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU Affero General Public License for details.
-
- You should have received a copy of the GNU Affero General Public License
- along with Ingen. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef INGEN_BUILDER_HPP
-#define INGEN_BUILDER_HPP
-
-#include "ingen/types.hpp"
-
-namespace Ingen {
-
-class Interface;
-class Node;
-class URIs;
-
-/** Wrapper for Interface to create existing objects/models.
- *
- * @ingroup IngenShared
- */
-class Builder
-{
-public:
- Builder(URIs& uris, Interface& interface);
- virtual ~Builder() {}
-
- void build(SPtr<const Node> object);
- void connect(SPtr<const Node> object);
-
-private:
- URIs& _uris;
- Interface& _interface;
-};
-
-} // namespace Ingen
-
-#endif // INGEN_BUILDER_HPP
-
diff --git a/src/Builder.cpp b/src/Builder.cpp
deleted file mode 100644
index 7de24ed1..00000000
--- a/src/Builder.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- This file is part of Ingen.
- Copyright 2007-2012 David Robillard <http://drobilla.net/>
-
- Ingen is free software: you can redistribute it and/or modify it under the
- terms of the GNU Affero General Public License as published by the Free
- Software Foundation, either version 3 of the License, or any later version.
-
- Ingen is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU Affero General Public License for details.
-
- You should have received a copy of the GNU Affero General Public License
- along with Ingen. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "ingen/Arc.hpp"
-#include "ingen/Atom.hpp"
-#include "ingen/Builder.hpp"
-#include "ingen/Interface.hpp"
-#include "ingen/Node.hpp"
-#include "ingen/URIs.hpp"
-#include "raul/Path.hpp"
-
-using namespace std;
-
-namespace Ingen {
-
-Builder::Builder(URIs& uris, Interface& interface)
- : _uris(uris)
- , _interface(interface)
-{
-}
-
-void
-Builder::build(SPtr<const Node> object)
-{
- _interface.put(object->uri(), object->properties());
-}
-
-void
-Builder::connect(SPtr<const Node> object)
-{
- if (object->graph_type() == Node::GraphType::GRAPH) {
- for (auto a : object->arcs()) {
- _interface.connect(a.second->tail_path(), a.second->head_path());
- }
- return;
- }
-}
-
-} // namespace Ingen
diff --git a/src/gui/GraphCanvas.cpp b/src/gui/GraphCanvas.cpp
index 591c6fc9..3d045859 100644
--- a/src/gui/GraphCanvas.cpp
+++ b/src/gui/GraphCanvas.cpp
@@ -24,7 +24,6 @@
#include "ganv/Canvas.hpp"
#include "ganv/Circle.hpp"
-#include "ingen/Builder.hpp"
#include "ingen/ClashAvoider.hpp"
#include "ingen/Configuration.hpp"
#include "ingen/Interface.hpp"
@@ -725,7 +724,6 @@ GraphCanvas::paste()
const URIs& uris = _app.uris();
- Builder builder(_app.world()->uris(), *_app.interface());
ClientStore clipboard(_app.world()->uris(), _app.log());
clipboard.set_plugins(_app.store()->plugins());
@@ -762,6 +760,7 @@ GraphCanvas::paste()
parser->parse_string(_app.world(), &avoider, str, base_uri,
parent, symbol);
+ // Create objects
for (const auto& c : clipboard) {
if (_graph->path().is_root() && c.first.is_root())
continue;
@@ -778,12 +777,14 @@ GraphCanvas::paste()
y->second = _app.forge().make(
y->second.get<float>() + (20.0f * _paste_count));
- builder.build(c.second);
+ _app.interface()->put(c.second->uri(), c.second->properties());
_pastees.insert(c.first);
}
- builder.connect(
- dynamic_ptr_cast<const GraphModel>(clipboard.object(_graph->path())));
+ // Connect objects
+ for (auto a : clipboard.object(_graph->path())->arcs()) {
+ _app.interface()->connect(a.second->tail_path(), a.second->head_path());
+ }
}
void
diff --git a/src/wscript b/src/wscript
index f2b88c0d..7aad0dae 100644
--- a/src/wscript
+++ b/src/wscript
@@ -4,7 +4,6 @@ from waflib.extras import autowaf as autowaf
sources = [
'AtomReader.cpp',
'AtomWriter.cpp',
- 'Builder.cpp',
'ClashAvoider.cpp',
'Configuration.cpp',
'Forge.cpp',