Ingen
0.5.1
|
Base class for all Node models (BlockModel, GraphModel, PortModel). More...
#include <ObjectModel.hpp>
Public Member Functions | |
bool | is_a (const URIs::Quark &type) const |
const Atom & | get_property (const Raul::URI &key) const |
Get a single property value. More... | |
void | on_property (const Raul::URI &uri, const Atom &value) |
Hook called whenever a property is added. More... | |
void | on_property_removed (const Raul::URI &uri, const Atom &value) |
Hook called whenever a property value is removed. More... | |
const Raul::Path & | path () const |
const Raul::Symbol & | symbol () const |
SPtr< ObjectModel > | parent () const |
bool | polyphonic () const |
Node * | graph_parent () const |
INGEN_SIGNAL (new_child, void, SPtr< ObjectModel >) | |
INGEN_SIGNAL (removed_child, void, SPtr< ObjectModel >) | |
INGEN_SIGNAL (property, void, const Raul::URI &, const Atom &) | |
INGEN_SIGNAL (property_removed, void, const Raul::URI &, const Atom &) | |
INGEN_SIGNAL (destroyed, void) | |
INGEN_SIGNAL (moved, void) | |
![]() | |
Arcs & | arcs () |
const Arcs & | arcs () const |
virtual uint32_t | num_ports () const |
virtual Node * | port (uint32_t index) const |
virtual const Resource * | plugin () const |
virtual LilvInstance * | instance () |
virtual bool | save_state (const std::string &dir) const |
virtual GraphType | graph_type () const =0 |
Raul::URI | base_uri () const |
![]() | |
Resource (const URIs &uris, const Raul::URI &uri) | |
Resource & | operator= (const Resource &rhs) |
virtual const Atom & | set_property (const Raul::URI &uri, const Atom &value, Graph ctx=Graph::DEFAULT) |
Set (replace) a property value. More... | |
virtual const Atom & | set_property (const Raul::URI &uri, const URIs::Quark &value, Graph ctx=Graph::DEFAULT) |
Set (replace) a property value. More... | |
virtual bool | add_property (const Raul::URI &uri, const Atom &value, Graph ctx=Graph::DEFAULT) |
Add a property value. More... | |
virtual void | remove_property (const Raul::URI &uri, const Atom &value) |
Remove a property. More... | |
virtual void | remove_property (const Raul::URI &uri, const URIs::Quark &value) |
Remove a property. More... | |
virtual bool | has_property (const Raul::URI &uri, const Atom &value) const |
Return true iff a property is set with a specific value. More... | |
virtual bool | has_property (const Raul::URI &uri, const URIs::Quark &value) const |
Return true iff a property is set with a specific value. More... | |
void | set_properties (const Properties &p) |
Set (replace) several properties at once. More... | |
void | add_properties (const Properties &p) |
Add several properties at once. More... | |
void | remove_properties (const Properties &p) |
Remove several properties at once. More... | |
virtual void | set_uri (const Raul::URI &uri) |
Properties | properties (Resource::Graph ctx) const |
Get all the properties with a given context. More... | |
const URIs & | uris () const |
const Raul::URI & | uri () const |
const Properties & | properties () const |
Properties & | properties () |
Protected Member Functions | |
ObjectModel (URIs &uris, const Raul::Path &path) | |
ObjectModel (const ObjectModel ©) | |
virtual void | set_path (const Raul::Path &p) |
virtual void | set_parent (SPtr< ObjectModel > p) |
virtual void | add_child (SPtr< ObjectModel > c) |
virtual bool | remove_child (SPtr< ObjectModel > c) |
virtual void | set (SPtr< ObjectModel > model) |
Merge the data of o with self, as much as possible. More... | |
![]() | |
Node (const URIs &uris, const Raul::Path &path) | |
![]() | |
const Atom & | set_property (const Raul::URI &uri, const Atom &value) const |
Protected Attributes | |
SPtr< ObjectModel > | _parent |
![]() | |
Arcs | _arcs |
Graphs only. | |
![]() | |
const URIs & | _uris |
Friends | |
class | ClientStore |
Additional Inherited Members | |
![]() | |
enum | GraphType { GRAPH, BLOCK, PORT } |
typedef std::pair< const Node *, const Node * > | ArcsKey |
typedef std::map< ArcsKey, SPtr< Arc > > | Arcs |
![]() | |
enum | Graph { DEFAULT, EXTERNAL, INTERNAL } |
![]() | |
static Raul::URI | main_uri () |
static bool | uri_is_path (const Raul::URI &uri) |
static Raul::Path | uri_to_path (const Raul::URI &uri) |
static Raul::URI | path_to_uri (const Raul::Path &path) |
![]() | |
static Raul::URI | graph_to_uri (Graph g) |
static Graph | uri_to_graph (const char *uri) |
static bool | type (const URIs &uris, const Properties &properties, bool &graph, bool &block, bool &port, bool &is_output) |
Get the ingen type from a set of Properties. More... | |
Base class for all Node models (BlockModel, GraphModel, PortModel).
There are no non-const public methods intentionally, models are not allowed to be manipulated directly by anything (but the Store) because of the asynchronous nature of engine control. To change something, use the controller (which the model probably shouldn't have a reference to but oh well, it reduces Collection Hell) and wait for the result (as a signal from this Model).
|
virtual |
Get a single property value.
This is only useful for properties with a single value. If the requested property has several values, the first will be returned.
Reimplemented from Ingen::Resource.
Referenced by Ingen::Client::PortModel::on_property().
|
virtual |
Hook called whenever a property is added.
This can be used by derived classes to implement special behaviour for particular properties (e.g. ingen:value for ports).
Reimplemented from Ingen::Resource.
Reimplemented in Ingen::Client::PortModel.
Referenced by Ingen::Client::PortModel::on_property().
|
virtual |
Hook called whenever a property value is removed.
If all values for a key are removed, then value will be the wildcard.
This can be used by derived classes to implement special behaviour for particular properties (e.g. ingen:value for ports).
Reimplemented from Ingen::Resource.
|
protectedvirtual |
Merge the data of o
with self, as much as possible.
This will merge the two models, but with any conflict take the value in o
as correct. The paths of the two models MUST be equal.
Reimplemented in Ingen::Client::BlockModel.
References Ingen::Resource::set_property().
Referenced by Ingen::Client::PortModel::on_property(), and Ingen::Client::BlockModel::set().