diff options
author | David Robillard <d@drobilla.net> | 2008-11-09 03:45:35 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-11-09 03:45:35 +0000 |
commit | 72ffe8b96f492805b16df8d2ffa452e67046b974 (patch) | |
tree | 4c3e565f34e334c8cc3a58ab052ea2156eb4cfdc /src/client/ObjectModel.cpp | |
parent | 5d1f579900182f283a1c21ad4e59daf7f035e219 (diff) | |
download | ingen-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.cpp | 47 |
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); } } |