Ingen
0.5.1
|
#include <JackDriver.hpp>
Classes | |
class | PortRegistrationFailedException |
Public Member Functions | |
JackDriver (Engine &engine) | |
bool | attach (const std::string &server_name, const std::string &client_name, void *jack_client) |
void | activate () |
Activate driver (begin processing graph and events). More... | |
void | deactivate () |
Deactivate driver (stop processing graph and events). More... | |
void | enable () |
void | disable () |
EnginePort * | create_port (DuplexPort *graph_port) |
Create a port ready to be inserted with add_input (non realtime). More... | |
EnginePort * | get_port (const Raul::Path &path) |
Find a system port by path. More... | |
void | rename_port (const Raul::Path &old_path, const Raul::Path &new_path) |
Rename a system visible port. More... | |
void | port_property (const Raul::Path &path, const Raul::URI &uri, const Atom &value) |
Apply a system visible port property. More... | |
void | add_port (RunContext &context, EnginePort *port) |
Add a system visible port (e.g. More... | |
void | remove_port (RunContext &context, EnginePort *port) |
Remove a system visible port. More... | |
void | register_port (EnginePort &port) |
Register a system visible port. More... | |
void | unregister_port (EnginePort &port) |
Register a system visible port. More... | |
const jack_position_t * | position () |
Transport state for this frame. More... | |
jack_transport_state_t | transport_state () |
void | append_time_events (RunContext &context, Buffer &buffer) |
Append time events for this cycle to buffer . More... | |
int | real_time_priority () |
Return the real-time priority of the audio thread, or -1. More... | |
jack_client_t * | jack_client () const |
SampleCount | block_length () const |
Return the audio buffer size in frames. | |
size_t | seq_size () const |
Return the event buffer size in bytes. | |
SampleCount | sample_rate () const |
Return the sample rate in Hz. | |
SampleCount | frame_time () const |
Return the current frame time (running counter) | |
Protected Types | |
typedef boost::intrusive::list< EnginePort > | Ports |
Protected Attributes | |
Engine & | _engine |
Ports | _ports |
LV2_Atom_Forge | _forge |
Raul::Semaphore | _sem |
std::atomic< bool > | _flag |
jack_client_t * | _client |
jack_nframes_t | _block_length |
size_t | _seq_size |
jack_nframes_t | _sample_rate |
uint32_t | _midi_event_type |
bool | _is_activated |
jack_position_t | _position |
jack_transport_state_t | _transport_state |
float | _old_bpm |
jack_nframes_t | _old_frame |
bool | _old_rolling |
Friends | |
class | JackPort |
The Jack Driver.
The process callback here drives the entire audio thread by "pulling" events from queues, processing them, running the graphs, and passing events along to the PostProcessor.
|
virtual |
Activate driver (begin processing graph and events).
Reimplemented from Ingen::Server::Driver.
|
virtual |
Deactivate driver (stop processing graph and events).
Reimplemented from Ingen::Server::Driver.
|
virtual |
Create a port ready to be inserted with add_input (non realtime).
May return NULL if the Driver can not create the port for some reason.
Implements Ingen::Server::Driver.
References Ingen::Server::Buffer::append_event(), Ingen::Server::PortImpl::monitor(), Ingen::Server::DuplexPort::set_driver_buffer(), and Ingen::Server::DuplexPort::set_is_driver_port().
|
virtual |
Find a system port by path.
Implements Ingen::Server::Driver.
|
virtual |
Rename a system visible port.
Implements Ingen::Server::Driver.
|
virtual |
Apply a system visible port property.
Implements Ingen::Server::Driver.
|
virtual |
Add a system visible port (e.g.
a port on the root graph).
Implements Ingen::Server::Driver.
References Ingen::Server::DuplexPort::set_driver_buffer().
|
virtual |
Remove a system visible port.
This removes the port from the driver in the process thread but does not destroy the port. To actually remove the system port, unregister_port() must be called later in another thread.
Implements Ingen::Server::Driver.
|
virtual |
Register a system visible port.
Implements Ingen::Server::Driver.
References Ingen::Resource::properties().
|
virtual |
Register a system visible port.
Implements Ingen::Server::Driver.
|
inline |
Transport state for this frame.
Intended to only be called from the audio thread.
|
virtual |
Append time events for this cycle to buffer
.
Implements Ingen::Server::Driver.
References Ingen::Server::Buffer::append_event().
|
inlinevirtual |
Return the real-time priority of the audio thread, or -1.
Implements Ingen::Server::Driver.