|
Ingen
0.5.1
|
An instance of a LV2 plugin. More...
#include <LV2Block.hpp>
Inheritance diagram for Ingen::Server::LV2Block:
Collaboration diagram for Ingen::Server::LV2Block:Classes | |
| struct | Response |
Public Member Functions | |
| LV2Block (LV2Plugin *plugin, const Raul::Symbol &symbol, bool polyphonic, GraphImpl *parent, SampleRate srate) | |
| Partially construct a LV2Block. More... | |
| bool | instantiate (BufferFactory &bufs, const LilvState *state) |
| Instantiate self from LV2 plugin descriptor. More... | |
| LilvInstance * | instance () |
| bool | save_state (const std::string &dir) const |
| BlockImpl * | duplicate (Engine &engine, const Raul::Symbol &symbol, GraphImpl *parent) |
| Duplicate this Node. More... | |
| bool | prepare_poly (BufferFactory &bufs, uint32_t poly) |
| Prepare for a new (external) polyphony value. More... | |
| bool | apply_poly (RunContext &context, Raul::Maid &maid, uint32_t poly) |
| Apply a new (external) polyphony value. More... | |
| void | activate (BufferFactory &bufs) |
| Activate this Block. More... | |
| void | deactivate () |
| Deactivate this Block. More... | |
| LV2_Worker_Status | work (uint32_t size, const void *data) |
| void | run (RunContext &context) |
| Run block for a portion of process cycle (called from process()). More... | |
| void | post_process (RunContext &context) |
| Do whatever needs doing in the process thread after process() is called. | |
| LilvState * | load_preset (const Raul::URI &uri) |
| Load a preset from the world for this block. More... | |
| void | apply_state (Worker *worker, const LilvState *state) |
Restore state. More... | |
| boost::optional< Resource > | save_preset (const Raul::URI &bundle, const Properties &props) |
| Save current state as preset. More... | |
| void | set_port_buffer (uint32_t voice, uint32_t port_num, BufferRef buf, SampleCount offset) |
| Set the buffer of a port to a given buffer (e.g. More... | |
Public Member Functions inherited from Ingen::Server::BlockImpl | |
| BlockImpl (PluginImpl *plugin, const Raul::Symbol &symbol, bool poly, GraphImpl *parent, SampleRate rate) | |
| virtual GraphType | graph_type () const |
| bool | activated () const |
| Return true iff this block is activated. | |
| bool | enabled () const |
| Return true iff this block is enabled (not bypassed). More... | |
| void | set_enabled (bool e) |
| Enable or disable (bypass) this block. More... | |
| virtual void | learn () |
| Learn the next incoming MIDI event (for internals) | |
| virtual void | pre_process (RunContext &context) |
| Do whatever needs doing in the process thread before process() is called. | |
| virtual void | process (RunContext &context) |
| Run block for an entire process cycle (calls run()). More... | |
| virtual Node * | port (uint32_t index) const |
| virtual PortImpl * | port_impl (uint32_t index) const |
| virtual PortImpl * | port_by_symbol (const char *symbol) |
| Get a port by symbol. More... | |
| std::set< BlockImpl * > & | providers () |
| Blocks that are connected to this Block's inputs. More... | |
| std::set< BlockImpl * > & | dependants () |
| Blocks that are connected to this Block's outputs. More... | |
| virtual void | set_polyphonic (bool p) |
| Flag block as polyphonic. More... | |
| virtual const Resource * | plugin () const |
| Information about the Plugin this Block is an instance of. More... | |
| virtual const PluginImpl * | plugin_impl () const |
| Information about the Plugin this Block is an instance of. More... | |
| virtual void | plugin (PluginImpl *pi) |
| virtual void | set_buffer_size (RunContext &context, BufferFactory &bufs, LV2_URID type, uint32_t size) |
| GraphImpl * | parent_graph () const |
| The Graph this Block belongs to. More... | |
| uint32_t | num_ports () const |
| virtual uint32_t | polyphony () const |
| Mark | get_mark () const |
| void | set_mark (Mark m) |
Public Member Functions inherited from Ingen::Server::NodeImpl | |
| const Raul::Symbol & | symbol () const |
| Node * | graph_parent () const |
| NodeImpl * | parent () const |
| virtual void | set_path (const Raul::Path &new_path) |
| Rename. | |
| const Atom & | get_property (const Raul::URI &key) const |
| Get a single property value. More... | |
| const Raul::Path & | path () const |
Public Member Functions inherited from Ingen::Node | |
| Arcs & | arcs () |
| const Arcs & | arcs () const |
| Raul::URI | base_uri () const |
Public Member Functions inherited from Ingen::Resource | |
| 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 | 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 URIs & | uris () const |
| const Raul::URI & | uri () const |
| const Properties & | properties () const |
| Properties & | properties () |
Static Public Member Functions | |
| static LilvState * | load_state (World *world, const std::string &path) |
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... | |
Protected Types | |
| typedef Raul::Array< SPtr< void > > | Instances |
| typedef boost::intrusive::slist< Response, boost::intrusive::cache_last< true >, boost::intrusive::constant_time_size< false > > | Responses |
Protected Member Functions | |
| SPtr< LilvInstance > | make_instance (URIs &uris, SampleRate rate, uint32_t voice, bool preparing) |
| LilvInstance * | instance (uint32_t voice) |
Protected Member Functions inherited from Ingen::Server::BlockImpl | |
| PortImpl * | nth_port_by_type (uint32_t n, bool input, PortType type) |
Protected Member Functions inherited from Ingen::Server::NodeImpl | |
| 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 Atom & | set_property (const Raul::URI &uri, const Atom &value) const |
Static Protected Member Functions | |
| static LV2_Worker_Status | work_respond (LV2_Worker_Respond_Handle handle, uint32_t size, const void *data) |
Protected Attributes | |
| LV2Plugin * | _lv2_plugin |
| Instances * | _instances |
| Instances * | _prepared_instances |
| const LV2_Worker_Interface * | _worker_iface |
| std::mutex | _work_mutex |
| Responses | _responses |
| SPtr< LV2Features::FeatureArray > | _features |
Protected Attributes inherited from Ingen::Server::BlockImpl | |
| PluginImpl * | _plugin |
| Raul::Array< PortImpl * > * | _ports |
| Access in audio thread only. | |
| uint32_t | _polyphony |
| std::set< BlockImpl * > | _providers |
| Blocks connected to this one's input ports. | |
| std::set< BlockImpl * > | _dependants |
| Blocks this one's output ports are connected to. | |
| Mark | _mark |
| Mark for graph compilation algorithm. | |
| bool | _polyphonic |
| bool | _activated |
| bool | _enabled |
Protected Attributes inherited from Ingen::Server::NodeImpl | |
| 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::Server::BlockImpl | |
| enum | Mark { UNVISITED, VISITING, VISITED } |
| Mark used during graph compilation. | |
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 } |
An instance of a LV2 plugin.
| Ingen::Server::LV2Block::LV2Block | ( | LV2Plugin * | plugin, |
| const Raul::Symbol & | symbol, | ||
| bool | polyphonic, | ||
| GraphImpl * | parent, | ||
| SampleRate | srate | ||
| ) |
Partially construct a LV2Block.
Object is not usable until instantiate() is called with success. (It will crash!)
References Ingen::Server::BlockImpl::_ports, Ingen::Server::Buffer::nframes(), Ingen::Server::BlockImpl::parent_graph(), and Ingen::Resource::type().
Referenced by duplicate().
| bool Ingen::Server::LV2Block::instantiate | ( | BufferFactory & | bufs, |
| const LilvState * | state | ||
| ) |
Instantiate self from LV2 plugin descriptor.
Implemented as a seperate function (rather than in the constructor) to allow graceful error-catching of broken plugins.
Returns whether or not plugin was successfully instantiated. If return value is false, this object may not be used.
References Ingen::Server::BlockImpl::_ports, Ingen::Resource::add_property(), apply_state(), load_preset(), Ingen::Server::BlockImpl::parent_graph(), Ingen::Server::Driver::sample_rate(), and Ingen::Resource::type().
|
virtual |
Duplicate this Node.
Reimplemented from Ingen::Server::BlockImpl.
References LV2Block(), Ingen::Resource::properties(), and Ingen::Server::Driver::sample_rate().
|
virtual |
Prepare for a new (external) polyphony value.
Preprocessor thread, poly is actually applied by apply_poly.
Reimplemented from Ingen::Server::BlockImpl.
References Ingen::Server::BlockImpl::prepare_poly(), and Ingen::Server::Driver::sample_rate().
|
virtual |
Apply a new (external) polyphony value.
| context | Process context (process thread only). |
| poly | Must be <= the most recent value passed to prepare_poly. |
| maid | Any objects no longer needed will be pushed to this |
Reimplemented from Ingen::Server::BlockImpl.
References Ingen::Server::BlockImpl::apply_poly().
|
virtual |
Activate this Block.
This function must be called in a non-realtime thread before it is inserted in to a graph. Any non-realtime actions that need to be done before the Block is ready for use should be done here.
Reimplemented from Ingen::Server::BlockImpl.
References Ingen::Server::BlockImpl::activate().
|
virtual |
Deactivate this Block.
This function must be called in a non-realtime thread after the block has been removed from its graph (i.e. processing is finished).
Reimplemented from Ingen::Server::BlockImpl.
References Ingen::Server::BlockImpl::deactivate(), and Ingen::Server::BlockImpl::parent_graph().
|
virtual |
Run block for a portion of process cycle (called from process()).
Implements Ingen::Server::BlockImpl.
|
virtual |
Load a preset from the world for this block.
Reimplemented from Ingen::Server::BlockImpl.
Referenced by instantiate().
|
virtual |
Restore state.
Reimplemented from Ingen::Server::BlockImpl.
References Ingen::Server::BlockImpl::parent_graph(), Ingen::Server::BlockImpl::port_by_symbol(), and Ingen::Resource::type().
Referenced by instantiate().
|
virtual |
Save current state as preset.
Reimplemented from Ingen::Server::BlockImpl.
References Ingen::Server::BlockImpl::parent_graph(), and Ingen::Resource::set_property().
|
virtual |
Set the buffer of a port to a given buffer (e.g.
connect plugin to buffer)
Reimplemented from Ingen::Server::BlockImpl.
References Ingen::Server::BlockImpl::_ports, and Ingen::Server::BlockImpl::set_port_buffer().
1.8.12