Ingen  0.5.1
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Ingen::Server::NodeImpl Class Referenceabstract

An object on the audio graph (a Graph, Block, or Port). More...

#include <NodeImpl.hpp>

+ Inheritance diagram for Ingen::Server::NodeImpl:
+ Collaboration diagram for Ingen::Server::NodeImpl:

Public Member Functions

const Raul::Symbol & symbol () const
 
Nodegraph_parent () const
 
NodeImplparent () const
 
virtual void set_path (const Raul::Path &new_path)
 Rename.
 
const Atomget_property (const Raul::URI &key) const
 Get a single property value. More...
 
virtual GraphImplparent_graph () const
 The Graph this object is a child of. More...
 
const Raul::Path & path () const
 
virtual bool prepare_poly (BufferFactory &bufs, uint32_t poly)=0
 Prepare for a new (external) polyphony value. More...
 
virtual bool apply_poly (RunContext &context, Raul::Maid &maid, uint32_t poly)=0
 Apply a new (external) polyphony value. More...
 
- Public Member Functions inherited from Ingen::Node
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
 
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 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 ()
 

Protected Member Functions

 NodeImpl (const Ingen::URIs &uris, NodeImpl *parent, const Raul::Symbol &symbol)
 
- Protected Member Functions inherited from Ingen::Node
 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

NodeImpl_parent
 
Raul::Path _path
 
Raul::Symbol _symbol
 
- Protected Attributes inherited from Ingen::Node
Arcs _arcs
 Graphs only.
 
- Protected Attributes inherited from Ingen::Resource
const URIs_uris
 

Additional Inherited Members

- Public Types inherited from Ingen::Node
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
}
 
- Static Public Member Functions inherited from Ingen::Node
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...
 

Detailed Description

An object on the audio graph (a Graph, Block, or Port).

Each of these is a Raul::Deletable and so can be deleted in a realtime safe way from anywhere, and they all have a map of variable for clients to store arbitrary values in (which the engine puts no significance to whatsoever).

Member Function Documentation

§ get_property()

const Atom & Ingen::Server::NodeImpl::get_property ( const Raul::URI &  uri) const
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.

References Ingen::Resource::properties().

§ parent_graph()

GraphImpl * Ingen::Server::NodeImpl::parent_graph ( ) const
virtual

The Graph this object is a child of.

Reimplemented in Ingen::Server::BlockImpl.

§ prepare_poly()

virtual bool Ingen::Server::NodeImpl::prepare_poly ( BufferFactory bufs,
uint32_t  poly 
)
pure virtual

Prepare for a new (external) polyphony value.

Preprocessor thread, poly is actually applied by apply_poly.

Returns
true on success.

Implemented in Ingen::Server::BlockImpl, Ingen::Server::PortImpl, Ingen::Server::DuplexPort, Ingen::Server::LV2Block, and Ingen::Server::Internals::NoteNode.

§ apply_poly()

virtual bool Ingen::Server::NodeImpl::apply_poly ( RunContext context,
Raul::Maid &  maid,
uint32_t  poly 
)
pure virtual

Apply a new (external) polyphony value.

Parameters
contextProcess context (process thread only).
polyMust be <= the most recent value passed to prepare_poly.
maidAny objects no longer needed will be pushed to this

Implemented in Ingen::Server::BlockImpl, Ingen::Server::PortImpl, Ingen::Server::DuplexPort, Ingen::Server::InputPort, Ingen::Server::LV2Block, and Ingen::Server::Internals::NoteNode.


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