summaryrefslogtreecommitdiffstats
path: root/src/client/ObjectModel.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-11-09 03:45:35 +0000
committerDavid Robillard <d@drobilla.net>2008-11-09 03:45:35 +0000
commit72ffe8b96f492805b16df8d2ffa452e67046b974 (patch)
tree4c3e565f34e334c8cc3a58ab052ea2156eb4cfdc /src/client/ObjectModel.cpp
parent5d1f579900182f283a1c21ad4e59daf7f035e219 (diff)
downloadingen-72ffe8b96f492805b16df8d2ffa452e67046b974.tar.gz
ingen-72ffe8b96f492805b16df8d2ffa452e67046b974.tar.bz2
ingen-72ffe8b96f492805b16df8d2ffa452e67046b974.zip
Add concept of 'Resource' and make plugins a resource (as well as graph objects).
Get rid of crufty imperative Plugin API. Loading of plugin data from engine over HTTP. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@1713 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/client/ObjectModel.cpp')
-rw-r--r--src/client/ObjectModel.cpp47
1 files changed, 7 insertions, 40 deletions
diff --git a/src/client/ObjectModel.cpp b/src/client/ObjectModel.cpp
index b1a0169f..80460547 100644
--- a/src/client/ObjectModel.cpp
+++ b/src/client/ObjectModel.cpp
@@ -27,7 +27,8 @@ namespace Client {
ObjectModel::ObjectModel(const Path& path)
- : _path(path)
+ : ResourceImpl(string("patch/") + path)
+ , _path(path)
{
}
@@ -71,45 +72,11 @@ ObjectModel::get_variable( string& key)
}
-/** Get a property of this object.
- *
- * @return Metadata value with key @a key, empty string otherwise.
- */
-const Atom&
-ObjectModel::get_property(const string& key) const
-{
- static const Atom null_atom;
-
- Properties::const_iterator i = _properties.find(key);
- if (i != _properties.end())
- return i->second;
- else
- return null_atom;
-}
-
-
-/** Get a property of this object.
- *
- * @return Metadata value with key @a key, empty string otherwise.
- */
-Atom&
-ObjectModel::get_property(const string& key)
-{
- static Atom null_atom;
-
- Properties::iterator i = _properties.find(key);
- if (i != _properties.end())
- return i->second;
- else
- return null_atom;
-}
-
-
bool
ObjectModel::polyphonic() const
{
- Properties::const_iterator i = _properties.find("ingen:polyphonic");
- return (i != _properties.end() && i->second.type() == Atom::BOOL && i->second.get_bool());
+ const Raul::Atom& polyphonic = get_property("ingen:polyphonic");
+ return (polyphonic.is_valid() && polyphonic.get_bool());
}
@@ -134,10 +101,10 @@ ObjectModel::set(SharedPtr<ObjectModel> o)
}
for (Properties::const_iterator v = o->properties().begin(); v != o->properties().end(); ++v) {
- Properties::const_iterator mine = _properties.find(v->first);
- if (mine != _properties.end())
+ const Raul::Atom& mine = get_property(v->first);
+ if (mine.is_valid())
cerr << "WARNING: " << _path << "Client/Server property mismatch: " << v->first << endl;
- _properties[v->first] = v->second;
+ ResourceImpl::set_property(v->first, v->second);
signal_variable.emit(v->first, v->second);
}
}