|
Anklang-0.3.0.dev551+gad1415e2 anklang-0.3.0.dev551+gad1415e2
ASE — Anklang Sound Engine (C++)
« « « Anklang Documentation |
Main handle for AudioProcessor administration and audio rendering. More...
#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 |