Anklang 0.3.0-460-gc4ef46ba
ASE — Anklang Sound Engine (C++)
« « « Anklang Documentation |
#include "engine.hh"
Classes | |
class | JobQueue |
Public Member Functions | |
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_t | 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_start (CallbackS &, const String &filename, bool needsrunning) |
void | queue_capture_stop (CallbackS &) |
bool | update_drivers (const String &pcm, uint latency_ms, const StringS &midis) |
String | engine_stats (uint64_t stats) const |
Static Public Member Functions | |
static bool | thread_is_engine () |
Public Attributes | |
JobQueue | async_jobs |
Executed asynchronously, may modify AudioProcessor objects. | |
JobQueue | const_jobs |
Blocks during execution, must treat AudioProcessor objects read-only. | |
Static Public Attributes | |
static const ThreadId & | thread_id |
Protected Member Functions | |
AudioEngine (AudioEngineThread &, AudioTransport &) | |
void | enable_output (AudioProcessor &aproc, bool onoff) |
void | schedule_queue_update () |
void | schedule_add (AudioProcessor &aproc, uint level) |
Protected Attributes | |
std::atomic< size_t > | processor_count_ |
std::atomic< uint64_t > | render_stamp_ |
AudioTransport & | transport_ |
JobQueue | synchronized_jobs |
Friends | |
class | AudioProcessor |
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 |
|
protected |
ProjectImplP Ase::AudioEngine::get_project | ( | ) |
void Ase::AudioEngine::queue_capture_stop | ( | CallbackS & | callbacks | ) |
|
protected |
|
protected |
void Ase::AudioEngine::set_project | ( | ProjectImplP | project | ) |
SpeakerArrangement Ase::AudioEngine::speaker_arrangement | ( | ) | const |
const AudioTransport & Ase::AudioEngine::transport | ( | ) | const |
|
friend |
JobQueue Ase::AudioEngine::async_jobs |
Executed asynchronously, may modify AudioProcessor objects.
Definition at line 65 of file engine.hh.
Referenced by Ase::DeviceImpl::_disconnect_remove(), and Ase::NativeDeviceImpl::_disconnect_remove().
JobQueue Ase::AudioEngine::const_jobs |
Blocks during execution, must treat AudioProcessor objects read-only.
|
protected |
|
protected |
|
protected |