Ingen  0.5.1
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
Ingen::Node Class Referenceabstract

An object on the audio graph. More...

#include <Node.hpp>

+ Inheritance diagram for Ingen::Node:
+ Collaboration diagram for Ingen::Node:

Public Types

enum  GraphType {
  GRAPH,
  BLOCK,
  PORT
}
 
typedef std::pair< const Node *, const Node * > ArcsKey
 
typedef std::map< ArcsKey, SPtr< Arc > > Arcs
 
- Public Types inherited from Ingen::Resource
enum  Graph {
  DEFAULT,
  EXTERNAL,
  INTERNAL
}
 

Public Member Functions

Arcs & arcs ()
 
const Arcs & arcs () const
 
virtual uint32_t num_ports () const
 
virtual Nodeport (uint32_t index) const
 
virtual const Resourceplugin () const
 
virtual LilvInstance * instance ()
 
virtual bool save_state (const std::string &dir) const
 
virtual GraphType graph_type () const =0
 
virtual const Raul::Path & path () const =0
 
virtual const Raul::Symbol & symbol () const =0
 
virtual Nodegraph_parent () const =0
 
Raul::URI base_uri () const
 
- Public Member Functions inherited from Ingen::Resource
 Resource (const URIs &uris, const Raul::URI &uri)
 
Resourceoperator= (const Resource &rhs)
 
virtual const Atomget_property (const Raul::URI &uri) const
 Get a single property value. More...
 
virtual const Atomset_property (const Raul::URI &uri, const Atom &value, Graph ctx=Graph::DEFAULT)
 Set (replace) a property value. More...
 
virtual const Atomset_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 on_property (const Raul::URI &uri, const Atom &value)
 Hook called whenever a property is added. More...
 
virtual void on_property_removed (const Raul::URI &uri, const Atom &value)
 Hook called whenever a property value is removed. 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 URIsuris () const
 
const Raul::URI & uri () const
 
const Propertiesproperties () const
 
Propertiesproperties ()
 

Static Public Member Functions

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 Public Member Functions inherited from Ingen::Resource
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...
 

Protected Member Functions

virtual void set_path (const Raul::Path &p)=0
 
 Node (const URIs &uris, const Raul::Path &path)
 
- Protected Member Functions inherited from Ingen::Resource
const Atomset_property (const Raul::URI &uri, const Atom &value) const
 

Protected Attributes

Arcs _arcs
 Graphs only.
 
- Protected Attributes inherited from Ingen::Resource
const URIs_uris
 

Friends

class Store
 

Detailed Description

An object on the audio graph.

The key property of nodes is that all nodes have a path and a symbol, as well as a URI.

To avoid ugly inheritance issues and the need for excessive use of dynamic_cast, this class contains some members which are only applicable to certain types of node. There is a type tag which can be used to determine the type of any Node.


The documentation for this class was generated from the following file: