Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::TriggerBoxThread Class Reference

#include <triggerbox.h>

Classes

struct  Request
 

Public Member Functions

 TriggerBoxThread ()
 
 ~TriggerBoxThread ()
 
void set_region (TriggerBox &, uint32_t slot, std::shared_ptr< Region >)
 
void request_delete_trigger (Trigger *t)
 
void request_build_source (Trigger *t, Temporal::timecnt_t const &duration)
 
void summon ()
 
void stop ()
 
void wait_until_finished ()
 

Static Public Member Functions

static void init_request_pool ()
 

Private Types

enum  RequestType { Quit , SetRegion , DeleteTrigger , BuildSourceAndRegion }
 

Private Member Functions

void * thread_work ()
 
void queue_request (Request *)
 
void delete_trigger (Trigger *)
 
void build_source (Trigger *, Temporal::timecnt_t const &duration)
 
void build_midi_source (MIDITrigger *, Temporal::timecnt_t const &)
 
void build_audio_source (AudioTrigger *, Temporal::timecnt_t const &)
 

Static Private Member Functions

static void * _thread_work (void *arg)
 

Private Attributes

pthread_t thread
 
PBD::RingBuffer< Request * > requests
 
CrossThreadChannel _xthread
 

Detailed Description

Definition at line 736 of file triggerbox.h.

Member Enumeration Documentation

◆ RequestType

Enumerator
Quit 
SetRegion 
DeleteTrigger 
BuildSourceAndRegion 

Definition at line 756 of file triggerbox.h.

Constructor & Destructor Documentation

◆ TriggerBoxThread()

ARDOUR::TriggerBoxThread::TriggerBoxThread ( )

◆ ~TriggerBoxThread()

ARDOUR::TriggerBoxThread::~TriggerBoxThread ( )

Member Function Documentation

◆ _thread_work()

static void* ARDOUR::TriggerBoxThread::_thread_work ( void *  arg)
staticprivate

◆ build_audio_source()

void ARDOUR::TriggerBoxThread::build_audio_source ( AudioTrigger ,
Temporal::timecnt_t const &   
)
private

◆ build_midi_source()

void ARDOUR::TriggerBoxThread::build_midi_source ( MIDITrigger ,
Temporal::timecnt_t const &   
)
private

◆ build_source()

void ARDOUR::TriggerBoxThread::build_source ( Trigger ,
Temporal::timecnt_t const &  duration 
)
private

◆ delete_trigger()

void ARDOUR::TriggerBoxThread::delete_trigger ( Trigger )
private

◆ init_request_pool()

static void ARDOUR::TriggerBoxThread::init_request_pool ( )
inlinestatic

Definition at line 742 of file triggerbox.h.

◆ queue_request()

void ARDOUR::TriggerBoxThread::queue_request ( Request )
private

◆ request_build_source()

void ARDOUR::TriggerBoxThread::request_build_source ( Trigger t,
Temporal::timecnt_t const &  duration 
)

◆ request_delete_trigger()

void ARDOUR::TriggerBoxThread::request_delete_trigger ( Trigger t)

◆ set_region()

void ARDOUR::TriggerBoxThread::set_region ( TriggerBox ,
uint32_t  slot,
std::shared_ptr< Region  
)

◆ stop()

void ARDOUR::TriggerBoxThread::stop ( )

◆ summon()

void ARDOUR::TriggerBoxThread::summon ( )

◆ thread_work()

void* ARDOUR::TriggerBoxThread::thread_work ( )
private

◆ wait_until_finished()

void ARDOUR::TriggerBoxThread::wait_until_finished ( )

Member Data Documentation

◆ _xthread

CrossThreadChannel ARDOUR::TriggerBoxThread::_xthread
private

Definition at line 786 of file triggerbox.h.

◆ requests

PBD::RingBuffer<Request*> ARDOUR::TriggerBoxThread::requests
private

Definition at line 784 of file triggerbox.h.

◆ thread

pthread_t ARDOUR::TriggerBoxThread::thread
private

Definition at line 783 of file triggerbox.h.


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