Ingen  0.5.1
Public Member Functions | List of all members
Ingen::EngineBase Class Referenceabstract

The engine which executes the process graph. More...

#include <EngineBase.hpp>

+ Inheritance diagram for Ingen::EngineBase:

Public Member Functions

virtual void init (double sample_rate, uint32_t block_length, size_t seq_size)=0
 Initialise the engine for local use (e.g. More...
 
virtual bool activate ()=0
 Activate the engine.
 
virtual void deactivate ()=0
 Deactivate the engine.
 
virtual void listen ()=0
 Begin listening on network sockets.
 
virtual bool pending_events ()=0
 Return true iff events are waiting to be processed.
 
virtual void locate (uint32_t start, uint32_t sample_count)=0
 Locate to a given cycle.
 
virtual unsigned run (uint32_t sample_count)=0
 Process audio for sample_count frames. More...
 
virtual void quit ()=0
 Indicate that a quit is desired. More...
 
virtual bool main_iteration ()=0
 Run a single iteration of the main context. More...
 
virtual void register_client (SPtr< Interface > client)=0
 Register a client to receive updates about engine changes.
 
virtual bool unregister_client (SPtr< Interface > client)=0
 Unregister a client.
 

Detailed Description

The engine which executes the process graph.

Member Function Documentation

§ init()

virtual void Ingen::EngineBase::init ( double  sample_rate,
uint32_t  block_length,
size_t  seq_size 
)
pure virtual

Initialise the engine for local use (e.g.

without a Jack driver).

Parameters
sample_rateAudio sampling rate in Hz.
block_lengthAudio block length (i.e. buffer size) in frames.
seq_sizeSequence buffer size in bytes.

Implemented in Ingen::Server::Engine.

§ run()

virtual unsigned Ingen::EngineBase::run ( uint32_t  sample_count)
pure virtual

Process audio for sample_count frames.

If the return value is non-zero, events have been processed and are awaiting to be finalised (including responding and announcing any changes to clients) via a call to main_iteration().

Returns
The number of events processed.

Implemented in Ingen::Server::Engine.

§ quit()

virtual void Ingen::EngineBase::quit ( )
pure virtual

Indicate that a quit is desired.

This function simply sets a flag which affects the return value of main_iteration, it does not actually force the engine to stop running or block. The code driving the engine is responsible for stopping and cleaning up when main_iteration returns false.

Implemented in Ingen::Server::Engine.

§ main_iteration()

virtual bool Ingen::EngineBase::main_iteration ( )
pure virtual

Run a single iteration of the main context.

The main context post-processes events and performs housekeeping duties like collecting garbage. This should be called regularly, e.g. a few times per second. The return value indicates whether execution should continue; i.e. if false is returned, a quit has been requested and the caller should cease calling main_iteration() and stop the engine.

Implemented in Ingen::Server::Engine.


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