#include "engine.hh"
Classes | |
class | JobQueue |
Public Member Functions | |
uint64_t | block_size () const |
String | engine_stats (uint64_t stats) const |
uint64_t | frame_counter () const |
AudioProcessorP | get_event_source () |
ProjectImplP | get_project () |
double | inyquist () const |
void | ipc_dispatch () |
bool | ipc_pending () |
uint | nyquist () const |
void | queue_capture_start (CallbackS &, const String &filename, bool needsrunning) |
void | queue_capture_stop (CallbackS &) |
uint | sample_rate () const |
void | set_autostop (uint64_t nsamples) |
void | set_project (ProjectImplP project) |
SpeakerArrangement | speaker_arrangement () const |
void | start_threads () |
void | stop_threads () |
const AudioTransport & | transport () const |
bool | update_drivers (const String &pcm, uint latency_ms, const StringS &midis) |
void | wakeup_thread_mt () |
Static Public Member Functions | |
static bool | thread_is_engine () |
Public Attributes | |
JobQueue | async_jobs |
JobQueue | const_jobs |
Static Public Attributes | |
static const ThreadId & | thread_id |
Protected Member Functions | |
AudioEngine (AudioEngineThread &, AudioTransport &) | |
void | enable_output (AudioProcessor &aproc, bool onoff) |
void | schedule_add (AudioProcessor &aproc, uint level) |
void | schedule_queue_update () |
virtual | ~AudioEngine () |
Protected Attributes | |
std::atomic< size_t > | processor_count_ |
std::atomic< uint64_t > | render_stamp_ |
JobQueue | synchronized_jobs |
AudioTransport & | transport_ |
Main handle for AudioProcessor administration and audio rendering. Use make_audio_engine() to create a new engine and start_threads() to run its synthesis threads. AudioEngine objects cannot be deleted, because other ref-counted objects may hold `AudioEngine&` members until after main(). Use async_jobs to have the engine execute arbitrary code. Use const_jobs for synchronous read-only data gathering, this may take quite long. Use main_rt_jobs (see main.hh) for obstruction free enqueueing of main_loop callbacks.
|
explicitprotected |
|
protectedvirtual |
|
protected |
|
protected |
|
protected |
void start_threads | ( | ) |
void stop_threads | ( | ) |
void wakeup_thread_mt | ( | ) |
bool ipc_pending | ( | ) |
void ipc_dispatch | ( | ) |
AudioProcessorP get_event_source | ( | ) |
void set_project | ( | ProjectImplP | project | ) |
ProjectImplP get_project | ( | ) |
uint64_t frame_counter | ( | ) | const |
uint64 block_size | ( | ) | const |
const AudioTransport & transport | ( | ) | const |
uint sample_rate | ( | ) | const |
uint nyquist | ( | ) | const |
double inyquist | ( | ) | const |
SpeakerArrangement speaker_arrangement | ( | ) | const |
void set_autostop | ( | uint64_t | nsamples | ) |
void queue_capture_stop | ( | CallbackS & | callbacks | ) |
String engine_stats | ( | uint64_t | stats | ) | const |
|
static |
|
protected |
|
protected |
|
protected |
|
static |
JobQueue async_jobs |
Executed asynchronously, may modify AudioProcessor objects.
JobQueue const_jobs |
Blocks during execution, must treat AudioProcessor objects read-only.
|
protected |