summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/client/ClientStore.cpp40
-rw-r--r--src/client/ClientStore.hpp9
-rw-r--r--src/client/NodeModel.cpp19
-rw-r--r--src/client/NodeModel.hpp32
-rw-r--r--src/client/PatchModel.hpp6
-rw-r--r--src/client/PluginModel.cpp7
-rw-r--r--src/client/PluginModel.hpp8
-rw-r--r--src/client/PluginUI.cpp15
-rw-r--r--src/client/PluginUI.hpp20
-rw-r--r--src/client/PortModel.cpp2
-rw-r--r--src/client/PortModel.hpp3
-rw-r--r--src/gui/ConnectWindow.cpp6
-rw-r--r--src/gui/Connection.cpp2
-rw-r--r--src/gui/Connection.hpp6
-rw-r--r--src/gui/ControlPanel.cpp14
-rw-r--r--src/gui/ControlPanel.hpp11
-rw-r--r--src/gui/Controls.cpp8
-rw-r--r--src/gui/Controls.hpp18
-rw-r--r--src/gui/LoadPatchWindow.cpp9
-rw-r--r--src/gui/LoadPatchWindow.hpp8
-rw-r--r--src/gui/LoadPluginWindow.cpp36
-rw-r--r--src/gui/LoadPluginWindow.hpp17
-rw-r--r--src/gui/LoadRemotePatchWindow.cpp8
-rw-r--r--src/gui/LoadRemotePatchWindow.hpp10
-rw-r--r--src/gui/NewSubpatchWindow.cpp8
-rw-r--r--src/gui/NewSubpatchWindow.hpp12
-rw-r--r--src/gui/NodeControlWindow.cpp6
-rw-r--r--src/gui/NodeControlWindow.hpp12
-rw-r--r--src/gui/NodeMenu.cpp21
-rw-r--r--src/gui/NodeMenu.hpp2
-rw-r--r--src/gui/NodeModule.cpp15
-rw-r--r--src/gui/NodeModule.hpp24
-rw-r--r--src/gui/ObjectMenu.cpp4
-rw-r--r--src/gui/ObjectMenu.hpp21
-rw-r--r--src/gui/PatchCanvas.cpp31
-rw-r--r--src/gui/PatchCanvas.hpp25
-rw-r--r--src/gui/PatchPortModule.cpp9
-rw-r--r--src/gui/PatchPortModule.hpp18
-rw-r--r--src/gui/PatchView.cpp11
-rw-r--r--src/gui/PatchView.hpp21
-rw-r--r--src/gui/PatchWindow.cpp34
-rw-r--r--src/gui/PatchWindow.hpp20
-rw-r--r--src/gui/Port.cpp36
-rw-r--r--src/gui/Port.hpp14
-rw-r--r--src/gui/PortMenu.cpp23
-rw-r--r--src/gui/PortMenu.hpp5
-rw-r--r--src/gui/PortPropertiesWindow.cpp5
-rw-r--r--src/gui/PortPropertiesWindow.hpp17
-rw-r--r--src/gui/PropertiesWindow.cpp12
-rw-r--r--src/gui/PropertiesWindow.hpp23
-rw-r--r--src/gui/RenameWindow.cpp21
-rw-r--r--src/gui/RenameWindow.hpp19
-rw-r--r--src/gui/SubpatchModule.cpp3
-rw-r--r--src/gui/SubpatchModule.hpp7
-rw-r--r--src/gui/ThreadedLoader.cpp6
-rw-r--r--src/gui/ThreadedLoader.hpp5
-rw-r--r--src/gui/WindowFactory.cpp60
-rw-r--r--src/gui/WindowFactory.hpp34
-rw-r--r--src/serialisation/Serialiser.cpp34
-rw-r--r--src/serialisation/Serialiser.hpp36
-rw-r--r--src/server/LV2RequestRunFeature.hpp2
-rw-r--r--src/shared/Store.cpp7
-rw-r--r--src/shared/Store.hpp8
63 files changed, 545 insertions, 440 deletions
diff --git a/src/client/ClientStore.cpp b/src/client/ClientStore.cpp
index 52d05622..24d7728f 100644
--- a/src/client/ClientStore.cpp
+++ b/src/client/ClientStore.cpp
@@ -85,7 +85,7 @@ ClientStore::add_object(SharedPtr<ObjectModel> object)
PtrCast<ObjectModel>(existing->second)->set(object);
} else {
if (!object->path().is_root()) {
- SharedPtr<ObjectModel> parent = this->object(object->path().parent());
+ SharedPtr<ObjectModel> parent = _object(object->path().parent());
if (parent) {
assert(object->path().is_child_of(parent->path()));
object->set_parent(parent);
@@ -137,7 +137,7 @@ ClientStore::remove_object(const Path& path)
if (!result->path().is_root()) {
assert(result->parent());
- SharedPtr<ObjectModel> parent = this->object(result->path().parent());
+ SharedPtr<ObjectModel> parent = _object(result->path().parent());
if (parent) {
parent->remove_child(result);
}
@@ -164,7 +164,7 @@ ClientStore::plugin(const URI& uri)
}
SharedPtr<ObjectModel>
-ClientStore::object(const Path& path)
+ClientStore::_object(const Path& path)
{
assert(path.length() > 0);
iterator i = find(path);
@@ -178,11 +178,17 @@ ClientStore::object(const Path& path)
}
}
+SharedPtr<const ObjectModel>
+ClientStore::object(const Path& path) const
+{
+ return const_cast<ClientStore*>(this)->_object(path);
+}
+
SharedPtr<Resource>
ClientStore::resource(const URI& uri)
{
if (Path::is_path(uri))
- return object(uri.str());
+ return _object(uri.str());
else
return plugin(uri);
}
@@ -291,7 +297,7 @@ ClientStore::put(const URI& uri,
const Path path(uri.str());
- SharedPtr<ObjectModel> obj = PtrCast<ObjectModel>(object(path));
+ SharedPtr<ObjectModel> obj = PtrCast<ObjectModel>(_object(path));
if (obj) {
obj->set_properties(properties);
return;
@@ -371,7 +377,7 @@ ClientStore::delta(const URI& uri,
const Path path(uri.str());
- SharedPtr<ObjectModel> obj = object(path);
+ SharedPtr<ObjectModel> obj = _object(path);
if (obj) {
obj->remove_properties(remove);
obj->add_properties(add);
@@ -399,7 +405,7 @@ ClientStore::set_property(const URI& subject_uri, const URI& predicate, const At
void
ClientStore::activity(const Path& path)
{
- SharedPtr<PortModel> port = PtrCast<PortModel>(object(path));
+ SharedPtr<PortModel> port = PtrCast<PortModel>(_object(path));
if (port)
port->signal_activity().emit();
else
@@ -412,16 +418,16 @@ ClientStore::connection_patch(const Path& src_port_path, const Path& dst_port_pa
SharedPtr<PatchModel> patch;
if (src_port_path.parent() == dst_port_path.parent())
- patch = PtrCast<PatchModel>(this->object(src_port_path.parent()));
+ patch = PtrCast<PatchModel>(_object(src_port_path.parent()));
if (!patch && src_port_path.parent() == dst_port_path.parent().parent())
- patch = PtrCast<PatchModel>(this->object(src_port_path.parent()));
+ patch = PtrCast<PatchModel>(_object(src_port_path.parent()));
if (!patch && src_port_path.parent().parent() == dst_port_path.parent())
- patch = PtrCast<PatchModel>(this->object(dst_port_path.parent()));
+ patch = PtrCast<PatchModel>(_object(dst_port_path.parent()));
if (!patch)
- patch = PtrCast<PatchModel>(this->object(src_port_path.parent().parent()));
+ patch = PtrCast<PatchModel>(_object(src_port_path.parent().parent()));
if (!patch)
LOG(error) << "Unable to find connection patch " << src_port_path
@@ -434,8 +440,8 @@ bool
ClientStore::attempt_connection(const Path& src_port_path,
const Path& dst_port_path)
{
- SharedPtr<PortModel> src_port = PtrCast<PortModel>(object(src_port_path));
- SharedPtr<PortModel> dst_port = PtrCast<PortModel>(object(dst_port_path));
+ SharedPtr<PortModel> src_port = PtrCast<PortModel>(_object(src_port_path));
+ SharedPtr<PortModel> dst_port = PtrCast<PortModel>(_object(dst_port_path));
if (src_port && dst_port) {
SharedPtr<PatchModel> patch = connection_patch(src_port_path, dst_port_path);
@@ -470,8 +476,8 @@ ClientStore::disconnect(const URI& src,
const Path src_path(src.str());
const Path dst_path(dst.str());
- SharedPtr<PortModel> src_port = PtrCast<PortModel>(object(src_path));
- SharedPtr<PortModel> dst_port = PtrCast<PortModel>(object(dst_path));
+ SharedPtr<PortModel> src_port = PtrCast<PortModel>(_object(src_path));
+ SharedPtr<PortModel> dst_port = PtrCast<PortModel>(_object(dst_path));
if (src_port)
src_port->disconnected_from(dst_port);
@@ -488,8 +494,8 @@ void
ClientStore::disconnect_all(const Raul::Path& parent_patch_path,
const Raul::Path& path)
{
- SharedPtr<PatchModel> patch = PtrCast<PatchModel>(object(parent_patch_path));
- SharedPtr<ObjectModel> object = this->object(path);
+ SharedPtr<PatchModel> patch = PtrCast<PatchModel>(_object(parent_patch_path));
+ SharedPtr<ObjectModel> object = _object(path);
if (!patch || !object)
return;
diff --git a/src/client/ClientStore.hpp b/src/client/ClientStore.hpp
index 59b112ed..32b66484 100644
--- a/src/client/ClientStore.hpp
+++ b/src/client/ClientStore.hpp
@@ -61,9 +61,10 @@ public:
SharedPtr<ServerInterface> engine=SharedPtr<ServerInterface>(),
SharedPtr<SigClientInterface> emitter=SharedPtr<SigClientInterface>());
- SharedPtr<PluginModel> plugin(const Raul::URI& uri);
- SharedPtr<ObjectModel> object(const Raul::Path& path);
- SharedPtr<Resource> resource(const Raul::URI& uri);
+ SharedPtr<PluginModel> plugin(const Raul::URI& uri);
+ SharedPtr<Resource> resource(const Raul::URI& uri);
+
+ SharedPtr<const ObjectModel> object(const Raul::Path& path) const;
void clear();
@@ -109,6 +110,8 @@ public:
private:
void add(GraphObject* o) { throw; }
+ SharedPtr<ObjectModel> _object(const Raul::Path& path);
+
void add_object(SharedPtr<ObjectModel> object);
SharedPtr<ObjectModel> remove_object(const Raul::Path& path);
diff --git a/src/client/NodeModel.cpp b/src/client/NodeModel.cpp
index 7847afb40..39ce7c8d 100644
--- a/src/client/NodeModel.cpp
+++ b/src/client/NodeModel.cpp
@@ -29,7 +29,9 @@ using namespace Raul;
namespace Ingen {
namespace Client {
-NodeModel::NodeModel(Shared::LV2URIMap& uris, SharedPtr<PluginModel> plugin, const Path& path)
+NodeModel::NodeModel(Shared::LV2URIMap& uris,
+ SharedPtr<PluginModel> plugin,
+ const Path& path)
: Node()
, ObjectModel(uris, path)
, _plugin_uri(plugin->uri())
@@ -40,7 +42,9 @@ NodeModel::NodeModel(Shared::LV2URIMap& uris, SharedPtr<PluginModel> plugin, con
{
}
-NodeModel::NodeModel(Shared::LV2URIMap& uris, const URI& plugin_uri, const Path& path)
+NodeModel::NodeModel(Shared::LV2URIMap& uris,
+ const URI& plugin_uri,
+ const Path& path)
: Node()
, ObjectModel(uris, path)
, _plugin_uri(plugin_uri)
@@ -145,7 +149,7 @@ NodeModel::add_port(SharedPtr<PortModel> pm)
_signal_new_port.emit(pm);
}
-SharedPtr<PortModel>
+SharedPtr<const PortModel>
NodeModel::get_port(const Raul::Symbol& symbol) const
{
for (Ports::const_iterator i = _ports.begin(); i != _ports.end(); ++i)
@@ -158,11 +162,12 @@ Ingen::Port*
NodeModel::port(uint32_t index) const
{
assert(index < num_ports());
- return dynamic_cast<Ingen::Port*>(_ports[index].get());
+ return const_cast<Ingen::Port*>(dynamic_cast<const Ingen::Port*>(_ports[index].get()));
}
void
-NodeModel::default_port_value_range(SharedPtr<PortModel> port, float& min, float& max) const
+NodeModel::default_port_value_range(SharedPtr<const PortModel> port,
+ float& min, float& max) const
{
// Default control values
min = 0.0;
@@ -189,7 +194,7 @@ NodeModel::default_port_value_range(SharedPtr<PortModel> port, float& min, float
}
void
-NodeModel::port_value_range(SharedPtr<PortModel> port, float& min, float& max) const
+NodeModel::port_value_range(SharedPtr<const PortModel> port, float& min, float& max) const
{
assert(port->parent().get() == this);
@@ -208,7 +213,7 @@ NodeModel::port_value_range(SharedPtr<PortModel> port, float& min, float& max) c
}
std::string
-NodeModel::port_label(SharedPtr<PortModel> port) const
+NodeModel::port_label(SharedPtr<const PortModel> port) const
{
const Raul::Atom& name = port->get_property("http://lv2plug.in/ns/lv2core#name");
if (name.is_valid()) {
diff --git a/src/client/NodeModel.hpp b/src/client/NodeModel.hpp
index 314ed1b4..e57d02d6 100644
--- a/src/client/NodeModel.hpp
+++ b/src/client/NodeModel.hpp
@@ -50,9 +50,9 @@ public:
NodeModel(const NodeModel& copy);
virtual ~NodeModel();
- typedef std::vector< SharedPtr<PortModel> > Ports;
+ typedef std::vector< SharedPtr<const PortModel> > Ports;
- SharedPtr<PortModel> get_port(const Raul::Symbol& symbol) const;
+ SharedPtr<const PortModel> get_port(const Raul::Symbol& symbol) const;
Port* port(uint32_t index) const;
@@ -63,22 +63,28 @@ public:
uint32_t num_ports() const { return _ports.size(); }
const Ports& ports() const { return _ports; }
- void default_port_value_range(SharedPtr<PortModel> port, float& min, float& max) const;
- void port_value_range(SharedPtr<PortModel> port, float& min, float& max) const;
+ void default_port_value_range(SharedPtr<const PortModel> port,
+ float& min, float& max) const;
+ void port_value_range(SharedPtr<const PortModel> port,
+ float& min, float& max) const;
- std::string port_label(SharedPtr<PortModel> port) const;
+ std::string port_label(SharedPtr<const PortModel> port) const;
// Signals
- INGEN_SIGNAL(new_port, void, SharedPtr<PortModel>);
- INGEN_SIGNAL(removed_port, void, SharedPtr<PortModel>);
+ INGEN_SIGNAL(new_port, void, SharedPtr<const PortModel>);
+ INGEN_SIGNAL(removed_port, void, SharedPtr<const PortModel>);
protected:
friend class ClientStore;
- NodeModel(Shared::LV2URIMap& uris, const Raul::URI& plugin_uri, const Raul::Path& path);
- NodeModel(Shared::LV2URIMap& uris, SharedPtr<PluginModel> plugin, const Raul::Path& path);
-
+ NodeModel(Shared::LV2URIMap& uris,
+ const Raul::URI& plugin_uri,
+ const Raul::Path& path);
+ NodeModel(Shared::LV2URIMap& uris,
+ SharedPtr<PluginModel> plugin,
+ const Raul::Path& path);
NodeModel(const Raul::Path& path);
+
void add_child(SharedPtr<ObjectModel> c);
bool remove_child(SharedPtr<ObjectModel> c);
void add_port(SharedPtr<PortModel> pm);
@@ -90,9 +96,9 @@ protected:
virtual void clear();
- Ports _ports; ///< Vector of ports (not a Table to preserve order)
- Raul::URI _plugin_uri; ///< Plugin URI (if PluginModel is unknown)
- SharedPtr<PluginModel> _plugin; ///< The plugin this node is an instance of
+ Ports _ports; ///< Vector of ports (not a Table to preserve order)
+ Raul::URI _plugin_uri; ///< Plugin URI (if PluginModel is unknown)
+ SharedPtr<PluginModel> _plugin; ///< The plugin this node is an instance of
private:
mutable uint32_t _num_values; ///< Size of _min_values and _max_values
diff --git a/src/client/PatchModel.hpp b/src/client/PatchModel.hpp
index 73930189..dbd54c03 100644
--- a/src/client/PatchModel.hpp
+++ b/src/client/PatchModel.hpp
@@ -57,10 +57,10 @@ public:
* not editable (control mode) you can just change controllers (performing)
*/
bool get_editable() const { return _editable; }
- void set_editable(bool e) {
+ void set_editable(bool e) const {
if (_editable != e) {
_editable = e;
- _signal_editable.emit(e);
+ const_cast<PatchModel*>(this)->signal_editable().emit(e);
}
}
@@ -90,7 +90,7 @@ private:
const Ingen::Port* dst_port);
SharedPtr<Connections> _connections;
- bool _editable;
+ mutable bool _editable;
};
} // namespace Client
diff --git a/src/client/PluginModel.cpp b/src/client/PluginModel.cpp
index 8a644edc..3f0bf735 100644
--- a/src/client/PluginModel.cpp
+++ b/src/client/PluginModel.cpp
@@ -149,7 +149,7 @@ PluginModel::set(SharedPtr<PluginModel> p)
}
Symbol
-PluginModel::default_node_symbol()
+PluginModel::default_node_symbol() const
{
const Atom& name_atom = get_property("http://lv2plug.in/ns/lv2core#symbol");
if (name_atom.is_valid() && name_atom.type() == Atom::STRING)
@@ -159,7 +159,7 @@ PluginModel::default_node_symbol()
}
string
-PluginModel::human_name()
+PluginModel::human_name() const
{
const Atom& name_atom = get_property("http://usefulinc.com/ns/doap#name");
if (name_atom.type() == Atom::STRING)
@@ -194,7 +194,8 @@ PluginModel::has_ui() const
}
SharedPtr<PluginUI>
-PluginModel::ui(Ingen::Shared::World* world, SharedPtr<NodeModel> node) const
+PluginModel::ui(Ingen::Shared::World* world,
+ SharedPtr<const NodeModel> node) const
{
if (_type != LV2)
return SharedPtr<PluginUI>();
diff --git a/src/client/PluginModel.hpp b/src/client/PluginModel.hpp
index e301c615..852a554d 100644
--- a/src/client/PluginModel.hpp
+++ b/src/client/PluginModel.hpp
@@ -62,8 +62,8 @@ public:
virtual const Raul::Atom& get_property(const Raul::URI& key) const;
- Raul::Symbol default_node_symbol();
- std::string human_name();
+ Raul::Symbol default_node_symbol() const;
+ std::string human_name() const;
std::string port_human_name(uint32_t index) const;
#ifdef HAVE_LILV
@@ -81,8 +81,8 @@ public:
bool has_ui() const;
- SharedPtr<PluginUI> ui(Ingen::Shared::World* world,
- SharedPtr<NodeModel> node) const;
+ SharedPtr<PluginUI> ui(Ingen::Shared::World* world,
+ SharedPtr<const NodeModel> node) const;
const std::string& icon_path() const;
static std::string get_lv2_icon_path(const LilvPlugin* plugin);
diff --git a/src/client/PluginUI.cpp b/src/client/PluginUI.cpp
index 53f1d5ab..466ee320 100644
--- a/src/client/PluginUI.cpp
+++ b/src/client/PluginUI.cpp
@@ -52,7 +52,7 @@ lv2_ui_write(SuilController controller,
return;
}
- SharedPtr<PortModel> port = ports[port_index];
+ SharedPtr<const PortModel> port = ports[port_index];
const Shared::LV2URIMap& uris = *ui->world()->uris().get();
@@ -101,8 +101,8 @@ lv2_ui_write(SuilController controller,
}
}
-PluginUI::PluginUI(Ingen::Shared::World* world,
- SharedPtr<NodeModel> node)
+PluginUI::PluginUI(Ingen::Shared::World* world,
+ SharedPtr<const NodeModel> node)
: _world(world)
, _node(node)
, _instance(NULL)
@@ -115,9 +115,9 @@ PluginUI::~PluginUI()
}
SharedPtr<PluginUI>
-PluginUI::create(Ingen::Shared::World* world,
- SharedPtr<NodeModel> node,
- const LilvPlugin* plugin)
+PluginUI::create(Ingen::Shared::World* world,
+ SharedPtr<const NodeModel> node,
+ const LilvPlugin* plugin)
{
if (!PluginUI::ui_host) {
PluginUI::ui_host = suil_host_new(lv2_ui_write, NULL, NULL, NULL);
@@ -148,7 +148,8 @@ PluginUI::create(Ingen::Shared::World* world,
}
SharedPtr<PluginUI> ret(new PluginUI(world, node));
- ret->_features = world->lv2_features()->lv2_features(world, node.get());
+ ret->_features = world->lv2_features()->lv2_features(
+ world, const_cast<NodeModel*>(node.get()));
SuilInstance* instance = suil_instance_new(
PluginUI::ui_host,
diff --git a/src/client/PluginUI.hpp b/src/client/PluginUI.hpp
index cedc4fe2..9f5b0e52 100644
--- a/src/client/PluginUI.hpp
+++ b/src/client/PluginUI.hpp
@@ -44,9 +44,9 @@ class PluginUI {
public:
~PluginUI();
- static SharedPtr<PluginUI> create(Ingen::Shared::World* world,
- SharedPtr<NodeModel> node,
- const LilvPlugin* plugin);
+ static SharedPtr<PluginUI> create(Ingen::Shared::World* world,
+ SharedPtr<const NodeModel> node,
+ const LilvPlugin* plugin);
SuilWidget get_widget();
@@ -55,16 +55,16 @@ public:
uint32_t format,
const void* buffer);
- Ingen::Shared::World* world() const { return _world; }
- SharedPtr<NodeModel> node() const { return _node; }
+ Ingen::Shared::World* world() const { return _world; }
+ SharedPtr<const NodeModel> node() const { return _node; }
private:
- PluginUI(Ingen::Shared::World* world,
- SharedPtr<NodeModel> node);
+ PluginUI(Ingen::Shared::World* world,
+ SharedPtr<const NodeModel> node);
- Ingen::Shared::World* _world;
- SharedPtr<NodeModel> _node;
- SuilInstance* _instance;
+ Ingen::Shared::World* _world;
+ SharedPtr<const NodeModel> _node;
+ SuilInstance* _instance;
static SuilHost* ui_host;
diff --git a/src/client/PortModel.cpp b/src/client/PortModel.cpp
index 9ca7fe19..f6edba20 100644
--- a/src/client/PortModel.cpp
+++ b/src/client/PortModel.cpp
@@ -61,7 +61,7 @@ PortModel::set(SharedPtr<ObjectModel> model)
}
bool
-PortModel::has_context(const Raul::URI& uri)
+PortModel::has_context(const Raul::URI& uri) const
{
const Raul::Atom& context = get_property(_uris.ctx_context);
if (uri == _uris.ctx_AudioContext && !context.is_valid())
diff --git a/src/client/PortModel.hpp b/src/client/PortModel.hpp
index 133a2794..fd4a679e 100644
--- a/src/client/PortModel.hpp
+++ b/src/client/PortModel.hpp
@@ -56,7 +56,8 @@ public:
bool is_integer() const { return port_property("http://lv2plug.in/ns/lv2core#integer"); }
bool is_toggle() const { return port_property("http://lv2plug.in/ns/lv2core#toggled"); }
- bool has_context(const Raul::URI& context);
+ bool has_context(const Raul::URI& context) const;
+
inline bool operator==(const PortModel& pm) const { return (path() == pm.path()); }
diff --git a/src/gui/ConnectWindow.cpp b/src/gui/ConnectWindow.cpp
index 7741be10..84d67797 100644
--- a/src/gui/ConnectWindow.cpp
+++ b/src/gui/ConnectWindow.cpp
@@ -54,7 +54,8 @@ namespace Raul { class Deletable; }
namespace Ingen {
namespace GUI {
-ConnectWindow::ConnectWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml)
+ConnectWindow::ConnectWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& xml)
: Dialog(cobject)
, _xml(xml)
, _mode(CONNECT_REMOTE)
@@ -444,7 +445,8 @@ ConnectWindow::gtk_callback()
++_connect_stage;
} else if (_connect_stage == 3) {
if (App::instance().store()->size() > 0) {
- SharedPtr<PatchModel> root = PtrCast<PatchModel>(App::instance().store()->object("/"));
+ SharedPtr<const PatchModel> root = PtrCast<const PatchModel>(
+ App::instance().store()->object("/"));
if (root) {
set_connected_to(App::instance().engine());
App::instance().window_factory()->present_patch(root);
diff --git a/src/gui/Connection.cpp b/src/gui/Connection.cpp
index 27110227..f9e079c0 100644
--- a/src/gui/Connection.cpp
+++ b/src/gui/Connection.cpp
@@ -25,7 +25,7 @@ namespace Ingen {
namespace GUI {
Connection::Connection(boost::shared_ptr<FlowCanvas::Canvas> canvas,
- boost::shared_ptr<ConnectionModel> model,
+ boost::shared_ptr<const ConnectionModel> model,
boost::shared_ptr<FlowCanvas::Connectable> src,
boost::shared_ptr<FlowCanvas::Connectable> dst,
uint32_t color)
diff --git a/src/gui/Connection.hpp b/src/gui/Connection.hpp
index 6ff6365f..fb30a7c0 100644
--- a/src/gui/Connection.hpp
+++ b/src/gui/Connection.hpp
@@ -38,15 +38,15 @@ class Connection : public FlowCanvas::Connection
{
public:
Connection(boost::shared_ptr<FlowCanvas::Canvas> canvas,
- boost::shared_ptr<ConnectionModel> model,
+ boost::shared_ptr<const ConnectionModel> model,
boost::shared_ptr<FlowCanvas::Connectable> src,
boost::shared_ptr<FlowCanvas::Connectable> dst,
uint32_t color);
- SharedPtr<ConnectionModel> model() const { return _connection_model; }
+ SharedPtr<const ConnectionModel> model() const { return _connection_model; }
private:
- SharedPtr<ConnectionModel> _connection_model;
+ SharedPtr<const ConnectionModel> _connection_model;
};
} // namespace GUI
diff --git a/src/gui/ControlPanel.cpp b/src/gui/ControlPanel.cpp
index 03e044cc..59309ab4 100644
--- a/src/gui/ControlPanel.cpp
+++ b/src/gui/ControlPanel.cpp
@@ -32,7 +32,8 @@ using namespace Raul;
namespace Ingen {
namespace GUI {
-ControlPanel::ControlPanel(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml)
+ControlPanel::ControlPanel(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& xml)
: Gtk::HBox(cobject)
, _callback_enabled(true)
{
@@ -48,12 +49,13 @@ ControlPanel::~ControlPanel()
}
void
-ControlPanel::init(SharedPtr<NodeModel> node, uint32_t poly)
+ControlPanel::init(SharedPtr<const NodeModel> node, uint32_t poly)
{
assert(node != NULL);
assert(poly > 0);
- for (NodeModel::Ports::const_iterator i = node->ports().begin(); i != node->ports().end(); ++i) {
+ for (NodeModel::Ports::const_iterator i = node->ports().begin();
+ i != node->ports().end(); ++i) {
add_port(*i);
}
@@ -73,7 +75,7 @@ ControlPanel::find_port(const Path& path) const
/** Add a control to the panel for the given port.
*/
void
-ControlPanel::add_port(SharedPtr<PortModel> pm)
+ControlPanel::add_port(SharedPtr<const PortModel> pm)
{
assert(pm);
@@ -146,13 +148,13 @@ ControlPanel::remove_port(const Path& path)
/** Callback for Controls to notify this of a change.
*/
void
-ControlPanel::value_changed_atom(SharedPtr<PortModel> port, const Raul::Atom& val)
+ControlPanel::value_changed_atom(SharedPtr<const PortModel> port,
+ const Raul::Atom& val)
{
if (_callback_enabled) {
App::instance().engine()->set_property(port->path(),
App::instance().uris().ingen_value,
val);
- port->value(val);
}
}
diff --git a/src/gui/ControlPanel.hpp b/src/gui/ControlPanel.hpp
index 57e3bec6..cff7e946 100644
--- a/src/gui/ControlPanel.hpp
+++ b/src/gui/ControlPanel.hpp
@@ -47,14 +47,15 @@ namespace GUI {
*/
class ControlPanel : public Gtk::HBox {
public:
- ControlPanel(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml);
+ ControlPanel(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml);
virtual ~ControlPanel();
- void init(SharedPtr<NodeModel> node, uint32_t poly);
+ void init(SharedPtr<const NodeModel> node, uint32_t poly);
Control* find_port(const Raul::Path& path) const;
- void add_port(SharedPtr<PortModel> port);
+ void add_port(SharedPtr<const PortModel> port);
void remove_port(const Raul::Path& path);
void enable_port(const Raul::Path& path);
@@ -64,10 +65,10 @@ public:
std::pair<int,int> ideal_size() const { return _ideal_size; }
// Callback for Control
- void value_changed_atom(SharedPtr<PortModel> port, const Raul::Atom& val);
+ void value_changed_atom(SharedPtr<const PortModel> port, const Raul::Atom& val);
template <typename T>
- void value_changed(SharedPtr<PortModel> port, T val) {
+ void value_changed(SharedPtr<const PortModel> port, T val) {
this->value_changed_atom(port, Raul::Atom(val));
}
diff --git a/src/gui/Controls.cpp b/src/gui/Controls.cpp
index 153f1c26..b9362ed7 100644
--- a/src/gui/Controls.cpp
+++ b/src/gui/Controls.cpp
@@ -60,7 +60,7 @@ Control::~Control()
}
void
-Control::init(ControlPanel* panel, SharedPtr<PortModel> pm)
+Control::init(ControlPanel* panel, SharedPtr<const PortModel> pm)
{
_control_panel = panel;
_port_model = pm,
@@ -124,7 +124,7 @@ SliderControl::SliderControl(BaseObjectType* cobject, const Glib::RefPtr<Gnome::
}
void
-SliderControl::init(ControlPanel* panel, SharedPtr<PortModel> pm)
+SliderControl::init(ControlPanel* panel, SharedPtr<const PortModel> pm)
{
_enable_signal = false;
_enabled = true;
@@ -297,7 +297,7 @@ ToggleControl::ToggleControl(BaseObjectType* cobject, const Glib::RefPtr<Gnome::
}
void
-ToggleControl::init(ControlPanel* panel, SharedPtr<PortModel> pm)
+ToggleControl::init(ControlPanel* panel, SharedPtr<const PortModel> pm)
{
_enable_signal = false;
@@ -355,7 +355,7 @@ StringControl::StringControl(BaseObjectType* cobject, const Glib::RefPtr<Gnome::
}
void
-StringControl::init(ControlPanel* panel, SharedPtr<PortModel> pm)
+StringControl::init(ControlPanel* panel, SharedPtr<const PortModel> pm)
{
_enable_signal = false;
diff --git a/src/gui/Controls.hpp b/src/gui/Controls.hpp
index 95b89c73..c64f7062 100644
--- a/src/gui/Controls.hpp
+++ b/src/gui/Controls.hpp
@@ -42,12 +42,12 @@ public:
Control(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml);
virtual ~Control();
- virtual void init(ControlPanel* panel, SharedPtr<Client::PortModel> pm);
+ virtual void init(ControlPanel* panel, SharedPtr<const Client::PortModel> pm);
void enable();
void disable();
- inline const SharedPtr<Client::PortModel> port_model() const { return _port_model; }
+ inline const SharedPtr<const Client::PortModel> port_model() const { return _port_model; }
protected:
virtual void set_value(const Raul::Atom& value) = 0;
@@ -56,10 +56,10 @@ protected:
void set_label(const std::string& name);
void menu_properties();
- ControlPanel* _control_panel;
- SharedPtr<Client::PortModel> _port_model;
- sigc::connection _control_connection;
- bool _enable_signal;
+ ControlPanel* _control_panel;
+ SharedPtr<const Client::PortModel> _port_model;
+ sigc::connection _control_connection;
+ bool _enable_signal;
Gtk::Menu* _menu;
Gtk::MenuItem* _menu_properties;
@@ -74,7 +74,7 @@ class SliderControl : public Control
{
public:
SliderControl(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml);
- void init(ControlPanel* panel, SharedPtr<Client::PortModel> pm);
+ void init(ControlPanel* panel, SharedPtr<const Client::PortModel> pm);
void set_min(float val);
void set_max(float val);
@@ -107,7 +107,7 @@ class ToggleControl : public Control
public:
ToggleControl(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml);
- void init(ControlPanel* panel, SharedPtr<Client::PortModel> pm);
+ void init(ControlPanel* panel, SharedPtr<const Client::PortModel> pm);
private:
void set_value(const Raul::Atom& value);
@@ -125,7 +125,7 @@ class StringControl : public Control
public:
StringControl(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml);
- void init(ControlPanel* panel, SharedPtr<Client::PortModel> pm);
+ void init(ControlPanel* panel, SharedPtr<const Client::PortModel> pm);
private:
void set_value(const Raul::Atom& value);
diff --git a/src/gui/LoadPatchWindow.cpp b/src/gui/LoadPatchWindow.cpp
index 99c1c127..f002e36e 100644
--- a/src/gui/LoadPatchWindow.cpp
+++ b/src/gui/LoadPatchWindow.cpp
@@ -40,7 +40,8 @@ using namespace Raul;
namespace Ingen {
namespace GUI {
-LoadPatchWindow::LoadPatchWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml)
+LoadPatchWindow::LoadPatchWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& xml)
: Gtk::FileChooserDialog(cobject)
, _merge_ports(false)
{
@@ -95,7 +96,9 @@ LoadPatchWindow::LoadPatchWindow(BaseObjectType* cobject, const Glib::RefPtr<Gno
}
void
-LoadPatchWindow::present(SharedPtr<PatchModel> patch, bool import, GraphObject::Properties data)
+LoadPatchWindow::present(SharedPtr<const PatchModel> patch,
+ bool import,
+ GraphObject::Properties data)
{
_import = import;
set_patch(patch);
@@ -113,7 +116,7 @@ LoadPatchWindow::present(SharedPtr<PatchModel> patch, bool import, GraphObject::
* This function MUST be called before using the window in any way!
*/
void
-LoadPatchWindow::set_patch(SharedPtr<PatchModel> patch)
+LoadPatchWindow::set_patch(SharedPtr<const PatchModel> patch)
{
_patch = patch;
_symbol_entry->set_text("");
diff --git a/src/gui/LoadPatchWindow.hpp b/src/gui/LoadPatchWindow.hpp
index 66aebece..cc60ef80 100644
--- a/src/gui/LoadPatchWindow.hpp
+++ b/src/gui/LoadPatchWindow.hpp
@@ -42,9 +42,11 @@ class LoadPatchWindow : public Gtk::FileChooserDialog
public:
LoadPatchWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml);
- void set_patch(SharedPtr<PatchModel> patch);
+ void set_patch(SharedPtr<const PatchModel> patch);
- void present(SharedPtr<PatchModel> patch, bool import, GraphObject::Properties data);
+ void present(SharedPtr<const PatchModel> patch,
+ bool import,
+ GraphObject::Properties data);
protected:
void on_show();
@@ -62,7 +64,7 @@ private:
GraphObject::Properties _initial_data;
- SharedPtr<PatchModel> _patch;
+ SharedPtr<const PatchModel> _patch;
Gtk::Label* _symbol_label;
Gtk::Entry* _symbol_entry;
diff --git a/src/gui/LoadPluginWindow.cpp b/src/gui/LoadPluginWindow.cpp
index 66868f18..b763c0ae 100644
--- a/src/gui/LoadPluginWindow.cpp
+++ b/src/gui/LoadPluginWindow.cpp
@@ -35,7 +35,8 @@ using namespace Raul;
namespace Ingen {
namespace GUI {
-LoadPluginWindow::LoadPluginWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml)
+LoadPluginWindow::LoadPluginWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& xml)
: Window(cobject)
, _name_offset(0)
, _has_shown(false)
@@ -107,7 +108,8 @@ LoadPluginWindow::LoadPluginWindow(BaseObjectType* cobject, const Glib::RefPtr<G
}
void
-LoadPluginWindow::present(SharedPtr<PatchModel> patch, GraphObject::Properties data)
+LoadPluginWindow::present(SharedPtr<const PatchModel> patch,
+ GraphObject::Properties data)
{
set_patch(patch);
_initial_data = data;
@@ -148,7 +150,7 @@ LoadPluginWindow::name_cleared(Gtk::EntryIconPosition pos, const GdkEventButton*
* This function MUST be called before using the window in any way!
*/
void
-LoadPluginWindow::set_patch(SharedPtr<PatchModel> patch)
+LoadPluginWindow::set_patch(SharedPtr<const PatchModel> patch)
{
if (_patch) {
_patch = patch;
@@ -205,7 +207,7 @@ LoadPluginWindow::set_plugins(SharedPtr<const ClientStore::Plugins> m)
}
void
-LoadPluginWindow::new_plugin(SharedPtr<PluginModel> pm)
+LoadPluginWindow::new_plugin(SharedPtr<const PluginModel> pm)
{
if (is_visible())
add_plugin(pm);
@@ -214,7 +216,8 @@ LoadPluginWindow::new_plugin(SharedPtr<PluginModel> pm)
}
void
-LoadPluginWindow::set_row(Gtk::TreeModel::Row& row, SharedPtr<PluginModel> plugin)
+LoadPluginWindow::set_row(Gtk::TreeModel::Row& row,
+ SharedPtr<const PluginModel> plugin)
{
const LV2URIMap& uris = App::instance().uris();
const Atom& name = plugin->get_property(uris.doap_name);
@@ -241,14 +244,14 @@ LoadPluginWindow::set_row(Gtk::TreeModel::Row& row, SharedPtr<PluginModel> plugi
}
void
-LoadPluginWindow::add_plugin(SharedPtr<PluginModel> plugin)
+LoadPluginWindow::add_plugin(SharedPtr<const PluginModel> plugin)
{
if (plugin->lilv_plugin() && lilv_plugin_is_replaced(plugin->lilv_plugin())) {
return;
}
Gtk::TreeModel::iterator iter = _plugins_liststore->append();
- Gtk::TreeModel::Row row = *iter;
+ Gtk::TreeModel::Row row = *iter;
_rows.insert(make_pair(plugin->uri(), iter));
set_row(row, plugin);
@@ -261,7 +264,8 @@ LoadPluginWindow::add_plugin(SharedPtr<PluginModel> plugin)
///// Event Handlers //////
void
-LoadPluginWindow::plugin_activated(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* col)
+LoadPluginWindow::plugin_activated(const Gtk::TreeModel::Path& path,
+ Gtk::TreeViewColumn* col)
{
add_clicked();
}
@@ -279,7 +283,8 @@ LoadPluginWindow::plugin_selection_changed()
*_selection->get_selected_rows().begin());
if (iter) {
Gtk::TreeModel::Row row = *iter;
- boost::shared_ptr<PluginModel> p = row.get_value(_plugins_columns._col_plugin);
+ boost::shared_ptr<const PluginModel> p = row.get_value(
+ _plugins_columns._col_plugin);
_name_offset = App::instance().store()->child_name_offset(
_patch->path(), p->default_node_symbol());
_node_name_entry->set_text(generate_module_name(p, _name_offset));
@@ -302,7 +307,8 @@ LoadPluginWindow::plugin_selection_changed()
* sends the notification back.
*/
string
-LoadPluginWindow::generate_module_name(SharedPtr<PluginModel> plugin, int offset)
+LoadPluginWindow::generate_module_name(SharedPtr<const PluginModel> plugin,
+ int offset)
{
std::stringstream ss;
ss << plugin->default_node_symbol();
@@ -314,11 +320,11 @@ LoadPluginWindow::generate_module_name(SharedPtr<PluginModel> plugin, int offset
void
LoadPluginWindow::load_plugin(const Gtk::TreeModel::iterator& iter)
{
- const LV2URIMap& uris = App::instance().uris();
- Gtk::TreeModel::Row row = *iter;
- SharedPtr<PluginModel> plugin = row.get_value(_plugins_columns._col_plugin);
- bool polyphonic = _polyphonic_checkbutton->get_active();
- string name = _node_name_entry->get_text();
+ const LV2URIMap& uris = App::instance().uris();
+ Gtk::TreeModel::Row row = *iter;
+ SharedPtr<const PluginModel> plugin = row.get_value(_plugins_columns._col_plugin);
+ bool polyphonic = _polyphonic_checkbutton->get_active();
+ string name = _node_name_entry->get_text();
if (name.empty())
name = generate_module_name(plugin, _name_offset);
diff --git a/src/gui/LoadPluginWindow.hpp b/src/gui/LoadPluginWindow.hpp
index 63ba5eb0..3ba9a590 100644
--- a/src/gui/LoadPluginWindow.hpp
+++ b/src/gui/LoadPluginWindow.hpp
@@ -50,12 +50,12 @@ class LoadPluginWindow : public Window
public:
LoadPluginWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml);
- void set_patch(SharedPtr<PatchModel> patch);
+ void set_patch(SharedPtr<const PatchModel> patch);
void set_plugins(SharedPtr<const Client::ClientStore::Plugins> plugins);
- void add_plugin(SharedPtr<PluginModel> plugin);
+ void add_plugin(SharedPtr<const PluginModel> plugin);
- void present(SharedPtr<PatchModel> patch, GraphObject::Properties data);
+ void present(SharedPtr<const PatchModel> patch, GraphObject::Properties data);
protected:
void on_show();
@@ -79,7 +79,7 @@ private:
Gtk::TreeModelColumn<Glib::ustring> _col_uri;
// Not displayed:
- Gtk::TreeModelColumn<SharedPtr<PluginModel> > _col_plugin;
+ Gtk::TreeModelColumn< SharedPtr<const PluginModel> > _col_plugin;
};
/** Column for the filter criteria combo box. */
@@ -101,8 +101,8 @@ private:
void name_cleared(Gtk::EntryIconPosition pos, const GdkEventButton* event);
#endif
- void set_row(Gtk::TreeModel::Row& row, SharedPtr<PluginModel> plugin);
- void new_plugin(SharedPtr<PluginModel> plugin);
+ void set_row(Gtk::TreeModel::Row& row, SharedPtr<const PluginModel> plugin);
+ void new_plugin(SharedPtr<const PluginModel> plugin);
void plugin_property_changed(const Raul::URI& plugin,
const Raul::URI& predicate,
@@ -111,13 +111,14 @@ private:
void plugin_activated(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* col);
void plugin_selection_changed();
- std::string generate_module_name(SharedPtr<PluginModel> plugin, int offset = 0);
+ std::string generate_module_name(SharedPtr<const PluginModel> plugin,
+ int offset=0);
void load_plugin(const Gtk::TreeModel::iterator& iter);
GraphObject::Properties _initial_data;
- SharedPtr<PatchModel> _patch;
+ SharedPtr<const PatchModel> _patch;
typedef std::map<Raul::URI, Gtk::TreeModel::iterator> Rows;
Rows _rows;
diff --git a/src/gui/LoadRemotePatchWindow.cpp b/src/gui/LoadRemotePatchWindow.cpp
index 0318dba7..84b304da 100644
--- a/src/gui/LoadRemotePatchWindow.cpp
+++ b/src/gui/LoadRemotePatchWindow.cpp
@@ -33,7 +33,8 @@ using namespace std;
namespace Ingen {
namespace GUI {
-LoadRemotePatchWindow::LoadRemotePatchWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml)
+LoadRemotePatchWindow::LoadRemotePatchWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& xml)
: Dialog(cobject)
{
xml->get_widget("load_remote_patch_treeview", _treeview);
@@ -56,7 +57,8 @@ LoadRemotePatchWindow::LoadRemotePatchWindow(BaseObjectType* cobject, const Glib
}
void
-LoadRemotePatchWindow::present(SharedPtr<PatchModel> patch, GraphObject::Properties data)
+LoadRemotePatchWindow::present(SharedPtr<const PatchModel> patch,
+ GraphObject::Properties data)
{
_liststore->clear();
@@ -93,7 +95,7 @@ LoadRemotePatchWindow::present(SharedPtr<PatchModel> patch, GraphObject::Propert
* This function MUST be called before using the window in any way!
*/
void
-LoadRemotePatchWindow::set_patch(SharedPtr<PatchModel> patch)
+LoadRemotePatchWindow::set_patch(SharedPtr<const PatchModel> patch)
{
_patch = patch;
}
diff --git a/src/gui/LoadRemotePatchWindow.hpp b/src/gui/LoadRemotePatchWindow.hpp
index 07be9a30..dd0bb116 100644
--- a/src/gui/LoadRemotePatchWindow.hpp
+++ b/src/gui/LoadRemotePatchWindow.hpp
@@ -55,11 +55,13 @@ public:
class LoadRemotePatchWindow : public Dialog
{
public:
- LoadRemotePatchWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml);
+ LoadRemotePatchWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& xml);
- void set_patch(SharedPtr<PatchModel> patch);
+ void set_patch(SharedPtr<const PatchModel> patch);
- void present(SharedPtr<PatchModel> patch, GraphObject::Properties data);
+ void present(SharedPtr<const PatchModel> patch,
+ GraphObject::Properties data);
private:
void patch_activated(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* col);
@@ -70,7 +72,7 @@ private:
GraphObject::Properties _initial_data;
- SharedPtr<PatchModel> _patch;
+ SharedPtr<const PatchModel> _patch;
Glib::RefPtr<Gtk::TreeSelection> _selection;
Glib::RefPtr<Gtk::ListStore> _liststore;
diff --git a/src/gui/NewSubpatchWindow.cpp b/src/gui/NewSubpatchWindow.cpp
index 26664693..f2e2227a 100644
--- a/src/gui/NewSubpatchWindow.cpp
+++ b/src/gui/NewSubpatchWindow.cpp
@@ -29,7 +29,8 @@ using namespace Raul;
namespace Ingen {
namespace GUI {
-NewSubpatchWindow::NewSubpatchWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml)
+NewSubpatchWindow::NewSubpatchWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& xml)
: Window(cobject)
{
xml->get_widget("new_subpatch_name_entry", _name_entry);
@@ -46,7 +47,8 @@ NewSubpatchWindow::NewSubpatchWindow(BaseObjectType* cobject, const Glib::RefPtr
}
void
-NewSubpatchWindow::present(SharedPtr<PatchModel> patch, GraphObject::Properties data)
+NewSubpatchWindow::present(SharedPtr<const PatchModel> patch,
+ GraphObject::Properties data)
{
set_patch(patch);
_initial_data = data;
@@ -58,7 +60,7 @@ NewSubpatchWindow::present(SharedPtr<PatchModel> patch, GraphObject::Properties
* This function MUST be called before using the window in any way!
*/
void
-NewSubpatchWindow::set_patch(SharedPtr<PatchModel> patch)
+NewSubpatchWindow::set_patch(SharedPtr<const PatchModel> patch)
{
_patch = patch;
}
diff --git a/src/gui/NewSubpatchWindow.hpp b/src/gui/NewSubpatchWindow.hpp
index cf05b31d..5da4c314 100644
--- a/src/gui/NewSubpatchWindow.hpp
+++ b/src/gui/NewSubpatchWindow.hpp
@@ -42,19 +42,21 @@ namespace GUI {
class NewSubpatchWindow : public Window
{
public:
- NewSubpatchWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml);
+ NewSubpatchWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& xml);
- void set_patch(SharedPtr<PatchModel> patch);
+ void set_patch(SharedPtr<const PatchModel> patch);
- void present(SharedPtr<PatchModel> patch, GraphObject::Properties data);
+ void present(SharedPtr<const PatchModel> patch,
+ GraphObject::Properties data);
private:
void name_changed();
void ok_clicked();
void cancel_clicked();
- GraphObject::Properties _initial_data;
- SharedPtr<PatchModel> _patch;
+ GraphObject::Properties _initial_data;
+ SharedPtr<const PatchModel> _patch;
Gtk::Entry* _name_entry;
Gtk::Label* _message_label;
diff --git a/src/gui/NodeControlWindow.cpp b/src/gui/NodeControlWindow.cpp
index ef09a68d..ebee1ad3 100644
--- a/src/gui/NodeControlWindow.cpp
+++ b/src/gui/NodeControlWindow.cpp
@@ -33,7 +33,8 @@ namespace GUI {
/** Create a node control window and load a new ControlPanel for it.
*/
-NodeControlWindow::NodeControlWindow(SharedPtr<NodeModel> node, uint32_t poly)
+NodeControlWindow::NodeControlWindow(SharedPtr<const NodeModel> node,
+ uint32_t poly)
: _node(node)
, _position_stored(false)
, _x(0)
@@ -62,7 +63,8 @@ NodeControlWindow::NodeControlWindow(SharedPtr<NodeModel> node, uint32_t poly)
/** Create a node control window and with an existing ControlPanel.
*/
-NodeControlWindow::NodeControlWindow(SharedPtr<NodeModel> node, ControlPanel* panel)
+NodeControlWindow::NodeControlWindow(SharedPtr<const NodeModel> node,
+ ControlPanel* panel)
: _node(node)
, _control_panel(panel)
{
diff --git a/src/gui/NodeControlWindow.hpp b/src/gui/NodeControlWindow.hpp
index 4a340826..97ec7ba3 100644
--- a/src/gui/NodeControlWindow.hpp
+++ b/src/gui/NodeControlWindow.hpp
@@ -42,11 +42,11 @@ class ControlPanel;
class NodeControlWindow : public Window
{
public:
- NodeControlWindow(SharedPtr<NodeModel> node, uint32_t poly);
- NodeControlWindow(SharedPtr<NodeModel> node, ControlPanel* panel);
+ NodeControlWindow(SharedPtr<const NodeModel> node, uint32_t poly);
+ NodeControlWindow(SharedPtr<const NodeModel> node, ControlPanel* panel);
virtual ~NodeControlWindow();
- SharedPtr<NodeModel> node() { return _node; }
+ SharedPtr<const NodeModel> node() const { return _node; }
ControlPanel* control_panel() const { return _control_panel; }
@@ -57,9 +57,9 @@ protected:
void on_hide();
private:
- SharedPtr<NodeModel> _node;
- ControlPanel* _control_panel;
- bool _callback_enabled;
+ SharedPtr<const NodeModel> _node;
+ ControlPanel* _control_panel;
+ bool _callback_enabled;
bool _position_stored;
int _x;
diff --git a/src/gui/NodeMenu.cpp b/src/gui/NodeMenu.cpp
index 793f1b39..7da1c374 100644
--- a/src/gui/NodeMenu.cpp
+++ b/src/gui/NodeMenu.cpp
@@ -59,21 +59,22 @@ NodeMenu::NodeMenu(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml
}
void
-NodeMenu::init(SharedPtr<NodeModel> node)
+NodeMenu::init(SharedPtr<const NodeModel> node)
{
ObjectMenu::init(node);
_learn_menuitem->signal_activate().connect(sigc::mem_fun(this,
&NodeMenu::on_menu_learn));
- _controls_menuitem->signal_activate().connect(sigc::bind(
- sigc::mem_fun(App::instance().window_factory(), &WindowFactory::present_controls),
- node));
- _popup_gui_menuitem->signal_activate().connect(sigc::mem_fun(signal_popup_gui,
- &sigc::signal<void>::emit));
- _embed_gui_menuitem->signal_toggled().connect(sigc::mem_fun(this,
- &NodeMenu::on_menu_embed_gui));
- _randomize_menuitem->signal_activate().connect(sigc::mem_fun(this,
- &NodeMenu::on_menu_randomize));
+ _controls_menuitem->signal_activate().connect(
+ sigc::bind(sigc::mem_fun(App::instance().window_factory(),
+ &WindowFactory::present_controls),
+ node));
+ _popup_gui_menuitem->signal_activate().connect(
+ sigc::mem_fun(signal_popup_gui, &sigc::signal<void>::emit));
+ _embed_gui_menuitem->signal_toggled().connect(
+ sigc::mem_fun(this, &NodeMenu::on_menu_embed_gui));
+ _randomize_menuitem->signal_activate().connect(
+ sigc::mem_fun(this, &NodeMenu::on_menu_randomize));
const PluginModel* plugin = dynamic_cast<const PluginModel*>(node->plugin());
if (plugin && plugin->type() == PluginModel::LV2 && plugin->has_ui()) {
diff --git a/src/gui/NodeMenu.hpp b/src/gui/NodeMenu.hpp
index 60aee20f..5a10e021 100644
--- a/src/gui/NodeMenu.hpp
+++ b/src/gui/NodeMenu.hpp
@@ -38,7 +38,7 @@ class NodeMenu : public ObjectMenu
public:
NodeMenu(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml);
- void init(SharedPtr<NodeModel> node);
+ void init(SharedPtr<const NodeModel> node);
bool has_control_inputs();
diff --git a/src/gui/NodeModule.cpp b/src/gui/NodeModule.cpp
index 5a6e8b44..e385c8ec 100644
--- a/src/gui/NodeModule.cpp
+++ b/src/gui/NodeModule.cpp
@@ -44,7 +44,8 @@ using namespace Raul;
namespace Ingen {
namespace GUI {
-NodeModule::NodeModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeModel> node)
+NodeModule::NodeModule(boost::shared_ptr<PatchCanvas> canvas,
+ SharedPtr<const NodeModel> node)
: FlowCanvas::Module(canvas, node->path().symbol(), 0, 0, true, canvas->show_port_names())
, _node(node)
, _gui_widget(NULL)
@@ -61,7 +62,7 @@ NodeModule::NodeModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeMode
node->signal_moved().connect(
sigc::mem_fun(this, &NodeModule::rename));
- PluginModel* plugin = dynamic_cast<PluginModel*>(node->plugin());
+ const PluginModel* plugin = dynamic_cast<const PluginModel*>(node->plugin());
if (plugin) {
plugin->signal_changed().connect(
sigc::mem_fun(this, &NodeModule::plugin_changed));
@@ -89,12 +90,12 @@ NodeModule::create_menu()
boost::shared_ptr<NodeModule>
NodeModule::create(boost::shared_ptr<PatchCanvas> canvas,
- SharedPtr<NodeModel> node,
+ SharedPtr<const NodeModel> node,
bool human)
{
boost::shared_ptr<NodeModule> ret;
- SharedPtr<PatchModel> patch = PtrCast<PatchModel>(node);
+ SharedPtr<const PatchModel> patch = PtrCast<const PatchModel>(node);
if (patch)
ret = boost::shared_ptr<NodeModule>(new SubpatchModule(canvas, patch));
else
@@ -252,7 +253,7 @@ NodeModule::rename()
}
void
-NodeModule::add_port(SharedPtr<PortModel> port, bool resize_to_fit)
+NodeModule::add_port(SharedPtr<const PortModel> port, bool resize_to_fit)
{
Module::add_port(Port::create(PtrCast<NodeModule>(shared_from_this()), port,
App::instance().configuration()->name_style() == Configuration::HUMAN));
@@ -266,7 +267,7 @@ NodeModule::add_port(SharedPtr<PortModel> port, bool resize_to_fit)
}
boost::shared_ptr<Port>
-NodeModule::port(boost::shared_ptr<PortModel> model)
+NodeModule::port(boost::shared_ptr<const PortModel> model)
{
for (PortVector::const_iterator p = ports().begin(); p != ports().end(); ++p) {
SharedPtr<Port> port = PtrCast<Port>(*p);
@@ -277,7 +278,7 @@ NodeModule::port(boost::shared_ptr<PortModel> model)
}
void
-NodeModule::remove_port(SharedPtr<PortModel> model)
+NodeModule::remove_port(SharedPtr<const PortModel> model)
{
SharedPtr<Port> p = port(model);
if (p) {
diff --git a/src/gui/NodeModule.hpp b/src/gui/NodeModule.hpp
index 95ded490..78a301c5 100644
--- a/src/gui/NodeModule.hpp
+++ b/src/gui/NodeModule.hpp
@@ -50,22 +50,22 @@ class NodeModule : public FlowCanvas::Module
public:
static boost::shared_ptr<NodeModule> create (
boost::shared_ptr<PatchCanvas> canvas,
- SharedPtr<NodeModel> node,
- bool human_names);
+ SharedPtr<const NodeModel> node,
+ bool human_names);
virtual ~NodeModule();
- boost::shared_ptr<Port> port(boost::shared_ptr<PortModel> model);
+ boost::shared_ptr<Port> port(boost::shared_ptr<const PortModel> model);
- void remove_port(SharedPtr<PortModel> port);
+ void remove_port(SharedPtr<const PortModel> port);
virtual void store_location();
void show_human_names(bool b);
- SharedPtr<NodeModel> node() const { return _node; }
+ SharedPtr<const NodeModel> node() const { return _node; }
protected:
- NodeModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeModel> node);
+ NodeModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<const NodeModel> node);
void on_double_click(GdkEventButton* ev);
@@ -78,7 +78,7 @@ protected:
void rename();
void property_changed(const Raul::URI& predicate, const Raul::Atom& value);
- void add_port(SharedPtr<PortModel> port, bool resize=true);
+ void add_port(SharedPtr<const PortModel> port, bool resize=true);
void value_changed(uint32_t index, const Raul::Atom& value);
void plugin_changed();
@@ -86,11 +86,11 @@ protected:
void create_menu();
- SharedPtr<NodeModel> _node;
- NodeMenu* _menu;
- SharedPtr<PluginUI> _plugin_ui;
- Gtk::Widget* _gui_widget;
- Gtk::Window* _gui_window; ///< iff popped up
+ SharedPtr<const NodeModel> _node;
+ NodeMenu* _menu;
+ SharedPtr<PluginUI> _plugin_ui;
+ Gtk::Widget* _gui_widget;
+ Gtk::Window* _gui_window; ///< iff popped up
};
} // namespace GUI
diff --git a/src/gui/ObjectMenu.cpp b/src/gui/ObjectMenu.cpp
index 82822d57..ac0dda5c 100644
--- a/src/gui/ObjectMenu.cpp
+++ b/src/gui/ObjectMenu.cpp
@@ -31,12 +31,12 @@ namespace GUI {
ObjectMenu::ObjectMenu(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml)
: Gtk::Menu(cobject)
- , _enable_signal(false)
, _polyphonic_menuitem(NULL)
, _disconnect_menuitem(NULL)
, _rename_menuitem(NULL)
, _destroy_menuitem(NULL)
, _properties_menuitem(NULL)
+ , _enable_signal(false)
{
xml->get_widget("object_learn_menuitem", _learn_menuitem);
xml->get_widget("object_unlearn_menuitem", _unlearn_menuitem);
@@ -48,7 +48,7 @@ ObjectMenu::ObjectMenu(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade:
}
void
-ObjectMenu::init(SharedPtr<ObjectModel> object)
+ObjectMenu::init(SharedPtr<const ObjectModel> object)
{
_object = object;
diff --git a/src/gui/ObjectMenu.hpp b/src/gui/ObjectMenu.hpp
index 77f90e53..ffac870d 100644
--- a/src/gui/ObjectMenu.hpp
+++ b/src/gui/ObjectMenu.hpp
@@ -41,7 +41,7 @@ class ObjectMenu : public Gtk::Menu
public:
ObjectMenu(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml);
- void init(SharedPtr<ObjectModel> object);
+ void init(SharedPtr<const ObjectModel> object);
protected:
void on_menu_learn();
@@ -53,15 +53,16 @@ protected:
void property_changed(const Raul::URI& predicate, const Raul::Atom& value);
- bool _enable_signal;
- SharedPtr<ObjectModel> _object;
- Gtk::MenuItem* _learn_menuitem;
- Gtk::MenuItem* _unlearn_menuitem;
- Gtk::CheckMenuItem* _polyphonic_menuitem;
- Gtk::MenuItem* _disconnect_menuitem;
- Gtk::MenuItem* _rename_menuitem;
- Gtk::MenuItem* _destroy_menuitem;
- Gtk::MenuItem* _properties_menuitem;
+ SharedPtr<const ObjectModel> _object;
+ Gtk::MenuItem* _learn_menuitem;
+ Gtk::MenuItem* _unlearn_menuitem;
+ Gtk::CheckMenuItem* _polyphonic_menuitem;
+ Gtk::MenuItem* _disconnect_menuitem;
+ Gtk::MenuItem* _rename_menuitem;
+ Gtk::MenuItem* _destroy_menuitem;
+ Gtk::MenuItem* _properties_menuitem;
+
+ bool _enable_signal;
};
} // namespace GUI
diff --git a/src/gui/PatchCanvas.cpp b/src/gui/PatchCanvas.cpp
index 1215b957..99110eb6 100644
--- a/src/gui/PatchCanvas.cpp
+++ b/src/gui/PatchCanvas.cpp
@@ -58,19 +58,19 @@ using namespace Raul;
namespace Ingen {
namespace GUI {
-PatchCanvas::PatchCanvas(SharedPtr<PatchModel> patch, int width, int height)
+PatchCanvas::PatchCanvas(SharedPtr<const PatchModel> patch, int width, int height)
: Canvas(width, height)
, _patch(patch)
, _auto_position_count(0)
, _last_click_x(0)
, _last_click_y(0)
, _paste_count(0)
- , _human_names(true)
- , _show_port_names(true)
, _menu(NULL)
, _internal_menu(NULL)
, _classless_menu(NULL)
, _plugin_menu(NULL)
+ , _human_names(true)
+ , _show_port_names(true)
{
Glib::RefPtr<Gnome::Glade::Xml> xml = GladeFactory::new_glade_reference();
xml->get_widget("canvas_menu", _menu);
@@ -392,13 +392,13 @@ PatchCanvas::add_plugin(SharedPtr<PluginModel> p)
}
void
-PatchCanvas::add_node(SharedPtr<NodeModel> nm)
+PatchCanvas::add_node(SharedPtr<const NodeModel> nm)
{
boost::shared_ptr<PatchCanvas> shared_this =
boost::dynamic_pointer_cast<PatchCanvas>(shared_from_this());
- SharedPtr<PatchModel> pm = PtrCast<PatchModel>(nm);
- SharedPtr<NodeModule> module;
+ SharedPtr<const PatchModel> pm = PtrCast<const PatchModel>(nm);
+ SharedPtr<NodeModule> module;
if (pm) {
module = SubpatchModule::create(shared_this, pm, _human_names);
} else {
@@ -414,7 +414,7 @@ PatchCanvas::add_node(SharedPtr<NodeModel> nm)
}
void
-PatchCanvas::remove_node(SharedPtr<NodeModel> nm)
+PatchCanvas::remove_node(SharedPtr<const NodeModel> nm)
{
Views::iterator i = _views.find(nm);
@@ -425,7 +425,7 @@ PatchCanvas::remove_node(SharedPtr<NodeModel> nm)
}
void
-PatchCanvas::add_port(SharedPtr<PortModel> pm)
+PatchCanvas::add_port(SharedPtr<const PortModel> pm)
{
boost::shared_ptr<PatchCanvas> shared_this =
boost::dynamic_pointer_cast<PatchCanvas>(shared_from_this());
@@ -437,7 +437,7 @@ PatchCanvas::add_port(SharedPtr<PortModel> pm)
}
void
-PatchCanvas::remove_port(SharedPtr<PortModel> pm)
+PatchCanvas::remove_port(SharedPtr<const PortModel> pm)
{
Views::iterator i = _views.find(pm);
@@ -483,7 +483,7 @@ PatchCanvas::get_port_view(SharedPtr<PortModel> port)
}
void
-PatchCanvas::connection(SharedPtr<ConnectionModel> cm)
+PatchCanvas::connection(SharedPtr<const ConnectionModel> cm)
{
assert(cm);
@@ -491,8 +491,10 @@ PatchCanvas::connection(SharedPtr<ConnectionModel> cm)
const SharedPtr<FlowCanvas::Port> dst = get_port_view(cm->dst_port());
if (src && dst) {
- add_connection(boost::shared_ptr<GUI::Connection>(new GUI::Connection(shared_from_this(),
- cm, src, dst, src->color() + 0x22222200)));
+ add_connection(
+ boost::shared_ptr<GUI::Connection>(
+ new GUI::Connection(shared_from_this(), cm, src, dst,
+ src->color() + 0x22222200)));
} else {
LOG(error) << "Unable to find ports to connect "
<< cm->src_port_path() << " -> " << cm->dst_port_path() << endl;
@@ -500,7 +502,7 @@ PatchCanvas::connection(SharedPtr<ConnectionModel> cm)
}
void
-PatchCanvas::disconnection(SharedPtr<ConnectionModel> cm)
+PatchCanvas::disconnection(SharedPtr<const ConnectionModel> cm)
{
const SharedPtr<FlowCanvas::Port> src = get_port_view(cm->src_port());
const SharedPtr<FlowCanvas::Port> dst = get_port_view(cm->dst_port());
@@ -761,7 +763,8 @@ PatchCanvas::paste()
}
// Successful connections
- SharedPtr<PatchModel> root = PtrCast<PatchModel>(clipboard.object(_patch->path()));
+ SharedPtr<const PatchModel> root = PtrCast<const PatchModel>(
+ clipboard.object(_patch->path()));
assert(root);
for (Patch::Connections::const_iterator i = root->connections().begin();
i != root->connections().end(); ++i) {
diff --git a/src/gui/PatchCanvas.hpp b/src/gui/PatchCanvas.hpp
index 1263b8ac..d5f30b49 100644
--- a/src/gui/PatchCanvas.hpp
+++ b/src/gui/PatchCanvas.hpp
@@ -56,7 +56,7 @@ class NodeModule;
class PatchCanvas : public FlowCanvas::Canvas
{
public:
- PatchCanvas(SharedPtr<PatchModel> patch, int width, int height);
+ PatchCanvas(SharedPtr<const PatchModel> patch, int width, int height);
virtual ~PatchCanvas() {}
@@ -67,12 +67,12 @@ public:
bool show_port_names() const { return _show_port_names; }
void add_plugin(SharedPtr<PluginModel> pm);
- void add_node(SharedPtr<NodeModel> nm);
- void remove_node(SharedPtr<NodeModel> nm);
- void add_port(SharedPtr<PortModel> pm);
- void remove_port(SharedPtr<PortModel> pm);
- void connection(SharedPtr<ConnectionModel> cm);
- void disconnection(SharedPtr<ConnectionModel> cm);
+ void add_node(SharedPtr<const NodeModel> nm);
+ void remove_node(SharedPtr<const NodeModel> nm);
+ void add_port(SharedPtr<const PortModel> pm);
+ void remove_port(SharedPtr<const PortModel> pm);
+ void connection(SharedPtr<const ConnectionModel> cm);
+ void disconnection(SharedPtr<const ConnectionModel> cm);
void get_new_module_location(double& x, double& y);
@@ -131,9 +131,11 @@ private:
void disconnect(boost::shared_ptr<FlowCanvas::Connectable> src,
boost::shared_ptr<FlowCanvas::Connectable> dst);
- SharedPtr<PatchModel> _patch;
+ SharedPtr<const PatchModel> _patch;
- typedef std::map<SharedPtr<ObjectModel>, SharedPtr<FlowCanvas::Module> > Views;
+ typedef std::map<SharedPtr<const ObjectModel>,
+ SharedPtr<FlowCanvas::Module>
+ > Views;
Views _views;
int _auto_position_count;
@@ -153,8 +155,6 @@ private:
ClassMenus _class_menus;
- bool _human_names;
- bool _show_port_names;
Gtk::Menu* _menu;
Gtk::Menu* _internal_menu;
Gtk::Menu* _classless_menu;
@@ -169,6 +169,9 @@ private:
Gtk::MenuItem* _menu_load_patch;
Gtk::MenuItem* _menu_new_patch;
Gtk::CheckMenuItem* _menu_edit;
+
+ bool _human_names;
+ bool _show_port_names;
};
} // namespace GUI
diff --git a/src/gui/PatchPortModule.cpp b/src/gui/PatchPortModule.cpp
index 998e8a97..b491e249 100644
--- a/src/gui/PatchPortModule.cpp
+++ b/src/gui/PatchPortModule.cpp
@@ -38,14 +38,15 @@ using namespace Raul;
namespace Ingen {
namespace GUI {
-PatchPortModule::PatchPortModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<PortModel> model)
+PatchPortModule::PatchPortModule(boost::shared_ptr<PatchCanvas> canvas,
+ SharedPtr<const PortModel> model)
: FlowCanvas::Module(canvas, "", 0, 0, false) // FIXME: coords?
, _model(model)
{
assert(canvas);
assert(model);
- assert(PtrCast<PatchModel>(model->parent()));
+ assert(PtrCast<const PatchModel>(model->parent()));
set_stacked_border(model->polyphonic());
@@ -54,7 +55,9 @@ PatchPortModule::PatchPortModule(boost::shared_ptr<PatchCanvas> canvas, SharedPt
}
boost::shared_ptr<PatchPortModule>
-PatchPortModule::create(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<PortModel> model, bool human)
+PatchPortModule::create(boost::shared_ptr<PatchCanvas> canvas,
+ SharedPtr<const PortModel> model,
+ bool human)
{
boost::shared_ptr<PatchPortModule> ret(new PatchPortModule(canvas, model));
boost::shared_ptr<Port> port(Port::create(ret, model, human, true));
diff --git a/src/gui/PatchPortModule.hpp b/src/gui/PatchPortModule.hpp
index 68bf4505..7cdc3653 100644
--- a/src/gui/PatchPortModule.hpp
+++ b/src/gui/PatchPortModule.hpp
@@ -49,19 +49,21 @@ class PortMenu;
class PatchPortModule : public FlowCanvas::Module
{
public:
- static boost::shared_ptr<PatchPortModule> create(boost::shared_ptr<PatchCanvas> canvas,
- SharedPtr<PortModel> model,
- bool human);
+ static boost::shared_ptr<PatchPortModule> create(
+ boost::shared_ptr<PatchCanvas> canvas,
+ SharedPtr<const PortModel> model,
+ bool human);
virtual void store_location();
void show_human_names(bool b);
void set_name(const std::string& n);
- SharedPtr<PortModel> port() const { return _model; }
+ SharedPtr<const PortModel> port() const { return _model; }
protected:
- PatchPortModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<PortModel> model);
+ PatchPortModule(boost::shared_ptr<PatchCanvas> canvas,
+ SharedPtr<const PortModel> model);
void create_menu();
void set_selected(bool b);
@@ -70,9 +72,9 @@ protected:
void property_changed(const Raul::URI& predicate, const Raul::Atom& value);
- SharedPtr<PortModel> _model;
- SharedPtr<Port> _port;
- PortMenu* _menu;
+ SharedPtr<const PortModel> _model;
+ SharedPtr<Port> _port;
+ PortMenu* _menu;
};
} // namespace GUI
diff --git a/src/gui/PatchView.cpp b/src/gui/PatchView.cpp
index 65c3566a..4df3d4b7 100644
--- a/src/gui/PatchView.cpp
+++ b/src/gui/PatchView.cpp
@@ -36,7 +36,8 @@ using namespace Raul;
namespace Ingen {
namespace GUI {
-PatchView::PatchView(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml)
+PatchView::PatchView(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& xml)
: Gtk::Box(cobject)
, _breadcrumb_container(NULL)
, _enable_signal(true)
@@ -61,7 +62,7 @@ PatchView::PatchView(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::X
}
void
-PatchView::set_patch(SharedPtr<PatchModel> patch)
+PatchView::set_patch(SharedPtr<const PatchModel> patch)
{
assert(!_canvas); // FIXME: remove
@@ -114,7 +115,7 @@ PatchView::set_patch(SharedPtr<PatchModel> patch)
}
SharedPtr<PatchView>
-PatchView::create(SharedPtr<PatchModel> patch)
+PatchView::create(SharedPtr<const PatchModel> patch)
{
const Glib::RefPtr<Gnome::Glade::Xml>& xml = GladeFactory::new_glade_reference("patch_view_box");
PatchView* result = NULL;
@@ -152,7 +153,7 @@ PatchView::canvas_item_entered(Gnome::Canvas::Item* item)
if (m)
signal_object_entered.emit(m->node().get());
- Port* p = dynamic_cast<Port*>(item);
+ const Port* p = dynamic_cast<const Port*>(item);
if (p)
signal_object_entered.emit(p->model().get());
}
@@ -166,7 +167,7 @@ PatchView::canvas_item_left(Gnome::Canvas::Item* item)
return;
}
- Port* p = dynamic_cast<Port*>(item);
+ const Port* p = dynamic_cast<const Port*>(item);
if (p)
signal_object_left.emit(p->model().get());
}
diff --git a/src/gui/PatchView.hpp b/src/gui/PatchView.hpp
index 5995cd42..f637ce5d 100644
--- a/src/gui/PatchView.hpp
+++ b/src/gui/PatchView.hpp
@@ -54,21 +54,22 @@ class SubpatchModule;
class PatchView : public Gtk::Box
{
public:
- PatchView(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml);
+ PatchView(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml);
- SharedPtr<PatchCanvas> canvas() const { return _canvas; }
- SharedPtr<PatchModel> patch() const { return _patch; }
- Gtk::ToolItem* breadcrumb_container() const { return _breadcrumb_container; }
+ SharedPtr<PatchCanvas> canvas() const { return _canvas; }
+ SharedPtr<const PatchModel> patch() const { return _patch; }
+ Gtk::ToolItem* breadcrumb_container() const { return _breadcrumb_container; }
void set_editable(bool editable);
- static SharedPtr<PatchView> create(SharedPtr<PatchModel> patch);
+ static SharedPtr<PatchView> create(SharedPtr<const PatchModel> patch);
- sigc::signal<void, ObjectModel*> signal_object_entered;
- sigc::signal<void, ObjectModel*> signal_object_left;
+ sigc::signal<void, const ObjectModel*> signal_object_entered;
+ sigc::signal<void, const ObjectModel*> signal_object_left;
private:
- void set_patch(SharedPtr<PatchModel> patch);
+ void set_patch(SharedPtr<const PatchModel> patch);
void process_toggled();
void poly_changed();
@@ -84,8 +85,8 @@ private:
void zoom_full();
- SharedPtr<PatchModel> _patch;
- SharedPtr<PatchCanvas> _canvas;
+ SharedPtr<const PatchModel> _patch;
+ SharedPtr<PatchCanvas> _canvas;
Gtk::ScrolledWindow* _canvas_scrolledwindow;
diff --git a/src/gui/PatchWindow.cpp b/src/gui/PatchWindow.cpp
index ab8fcfd9..844cac81 100644
--- a/src/gui/PatchWindow.cpp
+++ b/src/gui/PatchWindow.cpp
@@ -189,7 +189,8 @@ PatchWindow::set_patch_from_path(const Path& path, SharedPtr<PatchView> view)
assert(view->patch()->path() == path);
App::instance().window_factory()->present_patch(view->patch(), this, view);
} else {
- SharedPtr<PatchModel> model = PtrCast<PatchModel>(App::instance().store()->object(path));
+ SharedPtr<const PatchModel> model = PtrCast<const PatchModel>(
+ App::instance().store()->object(path));
if (model)
App::instance().window_factory()->present_patch(model, this);
}
@@ -200,7 +201,8 @@ PatchWindow::set_patch_from_path(const Path& path, SharedPtr<PatchView> view)
* If @a view is NULL, a new view will be created.
*/
void
-PatchWindow::set_patch(SharedPtr<PatchModel> patch, SharedPtr<PatchView> view)
+PatchWindow::set_patch(SharedPtr<const PatchModel> patch,
+ SharedPtr<PatchView> view)
{
if (!patch || patch == _patch)
return;
@@ -271,7 +273,7 @@ PatchWindow::set_patch(SharedPtr<PatchModel> patch, SharedPtr<PatchView> view)
}
void
-PatchWindow::patch_port_added(SharedPtr<PortModel> port)
+PatchWindow::patch_port_added(SharedPtr<const PortModel> port)
{
if (port->is_input() && App::instance().can_control(port.get())) {
_menu_view_control_window->property_sensitive() = true;
@@ -279,7 +281,7 @@ PatchWindow::patch_port_added(SharedPtr<PortModel> port)
}
void
-PatchWindow::patch_port_removed(SharedPtr<PortModel> port)
+PatchWindow::patch_port_removed(SharedPtr<const PortModel> port)
{
if (!(port->is_input() && App::instance().can_control(port.get())))
return;
@@ -296,19 +298,19 @@ PatchWindow::patch_port_removed(SharedPtr<PortModel> port)
}
void
-PatchWindow::show_status(ObjectModel* model)
+PatchWindow::show_status(const ObjectModel* model)
{
std::stringstream msg;
msg << model->path().chop_scheme();
- PortModel* port = 0;
- NodeModel* node = 0;
+ const PortModel* port = 0;
+ const NodeModel* node = 0;
- if ((port = dynamic_cast<PortModel*>(model))) {
+ if ((port = dynamic_cast<const PortModel*>(model))) {
show_port_status(port, port->value());
- } else if ((node = dynamic_cast<NodeModel*>(model))) {
- PluginModel* plugin = dynamic_cast<PluginModel*>(node->plugin());
+ } else if ((node = dynamic_cast<const NodeModel*>(model))) {
+ const PluginModel* plugin = dynamic_cast<const PluginModel*>(node->plugin());
if (plugin)
msg << ((boost::format(" (%1%)") % plugin->human_name()).str());
_status_bar->push(msg.str(), STATUS_CONTEXT_HOVER);
@@ -316,12 +318,12 @@ PatchWindow::show_status(ObjectModel* model)
}
void
-PatchWindow::show_port_status(PortModel* port, const Raul::Atom& value)
+PatchWindow::show_port_status(const PortModel* port, const Raul::Atom& value)
{
std::stringstream msg;
msg << port->path().chop_scheme();
- NodeModel* parent = dynamic_cast<NodeModel*>(port->parent().get());
+ const NodeModel* parent = dynamic_cast<const NodeModel*>(port->parent().get());
if (parent) {
const PluginModel* plugin = dynamic_cast<const PluginModel*>(parent->plugin());
if (plugin) {
@@ -340,13 +342,13 @@ PatchWindow::show_port_status(PortModel* port, const Raul::Atom& value)
}
void
-PatchWindow::object_entered(ObjectModel* model)
+PatchWindow::object_entered(const ObjectModel* model)
{
show_status(model);
}
void
-PatchWindow::object_left(ObjectModel* model)
+PatchWindow::object_left(const ObjectModel* model)
{
_status_bar->pop(STATUS_CONTEXT_HOVER);
}
@@ -462,7 +464,7 @@ PatchWindow::event_save_as()
continue;
}
- _patch->set_property(uris.lv2_symbol, Atom(symbol.c_str()));
+ //_patch->set_property(uris.lv2_symbol, Atom(symbol.c_str()));
bool confirm = true;
if (Glib::file_test(filename, Glib::FILE_TEST_IS_DIR)) {
@@ -495,7 +497,7 @@ more files and/or directories, recursively. Existing files will be overwritten.
if (confirm) {
const Glib::ustring uri = Glib::filename_to_uri(filename);
App::instance().loader()->save_patch(_patch, uri);
- _patch->set_property(uris.ingen_document, Atom(Atom::URI, uri.c_str()));
+ //_patch->set_property(uris.ingen_document, Atom(Atom::URI, uri.c_str()));
_status_bar->push(
(boost::format("Saved %1% to %2%") % _patch->path().chop_scheme()
% filename).str(),
diff --git a/src/gui/PatchWindow.hpp b/src/gui/PatchWindow.hpp
index aef759d4..420359a0 100644
--- a/src/gui/PatchWindow.hpp
+++ b/src/gui/PatchWindow.hpp
@@ -59,13 +59,13 @@ public:
Gtk::TextView* doc_textview() { return _doc_textview; }
void set_patch_from_path(const Raul::Path& path, SharedPtr<PatchView> view);
- void set_patch(SharedPtr<PatchModel> pc, SharedPtr<PatchView> view);
+ void set_patch(SharedPtr<const PatchModel> pc, SharedPtr<PatchView> view);
- SharedPtr<PatchModel> patch() const { return _patch; }
+ SharedPtr<const PatchModel> patch() const { return _patch; }
Gtk::MenuItem* menu_view_control_window() { return _menu_view_control_window; }
- void show_port_status(PortModel* model, const Raul::Atom& value);
+ void show_port_status(const PortModel* model, const Raul::Atom& value);
protected:
void on_show();
@@ -73,11 +73,11 @@ protected:
bool on_event(GdkEvent* event);
private:
- void patch_port_added(SharedPtr<PortModel> port);
- void patch_port_removed(SharedPtr<PortModel> port);
- void show_status(ObjectModel* model);
- void object_entered(ObjectModel* model);
- void object_left(ObjectModel* model);
+ void patch_port_added(SharedPtr<const PortModel> port);
+ void patch_port_removed(SharedPtr<const PortModel> port);
+ void show_status(const ObjectModel* model);
+ void object_entered(const ObjectModel* model);
+ void object_left(const ObjectModel* model);
void editable_changed(bool editable);
void event_import();
@@ -106,8 +106,8 @@ private:
void event_show_engine();
void event_clipboard_changed(GdkEventOwnerChange* ev);
- SharedPtr<PatchModel> _patch;
- SharedPtr<PatchView> _view;
+ SharedPtr<const PatchModel> _patch;
+ SharedPtr<PatchView> _view;
sigc::connection new_port_connection;
sigc::connection removed_port_connection;
diff --git a/src/gui/Port.cpp b/src/gui/Port.cpp
index afb46f4d..0ebc3418 100644
--- a/src/gui/Port.cpp
+++ b/src/gui/Port.cpp
@@ -41,11 +41,10 @@ namespace GUI {
ArtVpathDash* Port::_dash;
SharedPtr<Port>
-Port::create(
- boost::shared_ptr<FlowCanvas::Module> module,
- SharedPtr<PortModel> pm,
- bool human_name,
- bool flip)
+Port::create(boost::shared_ptr<FlowCanvas::Module> module,
+ SharedPtr<const PortModel> pm,
+ bool human_name,
+ bool flip)
{
Glib::ustring label(human_name ? "" : pm->path().symbol());
if (human_name) {
@@ -63,11 +62,10 @@ Port::create(
/** @a flip Make an input port appear as an output port, and vice versa.
*/
-Port::Port(
- boost::shared_ptr<FlowCanvas::Module> module,
- SharedPtr<PortModel> pm,
- const string& name,
- bool flip)
+Port::Port(boost::shared_ptr<FlowCanvas::Module> module,
+ SharedPtr<const PortModel> pm,
+ const string& name,
+ bool flip)
: FlowCanvas::Port(module, name,
flip ? (!pm->is_input()) : pm->is_input(),
App::instance().configuration()->get_port_color(pm.get()))
@@ -111,9 +109,9 @@ Port::~Port()
void
Port::update_metadata()
{
- SharedPtr<PortModel> pm = _port_model.lock();
+ SharedPtr<const PortModel> pm = _port_model.lock();
if (App::instance().can_control(pm.get()) && pm->is_numeric()) {
- boost::shared_ptr<NodeModel> parent = PtrCast<NodeModel>(pm->parent());
+ boost::shared_ptr<const NodeModel> parent = PtrCast<const NodeModel>(pm->parent());
if (parent) {
float min = 0.0f;
float max = 1.0f;
@@ -184,10 +182,10 @@ Port::set_control(float value, bool signal)
app.engine()->set_property(model()->path(),
world->uris()->ingen_value, Atom(value));
PatchWindow* pw = app.window_factory()->patch_window(
- PtrCast<PatchModel>(model()->parent()));
+ PtrCast<const PatchModel>(model()->parent()));
if (!pw)
pw = app.window_factory()->patch_window(
- PtrCast<PatchModel>(model()->parent()->parent()));
+ PtrCast<const PatchModel>(model()->parent()->parent()));
if (pw)
pw->show_port_status(model().get(), value);
}
@@ -225,7 +223,7 @@ ArtVpathDash*
Port::dash()
{
const LV2URIMap& uris = App::instance().uris();
- SharedPtr<PortModel> pm = _port_model.lock();
+ SharedPtr<const PortModel> pm = _port_model.lock();
if (!pm)
return NULL;
@@ -248,11 +246,11 @@ Port::set_selected(bool b)
{
if (b != selected()) {
FlowCanvas::Port::set_selected(b);
- SharedPtr<PortModel> pm = _port_model.lock();
+ SharedPtr<const PortModel> pm = _port_model.lock();
if (pm && b) {
- const App& app = App::instance();
- SharedPtr<NodeModel> node = PtrCast<NodeModel>(pm->parent());
- PatchWindow* win = app.window_factory()->parent_patch_window(node);
+ const App& app = App::instance();
+ SharedPtr<const NodeModel> node = PtrCast<NodeModel>(pm->parent());
+ PatchWindow* win = app.window_factory()->parent_patch_window(node);
if (win) {
const std::string& doc = node->plugin_model()->port_documentation(
pm->index());
diff --git a/src/gui/Port.hpp b/src/gui/Port.hpp
index 116f31d4..a84f9e69 100644
--- a/src/gui/Port.hpp
+++ b/src/gui/Port.hpp
@@ -42,13 +42,13 @@ class Port : public FlowCanvas::Port
public:
static SharedPtr<Port> create(
boost::shared_ptr<FlowCanvas::Module> module,
- SharedPtr<PortModel> pm,
+ SharedPtr<const PortModel> pm,
bool human_name,
bool flip=false);
~Port();
- SharedPtr<PortModel> model() const { return _port_model.lock(); }
+ SharedPtr<const PortModel> model() const { return _port_model.lock(); }
void create_menu();
void update_metadata();
@@ -63,9 +63,9 @@ public:
private:
Port(boost::shared_ptr<FlowCanvas::Module> module,
- SharedPtr<PortModel> pm,
+ SharedPtr<const PortModel> pm,
const std::string& name,
- bool flip=false);
+ bool flip = false);
void property_changed(const Raul::URI& key, const Raul::Atom& value);
@@ -74,9 +74,9 @@ private:
static ArtVpathDash* _dash;
- WeakPtr<PortModel> _port_model;
- bool _pressed;
- bool _flipped;
+ WeakPtr<const PortModel> _port_model;
+ bool _pressed;
+ bool _flipped;
};
} // namespace GUI
diff --git a/src/gui/PortMenu.cpp b/src/gui/PortMenu.cpp
index 079e3c3e..7d1e765b 100644
--- a/src/gui/PortMenu.cpp
+++ b/src/gui/PortMenu.cpp
@@ -29,7 +29,8 @@
namespace Ingen {
namespace GUI {
-PortMenu::PortMenu(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml)
+PortMenu::PortMenu(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& xml)
: ObjectMenu(cobject, xml)
, _patch_port(NULL)
{
@@ -40,7 +41,7 @@ PortMenu::PortMenu(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml
}
void
-PortMenu::init(SharedPtr<PortModel> port, bool patch_port)
+PortMenu::init(SharedPtr<const PortModel> port, bool patch_port)
{
ObjectMenu::init(port);
_patch_port = patch_port;
@@ -97,9 +98,9 @@ PortMenu::on_menu_disconnect()
void
PortMenu::on_menu_set_min()
{
- const LV2URIMap& uris = App::instance().uris();
- SharedPtr<PortModel> model = PtrCast<PortModel>(_object);
- const Raul::Atom& value = model->get_property(uris.ingen_value);
+ const LV2URIMap& uris = App::instance().uris();
+ SharedPtr<const PortModel> model = PtrCast<const PortModel>(_object);
+ const Raul::Atom& value = model->get_property(uris.ingen_value);
if (value.is_valid())
App::instance().engine()->set_property(_object->path(), uris.lv2_minimum, value);
}
@@ -107,9 +108,9 @@ PortMenu::on_menu_set_min()
void
PortMenu::on_menu_set_max()
{
- const LV2URIMap& uris = App::instance().uris();
- SharedPtr<PortModel> model = PtrCast<PortModel>(_object);
- const Raul::Atom& value = model->get_property(uris.ingen_value);
+ const LV2URIMap& uris = App::instance().uris();
+ SharedPtr<const PortModel> model = PtrCast<const PortModel>(_object);
+ const Raul::Atom& value = model->get_property(uris.ingen_value);
if (value.is_valid())
App::instance().engine()->set_property(_object->path(), uris.lv2_maximum, value);
}
@@ -117,9 +118,9 @@ PortMenu::on_menu_set_max()
void
PortMenu::on_menu_reset_range()
{
- const LV2URIMap& uris = App::instance().uris();
- SharedPtr<PortModel> model = PtrCast<PortModel>(_object);
- SharedPtr<NodeModel> parent = PtrCast<NodeModel>(_object->parent());
+ const LV2URIMap& uris = App::instance().uris();
+ SharedPtr<const PortModel> model = PtrCast<const PortModel>(_object);
+ SharedPtr<const NodeModel> parent = PtrCast<const NodeModel>(_object->parent());
float min, max;
parent->default_port_value_range(model, min, max);
diff --git a/src/gui/PortMenu.hpp b/src/gui/PortMenu.hpp
index 21c18560..2eec5e02 100644
--- a/src/gui/PortMenu.hpp
+++ b/src/gui/PortMenu.hpp
@@ -36,9 +36,10 @@ namespace GUI {
class PortMenu : public ObjectMenu
{
public:
- PortMenu(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml);
+ PortMenu(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& xml);
- void init(SharedPtr<PortModel> port, bool patch_port = false);
+ void init(SharedPtr<const PortModel> port, bool patch_port=false);
private:
void on_menu_disconnect();
diff --git a/src/gui/PortPropertiesWindow.cpp b/src/gui/PortPropertiesWindow.cpp
index 3258c480..2d317456 100644
--- a/src/gui/PortPropertiesWindow.cpp
+++ b/src/gui/PortPropertiesWindow.cpp
@@ -32,7 +32,8 @@ namespace Ingen {
using namespace Client;
namespace GUI {
-PortPropertiesWindow::PortPropertiesWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml)
+PortPropertiesWindow::PortPropertiesWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& xml)
: Window(cobject)
, _initial_min(0.0f)
, _initial_max(1.0f)
@@ -53,7 +54,7 @@ PortPropertiesWindow::PortPropertiesWindow(BaseObjectType* cobject, const Glib::
* This function MUST be called before using this object in any way.
*/
void
-PortPropertiesWindow::present(SharedPtr<PortModel> pm)
+PortPropertiesWindow::present(SharedPtr<const PortModel> pm)
{
assert(pm);
diff --git a/src/gui/PortPropertiesWindow.hpp b/src/gui/PortPropertiesWindow.hpp
index 05276434..3358e1fb 100644
--- a/src/gui/PortPropertiesWindow.hpp
+++ b/src/gui/PortPropertiesWindow.hpp
@@ -36,9 +36,10 @@ namespace GUI {
class PortPropertiesWindow : public Window
{
public:
- PortPropertiesWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade);
+ PortPropertiesWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& refGlade);
- void present(SharedPtr<Client::PortModel> port_model);
+ void present(SharedPtr<const Client::PortModel> port_model);
private:
void property_changed(const Raul::URI& key, const Raul::Atom& value);
@@ -51,12 +52,12 @@ private:
float _initial_min;
float _initial_max;
- SharedPtr<Client::PortModel> _port_model;
- Gtk::SpinButton* _min_spinner;
- Gtk::SpinButton* _max_spinner;
- Gtk::Button* _cancel_button;
- Gtk::Button* _ok_button;
- std::list<sigc::connection> _connections;
+ SharedPtr<const Client::PortModel> _port_model;
+ Gtk::SpinButton* _min_spinner;
+ Gtk::SpinButton* _max_spinner;
+ Gtk::Button* _cancel_button;
+ Gtk::Button* _ok_button;
+ std::list<sigc::connection> _connections;
};
} // namespace GUI
diff --git a/src/gui/PropertiesWindow.cpp b/src/gui/PropertiesWindow.cpp
index 491a255e..26436022 100644
--- a/src/gui/PropertiesWindow.cpp
+++ b/src/gui/PropertiesWindow.cpp
@@ -32,7 +32,8 @@ using namespace Raul;
namespace Ingen {
namespace GUI {
-PropertiesWindow::PropertiesWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml)
+PropertiesWindow::PropertiesWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml)
: Window(cobject)
{
glade_xml->get_widget("properties_vbox", _vbox);
@@ -74,11 +75,18 @@ PropertiesWindow::reset()
_model.reset();
}
+void
+PropertiesWindow::present(SharedPtr<const ObjectModel> model)
+{
+ set_object(model);
+ Gtk::Window::present();
+}
+
/** Set the node this window is associated with.
* This function MUST be called before using this object in any way.
*/
void
-PropertiesWindow::set_object(SharedPtr<ObjectModel> model)
+PropertiesWindow::set_object(SharedPtr<const ObjectModel> model)
{
reset();
_model = model;
diff --git a/src/gui/PropertiesWindow.hpp b/src/gui/PropertiesWindow.hpp
index 17968c89..cdde7495 100644
--- a/src/gui/PropertiesWindow.hpp
+++ b/src/gui/PropertiesWindow.hpp
@@ -38,10 +38,11 @@ namespace GUI {
class PropertiesWindow : public Window
{
public:
- PropertiesWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade);
+ PropertiesWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& refGlade);
- void present(SharedPtr<ObjectModel> model) { set_object(model); Gtk::Window::present(); }
- void set_object(SharedPtr<ObjectModel> model);
+ void present(SharedPtr<const ObjectModel> model);
+ void set_object(SharedPtr<const ObjectModel> model);
private:
/** Record of a property (row in the table) */
@@ -83,14 +84,14 @@ private:
TypeColumns _type_cols;
Glib::RefPtr<Gtk::ListStore> _type_choices;
- SharedPtr<ObjectModel> _model;
- sigc::connection _property_connection;
- Gtk::VBox* _vbox;
- Gtk::ScrolledWindow* _scrolledwindow;
- Gtk::Table* _table;
- Gtk::Button* _cancel_button;
- Gtk::Button* _apply_button;
- Gtk::Button* _ok_button;
+ SharedPtr<const ObjectModel> _model;
+ sigc::connection _property_connection;
+ Gtk::VBox* _vbox;
+ Gtk::ScrolledWindow* _scrolledwindow;
+ Gtk::Table* _table;
+ Gtk::Button* _cancel_button;
+ Gtk::Button* _apply_button;
+ Gtk::Button* _ok_button;
};
} // namespace GUI
diff --git a/src/gui/RenameWindow.cpp b/src/gui/RenameWindow.cpp
index 7b8844f1..0ca8b7d0 100644
--- a/src/gui/RenameWindow.cpp
+++ b/src/gui/RenameWindow.cpp
@@ -30,7 +30,8 @@ using namespace Raul;
namespace Ingen {
namespace GUI {
-RenameWindow::RenameWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml)
+RenameWindow::RenameWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml)
: Window(cobject)
{
glade_xml->get_widget("rename_symbol_entry", _symbol_entry);
@@ -39,10 +40,14 @@ RenameWindow::RenameWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Gl
glade_xml->get_widget("rename_cancel_button", _cancel_button);
glade_xml->get_widget("rename_ok_button", _ok_button);
- _symbol_entry->signal_changed().connect(sigc::mem_fun(this, &RenameWindow::values_changed));
- _label_entry->signal_changed().connect(sigc::mem_fun(this, &RenameWindow::values_changed));
- _cancel_button->signal_clicked().connect(sigc::mem_fun(this, &RenameWindow::cancel_clicked));
- _ok_button->signal_clicked().connect(sigc::mem_fun(this, &RenameWindow::ok_clicked));
+ _symbol_entry->signal_changed().connect(
+ sigc::mem_fun(this, &RenameWindow::values_changed));
+ _label_entry->signal_changed().connect(
+ sigc::mem_fun(this, &RenameWindow::values_changed));
+ _cancel_button->signal_clicked().connect(
+ sigc::mem_fun(this, &RenameWindow::cancel_clicked));
+ _ok_button->signal_clicked().connect(
+ sigc::mem_fun(this, &RenameWindow::ok_clicked));
_ok_button->property_sensitive() = false;
}
@@ -51,7 +56,7 @@ RenameWindow::RenameWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Gl
* This function MUST be called before using this object in any way.
*/
void
-RenameWindow::set_object(SharedPtr<ObjectModel> object)
+RenameWindow::set_object(SharedPtr<const ObjectModel> object)
{
_object = object;
_symbol_entry->set_text(object->path().symbol());
@@ -61,7 +66,7 @@ RenameWindow::set_object(SharedPtr<ObjectModel> object)
}
void
-RenameWindow::present(SharedPtr<ObjectModel> object)
+RenameWindow::present(SharedPtr<const ObjectModel> object)
{
set_object(object);
_symbol_entry->grab_focus();
@@ -79,7 +84,7 @@ RenameWindow::values_changed()
} else if (!Path::is_valid_name(symbol)) {
_message_label->set_text("Symbol contains invalid characters");
_ok_button->property_sensitive() = false;
- } else if (App::instance().store()->object(_object->parent()->path().base() + symbol)) {
+ } else if (App::instance().store()->object(_object->parent()->path().child(symbol))) {
_message_label->set_text("An object already exists with that path");
_ok_button->property_sensitive() = false;
} else if (label.empty()) {
diff --git a/src/gui/RenameWindow.hpp b/src/gui/RenameWindow.hpp
index 756af189..ede09f4b 100644
--- a/src/gui/RenameWindow.hpp
+++ b/src/gui/RenameWindow.hpp
@@ -36,24 +36,25 @@ namespace GUI {
class RenameWindow : public Window
{
public:
- RenameWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade);
+ RenameWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gnome::Glade::Xml>& refGlade);
- void present(SharedPtr<ObjectModel> object);
+ void present(SharedPtr<const ObjectModel> object);
private:
- void set_object(SharedPtr<ObjectModel> object);
+ void set_object(SharedPtr<const ObjectModel> object);
void values_changed();
void cancel_clicked();
void ok_clicked();
- SharedPtr<ObjectModel> _object;
+ SharedPtr<const ObjectModel> _object;
- Gtk::Entry* _symbol_entry;
- Gtk::Entry* _label_entry;
- Gtk::Label* _message_label;
- Gtk::Button* _cancel_button;
- Gtk::Button* _ok_button;
+ Gtk::Entry* _symbol_entry;
+ Gtk::Entry* _label_entry;
+ Gtk::Label* _message_label;
+ Gtk::Button* _cancel_button;
+ Gtk::Button* _ok_button;
};
} // namespace GUI
diff --git a/src/gui/SubpatchModule.cpp b/src/gui/SubpatchModule.cpp
index e2347bdd..b0f43fa7 100644
--- a/src/gui/SubpatchModule.cpp
+++ b/src/gui/SubpatchModule.cpp
@@ -30,7 +30,8 @@
namespace Ingen {
namespace GUI {
-SubpatchModule::SubpatchModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<PatchModel> patch)
+SubpatchModule::SubpatchModule(boost::shared_ptr<PatchCanvas> canvas,
+ SharedPtr<const PatchModel> patch)
: NodeModule(canvas, patch)
, _patch(patch)
{
diff --git a/src/gui/SubpatchModule.hpp b/src/gui/SubpatchModule.hpp
index e5fb87c9..7eba97a2 100644
--- a/src/gui/SubpatchModule.hpp
+++ b/src/gui/SubpatchModule.hpp
@@ -46,7 +46,8 @@ class NodeControlWindow;
class SubpatchModule : public NodeModule
{
public:
- SubpatchModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<PatchModel> controller);
+ SubpatchModule(boost::shared_ptr<PatchCanvas> canvas,
+ SharedPtr<const PatchModel> controller);
virtual ~SubpatchModule() {}
void on_double_click(GdkEventButton* ev);
@@ -54,10 +55,10 @@ public:
void browse_to_patch();
void menu_remove();
- SharedPtr<PatchModel> patch() { return _patch; }
+ SharedPtr<const PatchModel> patch() const { return _patch; }
protected:
- SharedPtr<PatchModel> _patch;
+ SharedPtr<const PatchModel> _patch;
};
} // namespace GUI
diff --git a/src/gui/ThreadedLoader.cpp b/src/gui/ThreadedLoader.cpp
index 7a7a3ede..31f77893 100644
--- a/src/gui/ThreadedLoader.cpp
+++ b/src/gui/ThreadedLoader.cpp
@@ -101,7 +101,8 @@ ThreadedLoader::load_patch(bool merge,
}
void
-ThreadedLoader::save_patch(SharedPtr<PatchModel> model, const string& filename)
+ThreadedLoader::save_patch(SharedPtr<const PatchModel> model,
+ const string& filename)
{
_mutex.lock();
@@ -115,7 +116,8 @@ ThreadedLoader::save_patch(SharedPtr<PatchModel> model, const string& filename)
}
void
-ThreadedLoader::save_patch_event(SharedPtr<PatchModel> model, const string& filename)
+ThreadedLoader::save_patch_event(SharedPtr<const PatchModel> model,
+ const string& filename)
{
if (App::instance().serialiser()) {
if (filename.find(INGEN_BUNDLE_EXT) != string::npos)
diff --git a/src/gui/ThreadedLoader.hpp b/src/gui/ThreadedLoader.hpp
index c35da81f..41f56340 100644
--- a/src/gui/ThreadedLoader.hpp
+++ b/src/gui/ThreadedLoader.hpp
@@ -62,13 +62,12 @@ public:
optional<Raul::Symbol> engine_symbol,
optional<GraphObject::Properties> engine_data);
- void save_patch(SharedPtr<PatchModel> model, const string& filename);
+ void save_patch(SharedPtr<const PatchModel> model, const string& filename);
SharedPtr<Parser> parser();
private:
-
- void save_patch_event(SharedPtr<PatchModel> model, const string& filename);
+ void save_patch_event(SharedPtr<const PatchModel> model, const string& filename);
/** Returns nothing and takes no parameters (because they have all been bound) */
typedef sigc::slot<void> Closure;
diff --git a/src/gui/WindowFactory.cpp b/src/gui/WindowFactory.cpp
index c0f53ee7..56f4dd74 100644
--- a/src/gui/WindowFactory.cpp
+++ b/src/gui/WindowFactory.cpp
@@ -63,10 +63,12 @@ WindowFactory::WindowFactory()
WindowFactory::~WindowFactory()
{
- for (PatchWindowMap::iterator i = _patch_windows.begin(); i != _patch_windows.end(); ++i)
+ for (PatchWindowMap::iterator i = _patch_windows.begin();
+ i != _patch_windows.end(); ++i)
delete i->second;
- for (ControlWindowMap::iterator i = _control_windows.begin(); i != _control_windows.end(); ++i)
+ for (ControlWindowMap::iterator i = _control_windows.begin();
+ i != _control_windows.end(); ++i)
delete i->second;
}
@@ -74,12 +76,14 @@ WindowFactory::~WindowFactory()
void
WindowFactory::clear()
{
- for (PatchWindowMap::iterator i = _patch_windows.begin(); i != _patch_windows.end(); ++i)
+ for (PatchWindowMap::iterator i = _patch_windows.begin();
+ i != _patch_windows.end(); ++i)
delete i->second;
_patch_windows.clear();
- for (ControlWindowMap::iterator i = _control_windows.begin(); i != _control_windows.end(); ++i)
+ for (ControlWindowMap::iterator i = _control_windows.begin();
+ i != _control_windows.end(); ++i)
delete i->second;
_control_windows.clear();
@@ -91,7 +95,8 @@ size_t
WindowFactory::num_open_patch_windows()
{
size_t ret = 0;
- for (PatchWindowMap::iterator i = _patch_windows.begin(); i != _patch_windows.end(); ++i)
+ for (PatchWindowMap::iterator i = _patch_windows.begin();
+ i != _patch_windows.end(); ++i)
if (i->second->is_visible())
++ret;
@@ -99,7 +104,7 @@ WindowFactory::num_open_patch_windows()
}
PatchWindow*
-WindowFactory::patch_window(SharedPtr<PatchModel> patch)
+WindowFactory::patch_window(SharedPtr<const PatchModel> patch)
{
if (!patch)
return NULL;
@@ -110,7 +115,7 @@ WindowFactory::patch_window(SharedPtr<PatchModel> patch)
}
PatchWindow*
-WindowFactory::parent_patch_window(SharedPtr<NodeModel> node)
+WindowFactory::parent_patch_window(SharedPtr<const NodeModel> node)
{
if (!node)
return NULL;
@@ -119,7 +124,7 @@ WindowFactory::parent_patch_window(SharedPtr<NodeModel> node)
}
NodeControlWindow*
-WindowFactory::control_window(SharedPtr<NodeModel> node)
+WindowFactory::control_window(SharedPtr<const NodeModel> node)
{
ControlWindowMap::iterator w = _control_windows.find(node->path());
@@ -129,11 +134,13 @@ WindowFactory::control_window(SharedPtr<NodeModel> node)
/** Present a PatchWindow for a Patch.
*
* If @a preferred is not NULL, it will be set to display @a patch if the patch
- * does not already have a visible window, otherwise that window will be presented and
- * @a preferred left unmodified.
+ * does not already have a visible window, otherwise that window will be
+ * presented and @a preferred left unmodified.
*/
void
-WindowFactory::present_patch(SharedPtr<PatchModel> patch, PatchWindow* preferred, SharedPtr<PatchView> view)
+WindowFactory::present_patch(SharedPtr<const PatchModel> patch,
+ PatchWindow* preferred,
+ SharedPtr<PatchView> view)
{
assert( !view || view->patch() == patch);
@@ -157,7 +164,8 @@ WindowFactory::present_patch(SharedPtr<PatchModel> patch, PatchWindow* preferred
}
PatchWindow*
-WindowFactory::new_patch_window(SharedPtr<PatchModel> patch, SharedPtr<PatchView> view)
+WindowFactory::new_patch_window(SharedPtr<const PatchModel> patch,
+ SharedPtr<PatchView> view)
{
assert( !view || view->patch() == patch);
@@ -193,7 +201,7 @@ WindowFactory::remove_patch_window(PatchWindow* win, GdkEventAny* ignored)
}
void
-WindowFactory::present_controls(SharedPtr<NodeModel> node)
+WindowFactory::present_controls(SharedPtr<const NodeModel> node)
{
NodeControlWindow* win = control_window(node);
@@ -206,7 +214,7 @@ WindowFactory::present_controls(SharedPtr<NodeModel> node)
}
NodeControlWindow*
-WindowFactory::new_control_window(SharedPtr<NodeModel> node)
+WindowFactory::new_control_window(SharedPtr<const NodeModel> node)
{
uint32_t poly = 1;
if (node->polyphonic() && node->parent())
@@ -236,7 +244,8 @@ WindowFactory::remove_control_window(NodeControlWindow* win, GdkEventAny* ignore
}
void
-WindowFactory::present_load_plugin(SharedPtr<PatchModel> patch, GraphObject::Properties data)
+WindowFactory::present_load_plugin(SharedPtr<const PatchModel> patch,
+ GraphObject::Properties data)
{
PatchWindowMap::iterator w = _patch_windows.find(patch->path());
@@ -248,12 +257,14 @@ WindowFactory::present_load_plugin(SharedPtr<PatchModel> patch, GraphObject::Pro
int width, height;
w->second->get_size(width, height);
_load_plugin_win->set_default_size(width - width / 8, height / 2);
- _load_plugin_win->set_title(string("Load Plugin - ") + patch->path().chop_scheme() + " - Ingen");
+ _load_plugin_win->set_title(
+ string("Load Plugin - ") + patch->path().chop_scheme() + " - Ingen");
_load_plugin_win->present(patch, data);
}
void
-WindowFactory::present_load_patch(SharedPtr<PatchModel> patch, GraphObject::Properties data)
+WindowFactory::present_load_patch(SharedPtr<const PatchModel> patch,
+ GraphObject::Properties data)
{
PatchWindowMap::iterator w = _patch_windows.find(patch->path());
@@ -264,7 +275,8 @@ WindowFactory::present_load_patch(SharedPtr<PatchModel> patch, GraphObject::Prop
}
void
-WindowFactory::present_load_subpatch(SharedPtr<PatchModel> patch, GraphObject::Properties data)
+WindowFactory::present_load_subpatch(SharedPtr<const PatchModel> patch,
+ GraphObject::Properties data)
{
PatchWindowMap::iterator w = _patch_windows.find(patch->path());
@@ -275,7 +287,8 @@ WindowFactory::present_load_subpatch(SharedPtr<PatchModel> patch, GraphObject::P
}
void
-WindowFactory::present_load_remote_patch(SharedPtr<PatchModel> patch, GraphObject::Properties data)
+WindowFactory::present_load_remote_patch(SharedPtr<const PatchModel> patch,
+ GraphObject::Properties data)
{
PatchWindowMap::iterator w = _patch_windows.find(patch->path());
@@ -286,7 +299,7 @@ WindowFactory::present_load_remote_patch(SharedPtr<PatchModel> patch, GraphObjec
}
void
-WindowFactory::present_upload_patch(SharedPtr<PatchModel> patch)
+WindowFactory::present_upload_patch(SharedPtr<const PatchModel> patch)
{
#ifdef HAVE_CURL
PatchWindowMap::iterator w = _patch_windows.find(patch->path());
@@ -299,7 +312,8 @@ WindowFactory::present_upload_patch(SharedPtr<PatchModel> patch)
}
void
-WindowFactory::present_new_subpatch(SharedPtr<PatchModel> patch, GraphObject::Properties data)
+WindowFactory::present_new_subpatch(SharedPtr<const PatchModel> patch,
+ GraphObject::Properties data)
{
PatchWindowMap::iterator w = _patch_windows.find(patch->path());
@@ -310,7 +324,7 @@ WindowFactory::present_new_subpatch(SharedPtr<PatchModel> patch, GraphObject::Pr
}
void
-WindowFactory::present_rename(SharedPtr<ObjectModel> object)
+WindowFactory::present_rename(SharedPtr<const ObjectModel> object)
{
PatchWindowMap::iterator w = _patch_windows.find(object->path());
if (w == _patch_windows.end())
@@ -323,7 +337,7 @@ WindowFactory::present_rename(SharedPtr<ObjectModel> object)
}
void
-WindowFactory::present_properties(SharedPtr<ObjectModel> object)
+WindowFactory::present_properties(SharedPtr<const ObjectModel> object)
{
PatchWindowMap::iterator w = _patch_windows.find(object->path());
if (w == _patch_windows.end())
diff --git a/src/gui/WindowFactory.hpp b/src/gui/WindowFactory.hpp
index d07c7dba..46445ffb 100644
--- a/src/gui/WindowFactory.hpp
+++ b/src/gui/WindowFactory.hpp
@@ -60,26 +60,26 @@ public:
size_t num_open_patch_windows();
- PatchWindow* patch_window(SharedPtr<PatchModel> patch);
- PatchWindow* parent_patch_window(SharedPtr<NodeModel> node);
- NodeControlWindow* control_window(SharedPtr<NodeModel> node);
+ PatchWindow* patch_window(SharedPtr<const PatchModel> patch);
+ PatchWindow* parent_patch_window(SharedPtr<const NodeModel> node);
+ NodeControlWindow* control_window(SharedPtr<const NodeModel> node);
- void present_patch(SharedPtr<PatchModel> model,
+ void present_patch(SharedPtr<const PatchModel> model,
PatchWindow* preferred = NULL,
SharedPtr<PatchView> view = SharedPtr<PatchView>());
- void present_controls(SharedPtr<NodeModel> node);
+ void present_controls(SharedPtr<const NodeModel> node);
typedef GraphObject::Properties Properties;
- void present_load_plugin(SharedPtr<PatchModel> patch, Properties data=Properties());
- void present_load_patch(SharedPtr<PatchModel> patch, Properties data=Properties());
- void present_load_subpatch(SharedPtr<PatchModel> patch, Properties data=Properties());
- void present_load_remote_patch(SharedPtr<PatchModel> patch, Properties data=Properties());
- void present_upload_patch(SharedPtr<PatchModel> patch);
- void present_new_subpatch(SharedPtr<PatchModel> patch, Properties data=Properties());
- void present_rename(SharedPtr<ObjectModel> object);
- void present_properties(SharedPtr<ObjectModel> object);
+ void present_load_plugin(SharedPtr<const PatchModel> patch, Properties data=Properties());
+ void present_load_patch(SharedPtr<const PatchModel> patch, Properties data=Properties());
+ void present_load_subpatch(SharedPtr<const PatchModel> patch, Properties data=Properties());
+ void present_load_remote_patch(SharedPtr<const PatchModel> patch, Properties data=Properties());
+ void present_upload_patch(SharedPtr<const PatchModel> patch);
+ void present_new_subpatch(SharedPtr<const PatchModel> patch, Properties data=Properties());
+ void present_rename(SharedPtr<const ObjectModel> object);
+ void present_properties(SharedPtr<const ObjectModel> object);
bool remove_patch_window(PatchWindow* win, GdkEventAny* ignored = NULL);
@@ -89,10 +89,12 @@ private:
typedef std::map<Raul::Path, PatchWindow*> PatchWindowMap;
typedef std::map<Raul::Path, NodeControlWindow*> ControlWindowMap;
- PatchWindow* new_patch_window(SharedPtr<PatchModel> patch, SharedPtr<PatchView> view);
+ PatchWindow* new_patch_window(SharedPtr<const PatchModel> patch,
+ SharedPtr<PatchView> view);
- NodeControlWindow* new_control_window(SharedPtr<NodeModel> node);
- bool remove_control_window(NodeControlWindow* win, GdkEventAny* ignored);
+ NodeControlWindow* new_control_window(SharedPtr<const NodeModel> node);
+ bool remove_control_window(NodeControlWindow* win,
+ GdkEventAny* ignored);
PatchWindowMap _patch_windows;
ControlWindowMap _control_windows;
diff --git a/src/serialisation/Serialiser.cpp b/src/serialisation/Serialiser.cpp
index 04b4c692..b7a16d4b 100644
--- a/src/serialisation/Serialiser.cpp
+++ b/src/serialisation/Serialiser.cpp
@@ -76,8 +76,8 @@ Serialiser::Serialiser(Shared::World& world, SharedPtr<Shared::Store> store)
}
void
-Serialiser::to_file(SharedPtr<GraphObject> object,
- const std::string& filename)
+Serialiser::to_file(SharedPtr<const GraphObject> object,
+ const std::string& filename)
{
_root_path = object->path();
start_to_filename(filename);
@@ -95,9 +95,9 @@ uri_to_symbol(const std::string& uri)
}
void
-Serialiser::write_manifest(const std::string& bundle_path,
- SharedPtr<Patch> patch,
- const std::string& patch_symbol)
+Serialiser::write_manifest(const std::string& bundle_path,
+ SharedPtr<const Patch> patch,
+ const std::string& patch_symbol)
{
const string manifest_path(Glib::build_filename(bundle_path, "manifest.ttl"));
const string binary_path(Glib::Module::build_path("", "ingen_lv2"));
@@ -146,8 +146,8 @@ normal_bundle_uri(const std::string& uri)
}
void
-Serialiser::write_bundle(SharedPtr<Patch> patch,
- const std::string& uri)
+Serialiser::write_bundle(SharedPtr<const Patch> patch,
+ const std::string& uri)
{
Glib::ustring path = "";
try {
@@ -181,7 +181,7 @@ Serialiser::write_bundle(SharedPtr<Patch> patch,
}
string
-Serialiser::to_string(SharedPtr<GraphObject> object,
+Serialiser::to_string(SharedPtr<const GraphObject> object,
const string& base_uri,
const GraphObject::Properties& extra_rdf)
{
@@ -272,26 +272,26 @@ Serialiser::path_rdf_node(const Path& path)
}
void
-Serialiser::serialise(SharedPtr<GraphObject> object) throw (std::logic_error)
+Serialiser::serialise(SharedPtr<const GraphObject> object) throw (std::logic_error)
{
if (!_model)
throw std::logic_error("serialise called without serialization in progress");
- SharedPtr<Patch> patch = PtrCast<Patch>(object);
+ SharedPtr<const Patch> patch = PtrCast<const Patch>(object);
if (patch) {
const Sord::URI patch_id(_model->world(), "");
serialise_patch(patch, patch_id);
return;
}
- SharedPtr<Node> node = PtrCast<Node>(object);
+ SharedPtr<const Node> node = PtrCast<const Node>(object);
if (node) {
const Sord::URI plugin_id(_model->world(), node->plugin()->uri().str());
serialise_node(node, plugin_id, path_rdf_node(node->path()));
return;
}
- SharedPtr<Port> port = PtrCast<Port>(object);
+ SharedPtr<const Port> port = PtrCast<const Port>(object);
if (port) {
serialise_port(port.get(), Resource::DEFAULT, path_rdf_node(port->path()));
return;
@@ -302,7 +302,7 @@ Serialiser::serialise(SharedPtr<GraphObject> object) throw (std::logic_error)
}
void
-Serialiser::serialise_patch(SharedPtr<Patch> patch, const Sord::Node& patch_id)
+Serialiser::serialise_patch(SharedPtr<const Patch> patch, const Sord::Node& patch_id)
{
assert(_model);
Sord::World& world = _model->world();
@@ -412,9 +412,9 @@ Serialiser::serialise_patch(SharedPtr<Patch> patch, const Sord::Node& patch_id)
}
void
-Serialiser::serialise_node(SharedPtr<Node> node,
- const Sord::Node& class_id,
- const Sord::Node& node_id)
+Serialiser::serialise_node(SharedPtr<const Node> node,
+ const Sord::Node& class_id,
+ const Sord::Node& node_id)
{
_model->add_statement(node_id,
Sord::Curie(_model->world(), "rdf:type"),
@@ -491,7 +491,7 @@ Serialiser::serialise_port(const Port* port,
void
Serialiser::serialise_connection(const Sord::Node& parent,
- SharedPtr<Connection> connection) throw (std::logic_error)
+ SharedPtr<const Connection> connection) throw (std::logic_error)
{
Sord::World& world = _model->world();
diff --git a/src/serialisation/Serialiser.hpp b/src/serialisation/Serialiser.hpp
index fc26c387..fdc7b423 100644
--- a/src/serialisation/Serialiser.hpp
+++ b/src/serialisation/Serialiser.hpp
@@ -56,23 +56,23 @@ public:
typedef GraphObject::Properties Properties;
- void to_file(SharedPtr<GraphObject> object,
- const std::string& filename);
+ void to_file(SharedPtr<const GraphObject> object,
+ const std::string& filename);
- void write_bundle(SharedPtr<Patch> patch,
- const std::string& uri);
+ void write_bundle(SharedPtr<const Patch> patch,
+ const std::string& uri);
- std::string to_string(SharedPtr<GraphObject> object,
- const std::string& base_uri,
- const Properties& extra_rdf);
+ std::string to_string(SharedPtr<const GraphObject> object,
+ const std::string& base_uri,
+ const Properties& extra_rdf);
void start_to_string(const Raul::Path& root,
const std::string& base_uri);
- void serialise(SharedPtr<GraphObject> object) throw (std::logic_error);
+ void serialise(SharedPtr<const GraphObject> object) throw (std::logic_error);
- void serialise_connection(const Sord::Node& parent,
- SharedPtr<Connection> c) throw (std::logic_error);
+ void serialise_connection(const Sord::Node& parent,
+ SharedPtr<const Connection> c) throw (std::logic_error);
std::string finish();
@@ -81,12 +81,12 @@ private:
void start_to_filename(const std::string& filename);
- void serialise_patch(SharedPtr<Patch> p,
- const Sord::Node& id);
+ void serialise_patch(SharedPtr<const Patch> p,
+ const Sord::Node& id);
- void serialise_node(SharedPtr<Node> n,
- const Sord::Node& class_id,
- const Sord::Node& id);
+ void serialise_node(SharedPtr<const Node> n,
+ const Sord::Node& class_id,
+ const Sord::Node& id);
void serialise_port(const Port* p,
Resource::Graph context,
@@ -98,9 +98,9 @@ private:
Sord::Node path_rdf_node(const Raul::Path& path);
- void write_manifest(const std::string& bundle_path,
- SharedPtr<Patch> patch,
- const std::string& patch_symbol);
+ void write_manifest(const std::string& bundle_path,
+ SharedPtr<const Patch> patch,
+ const std::string& patch_symbol);
Raul::Path _root_path;
SharedPtr<Shared::Store> _store;
diff --git a/src/server/LV2RequestRunFeature.hpp b/src/server/LV2RequestRunFeature.hpp
index 88010bb9..e1af0aca 100644
--- a/src/server/LV2RequestRunFeature.hpp
+++ b/src/server/LV2RequestRunFeature.hpp
@@ -61,7 +61,7 @@ struct RequestRunFeature : public Ingen::Shared::LV2Features::Feature {
}
SharedPtr<LV2_Feature> feature(Shared::World* world, Node* n) {
- NodeImpl* node = dynamic_cast<NodeImpl*>(n);
+ const NodeImpl* node = dynamic_cast<const NodeImpl*>(n);
if (!node)
return SharedPtr<LV2_Feature>();
diff --git a/src/shared/Store.cpp b/src/shared/Store.cpp
index 9d5639b1..62c7f824 100644
--- a/src/shared/Store.cpp
+++ b/src/shared/Store.cpp
@@ -48,7 +48,7 @@ Store::add(GraphObject* o)
}
Store::const_iterator
-Store::children_begin(SharedPtr<GraphObject> o) const
+Store::children_begin(SharedPtr<const GraphObject> o) const
{
const_iterator parent = find(o->path());
assert(parent != end());
@@ -57,7 +57,7 @@ Store::children_begin(SharedPtr<GraphObject> o) const
}
Store::const_iterator
-Store::children_end(SharedPtr<GraphObject> o) const
+Store::children_end(SharedPtr<const GraphObject> o) const
{
const_iterator parent = find(o->path());
assert(parent != end());
@@ -65,7 +65,8 @@ Store::children_end(SharedPtr<GraphObject> o) const
}
SharedPtr<GraphObject>
-Store::find_child(SharedPtr<GraphObject> parent, const string& child_name) const
+Store::find_child(SharedPtr<const GraphObject> parent,
+ const string& child_name) const
{
const_iterator pi = find(parent->path());
assert(pi != end());
diff --git a/src/shared/Store.hpp b/src/shared/Store.hpp
index 53f4ecf2..997305a1 100644
--- a/src/shared/Store.hpp
+++ b/src/shared/Store.hpp
@@ -34,11 +34,11 @@ public:
typedef Raul::Table< Raul::Path, SharedPtr<GraphObject> > Objects;
- const_iterator children_begin(SharedPtr<GraphObject> o) const;
- const_iterator children_end(SharedPtr<GraphObject> o) const;
+ const_iterator children_begin(SharedPtr<const GraphObject> o) const;
+ const_iterator children_end(SharedPtr<const GraphObject> o) const;
- SharedPtr<GraphObject> find_child(SharedPtr<GraphObject> parent,
- const std::string& child_name) const;
+ SharedPtr<GraphObject> find_child(SharedPtr<const GraphObject> parent,
+ const std::string& child_name) const;
unsigned child_name_offset(const Raul::Path& parent,
const Raul::Symbol& symbol,