Anklang C++ API 0.0.0
Loading...
Searching...
No Matches
AudioEngineThread
Inheritance diagram for AudioEngineThread:
[legend]

Classes

struct UserNoteJob

Public Member Functions

voidadd_job_mt (EngineJobImpl *aejob, const AudioEngine::JobQueue *jobqueue)
AudioEngineThread (const VoidF &, uint, SpeakerArrangement, const FastMemory::Block &)
voidcapture_start (const String &filename, bool needsrunning)
voidcapture_stop ()
voidcreate_processors_ml ()
booldriver_dispatcher (const LoopState &state)
voidenable_output (AudioProcessor &aproc, bool onoff)
Stringengine_stats_string (uint64_t stats) const
AudioProcessorPget_event_source ()
ProjectImplPget_project ()
voidipc_dispatch ()
boolipc_pending ()
boolpcm_check_write (bool write_buffer, int64 *timeout_usecs_p=nullptr)
boolprocess_jobs (AtomicIntrusiveStack< EngineJobImpl > &joblist)
voidqueue_user_note (const String &channel, UserNote::Flags flags, const String &text)
voidrun (StartQueue *sq)
voidschedule_add (AudioProcessor &aproc, uint level)
voidschedule_clear ()
voidschedule_queue_update ()
voidschedule_render (uint64 frames)
voidset_project (ProjectImplP project)
voidstart_threads_ml ()
voidstop_threads_ml ()
voidupdate_driver_set (DriverSet &dset)
voidwakeup_thread_mt ()
virtual~AudioEngineThread ()
- Public Member Functions inherited from AudioEngine
uint64_tblock_size () const
Stringengine_stats (uint64_t stats) const
uint64_tframe_counter () const
AudioProcessorPget_event_source ()
ProjectImplPget_project ()
doubleinyquist () const
voidipc_dispatch ()
boolipc_pending ()
uintnyquist () const
voidqueue_capture_start (CallbackS &, const String &filename, bool needsrunning)
voidqueue_capture_stop (CallbackS &)
uintsample_rate () const
voidset_autostop (uint64_t nsamples)
voidset_project (ProjectImplP project)
SpeakerArrangementspeaker_arrangement () const
voidstart_threads ()
voidstop_threads ()
const AudioTransport &transport () const
boolupdate_drivers (const String &pcm, uint latency_ms, const StringS &midis)
voidwakeup_thread_mt ()

Public Attributes

AtomicIntrusiveStack< EngineJobImpl >async_jobs_
std::atomic< uint64 >autostop_
std::atomic< uint64_t >buffer_size_
floatchbuffer_data_ [MAX_BUFFER_SIZE *fixed_n_channels]
AtomicIntrusiveStack< EngineJobImpl >const_jobs_
DriverSetdriver_set_ml
MainLoopPevent_loop_
EngineMidiInputPmidi_proc_
PcmDriverPnull_pcm_driver_
AudioProcessorSoprocs_
booloutput_needsrunning_
const VoidFowner_wakeup_
PcmDriverPpcm_driver_
ProjectImplPproject_
std::vector< AudioProcessor * >schedule_
boolschedule_invalid_
std::thread *thread_
FastMemory::Blocktransport_block_
AtomicIntrusiveStack< EngineJobImpl >trash_jobs_
AtomicIntrusiveStack< UserNoteJob >user_notes_
uint64write_stamp_
WaveWriterPwwriter_
- Public Attributes inherited from AudioEngine
JobQueueasync_jobs
JobQueueconst_jobs

Static Public Attributes

static constexpr uintfixed_n_channels
static constexpr size_tMAX_BUFFER_SIZE
- Static Public Attributes inherited from AudioEngine
static const ThreadId &thread_id

Additional Inherited Members

- Static Public Member Functions inherited from AudioEngine
static boolthread_is_engine ()
- Protected Member Functions inherited from AudioEngine
AudioEngine (AudioEngineThread &, AudioTransport &)
voidenable_output (AudioProcessor &aproc, bool onoff)
voidschedule_add (AudioProcessor &aproc, uint level)
voidschedule_queue_update ()
virtual~AudioEngine ()
- Protected Attributes inherited from AudioEngine
std::atomic< size_t >processor_count_
std::atomic< uint64_t >render_stamp_
JobQueuesynchronized_jobs
AudioTransport &transport_

Constructor & Destructor Documentation

~AudioEngineThread()

~AudioEngineThread ( )
virtual

AudioEngineThread()

AudioEngineThread ( const VoidF & owner_wakeup,
uint sample_rate,
SpeakerArrangement speakerarrangement,
const FastMemory::Block & transport_block
)
explicit

Member Function Documentation

schedule_clear()

void schedule_clear ( )

schedule_add()

void schedule_add ( AudioProcessor & aproc,
uint level
)

schedule_queue_update()

void schedule_queue_update ( )

schedule_render()

void schedule_render ( uint64 frames)

enable_output()

void enable_output ( AudioProcessor & aproc,
bool onoff
)

wakeup_thread_mt()

void wakeup_thread_mt ( )

capture_start()

void capture_start ( const String & filename,
bool needsrunning
)

capture_stop()

void capture_stop ( )

ipc_pending()

bool ipc_pending ( )

ipc_dispatch()

void ipc_dispatch ( )

get_event_source()

AudioProcessorP get_event_source ( )

add_job_mt()

void add_job_mt ( EngineJobImpl * aejob,
const AudioEngine::JobQueue * jobqueue
)

pcm_check_write()

bool pcm_check_write ( bool write_buffer,
int64 * timeout_usecs_p = nullptr
)

driver_dispatcher()

bool driver_dispatcher ( const LoopState & state)

process_jobs()

bool process_jobs ( AtomicIntrusiveStack< EngineJobImpl > & joblist)

run()

void run ( StartQueue * sq)

queue_user_note()

void queue_user_note ( const String & channel,
UserNote::Flags flags,
const String & text
)

set_project()

void set_project ( ProjectImplP project)

get_project()

ProjectImplP get_project ( )

update_driver_set()

void update_driver_set ( DriverSet & dset)

start_threads_ml()

void start_threads_ml ( )

stop_threads_ml()

void stop_threads_ml ( )

create_processors_ml()

void create_processors_ml ( )

engine_stats_string()

String engine_stats_string ( uint64_t stats) const

Member Data Documentation

fixed_n_channels

constexpr uint fixed_n_channels
staticconstexpr

null_pcm_driver_

PcmDriverP null_pcm_driver_

pcm_driver_

PcmDriverP pcm_driver_

MAX_BUFFER_SIZE

constexpr size_t MAX_BUFFER_SIZE
staticconstexpr

buffer_size_

std::atomic<uint64_t> buffer_size_

chbuffer_data_

float chbuffer_data_[MAX_BUFFER_SIZE *fixed_n_channels]

write_stamp_

uint64 write_stamp_

schedule_

std::vector<AudioProcessor*> schedule_

midi_proc_

EngineMidiInputP midi_proc_

schedule_invalid_

bool schedule_invalid_

output_needsrunning_

bool output_needsrunning_

async_jobs_

const_jobs_

trash_jobs_

owner_wakeup_

const VoidF owner_wakeup_

thread_

std::thread* thread_

event_loop_

MainLoopP event_loop_

oprocs_

AudioProcessorS oprocs_

project_

ProjectImplP project_

wwriter_

WaveWriterP wwriter_

transport_block_

FastMemory::Block transport_block_

driver_set_ml

DriverSet driver_set_ml

autostop_

std::atomic<uint64> autostop_

user_notes_