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

#include <triggerbox.h>

Inheritance diagram for ARDOUR::TriggerBox:
[legend]

Classes

struct  Request
 
struct  Requests
 

Public Types

enum  TriggerMidiMapMode { AbletonPush , SequentialNote , ByMidiChannel , Custom }
 
typedef std::vector< TriggerPtrTriggers
 
- Public Types inherited from Evoral::ControlSet
typedef std::map< Parameter, std::shared_ptr< Control > > Controls
 

Public Member Functions

 TriggerBox (Session &, DataType dt)
 
 ~TriggerBox ()
 
void set_record_enabled (bool yn)
 
RecordState record_enabled () const
 
void arm_from_another_thread (Trigger &slot, samplepos_t, uint32_t chans)
 
void disarm ()
 
void disarm_all ()
 
bool armed () const
 
void run (BufferSet &bufs, samplepos_t start_sample, samplepos_t end_sample, double speed, pframes_t nframes, bool result_required)
 
void run_cycle (BufferSet &bufs, samplepos_t start_sample, samplepos_t end_sample, double speed, pframes_t nframes)
 
bool can_support_io_configuration (const ChanCount &in, ChanCount &out)
 
bool configure_io (ChanCount in, ChanCount out)
 
bool empty () const
 
int32_t order () const
 
void set_order (int32_t n)
 
TriggerPtr trigger (Triggers::size_type)
 
void bang_trigger_at (Triggers::size_type row, float velocity=1.0f)
 
void unbang_trigger_at (Triggers::size_type row)
 
void add_trigger (TriggerPtr)
 
void fast_forward (CueEvents const &, samplepos_t transport_postiion)
 
bool fast_forwarding () const
 
void set_pending (uint32_t slot, Trigger *)
 
XMLNodeget_state () const
 
int set_state (const XMLNode &, int version)
 
void deep_sources (std::set< std::shared_ptr< Source >> &)
 
void used_regions (std::set< std::shared_ptr< Region >> &)
 
void set_from_path (uint32_t slot, std::string const &path)
 
void set_from_selection (uint32_t slot, std::shared_ptr< Region >)
 
DataType data_type () const
 
void stop_all_immediately ()
 
void stop_all_quantized ()
 
TriggerPtr currently_playing () const
 
TriggerPtr trigger_by_id (PBD::ID)
 
void clear_all_triggers ()
 
void clear_cue (int cue)
 
void set_all_follow_action (ARDOUR::FollowAction const &, uint32_t n=0)
 
void set_all_launch_style (ARDOUR::Trigger::LaunchStyle)
 
void set_all_quantization (Temporal::BBT_Offset const &)
 
void set_all_probability (int zero_to_a_hundred)
 
double position_as_fraction () const
 
void queue_explict (uint32_t)
 
TriggerPtr get_next_trigger ()
 
TriggerPtr peek_next_trigger ()
 
void request_reload (int32_t slot, void *)
 
void set_region (uint32_t slot, std::shared_ptr< Region > region)
 
void non_realtime_transport_stop (samplepos_t now, bool flush)
 
void non_realtime_locate (samplepos_t now)
 
void realtime_handle_transport_stopped ()
 
void enqueue_trigger_state_for_region (std::shared_ptr< Region >, std::shared_ptr< Trigger::UIState >)
 
void tempo_map_changed ()
 
int32_t active_scene () const
 
void begin_midi_learn (int index)
 
void midi_unlearn (int index)
 
void stop_midi_learn ()
 
void send_property_change (PBD::PropertyChange pc)
 
std::shared_ptr< MidiBufferget_gui_feed_buffer () const
 
void dump (std::ostream &) const
 
- Public Member Functions inherited from ARDOUR::Processor
 Processor (Session &, const std::string &name, Temporal::TimeDomainProvider const &)
 
 Processor (const Processor &other)
 
virtual ~Processor ()
 
virtual std::string display_name () const
 
virtual bool display_to_user () const
 
virtual void set_display_to_user (bool)
 
bool active () const
 ardour hard bypass More...
 
virtual bool enabled () const
 processor enabled/bypass More...
 
virtual bool bypassable () const
 enable is not automated or locked More...
 
virtual bool does_routing () const
 
bool get_next_ab_is_active () const
 
void set_next_ab_is_active (bool yn)
 
virtual samplecnt_t signal_latency () const
 
virtual void set_input_latency (samplecnt_t cnt)
 
samplecnt_t input_latency () const
 
virtual void set_output_latency (samplecnt_t cnt)
 
samplecnt_t output_latency () const
 
virtual void set_capture_offset (samplecnt_t cnt)
 
samplecnt_t capture_offset () const
 
virtual void set_playback_offset (samplecnt_t cnt)
 
samplecnt_t playback_offset () const
 
virtual int set_block_size (pframes_t)
 
virtual bool requires_fixed_sized_buffers () const
 
virtual void silence (samplecnt_t nframes, samplepos_t start_sample)
 
virtual void activate ()
 
virtual void deactivate ()
 
virtual void flush ()
 
virtual void enable (bool yn)
 
virtual ChanCount input_streams () const
 
virtual ChanCount output_streams () const
 
virtual void realtime_locate (bool)
 
virtual void set_loop (Location *loc)
 
virtual void monitoring_changed ()
 
virtual void set_pre_fader (bool)
 
virtual bool get_pre_fader () const
 
ProcessorWindowProxywindow_proxy () const
 
void set_window_proxy (ProcessorWindowProxy *wp)
 
PluginPinWindowProxypinmgr_proxy () const
 
void set_pingmgr_proxy (PluginPinWindowProxy *wp)
 
virtual void set_owner (SessionObject *)
 
SessionObjectowner () const
 
- Public Member Functions inherited from ARDOUR::SessionObject
 SessionObject (Session &session, const std::string &name)
 
Sessionsession () const
 
std::string name () const
 
virtual bool set_name (const std::string &str)
 
- Public Member Functions inherited from ARDOUR::SessionHandleRef
 SessionHandleRef (ARDOUR::Session &s)
 
virtual ~SessionHandleRef ()
 
- Public Member Functions inherited from PBD::ScopedConnectionList
 ScopedConnectionList ()
 
 ScopedConnectionList (const ScopedConnectionList &)=delete
 
ScopedConnectionListoperator= (const ScopedConnectionList &)=delete
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_change (PropertyBase const &)
 
PropertyChange apply_changes (PropertyList const &)
 
const OwnedPropertyListproperties () const
 
void add_property (PropertyBase &s)
 
void add_extra_xml (XMLNode &)
 
XMLNodeextra_xml (const std::string &str, bool add_if_missing=false)
 
void save_extra_xml (const XMLNode &)
 
const PBD::IDid () const
 
bool set_id (const XMLNode &)
 
void set_id (const std::string &)
 
void reset_id ()
 
void clear_changes ()
 
virtual void clear_owned_changes ()
 
PropertyListget_changes_as_properties (PBD::Command *) const
 
virtual void rdiff (std::vector< PBD::Command * > &) const
 
bool changed () const
 
virtual PropertyListproperty_factory (const XMLNode &) const
 
virtual void suspend_property_changes ()
 
virtual void resume_property_changes ()
 
bool property_changes_suspended () const
 
- Public Member Functions inherited from PBD::Destructible
virtual ~Destructible ()
 
virtual void drop_references ()
 
- Public Member Functions inherited from ARDOUR::Automatable
 Automatable (Session &, Temporal::TimeDomainProvider const &)
 
 Automatable (const Automatable &other)
 
virtual ~Automatable ()
 
virtual void automatables (PBD::ControllableSet &) const
 
std::shared_ptr< Evoral::Controlcontrol_factory (const Evoral::Parameter &id)
 
std::shared_ptr< AutomationControlautomation_control (PBD::ID const &id) const
 
virtual std::shared_ptr< AutomationControlautomation_control_recurse (PBD::ID const &id) const
 
std::shared_ptr< AutomationControlautomation_control (const Evoral::Parameter &id)
 
std::shared_ptr< AutomationControlautomation_control (const Evoral::Parameter &id, bool create_if_missing)
 
std::shared_ptr< const AutomationControlautomation_control (const Evoral::Parameter &id) const
 
virtual void add_control (std::shared_ptr< Evoral::Control >)
 
virtual bool find_next_event (Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev, bool only_active=true) const
 
void clear_controls ()
 
virtual void automation_run (samplepos_t, pframes_t, bool only_active=false)
 
virtual std::string describe_parameter (Evoral::Parameter param)
 
AutoState get_parameter_automation_state (Evoral::Parameter param)
 
virtual void set_parameter_automation_state (Evoral::Parameter param, AutoState)
 
void protect_automation ()
 
const std::set< Evoral::Parameter > & what_can_be_automated () const
 
std::vector< Evoral::Parameterall_automatable_params () const
 
void what_has_existing_automation (std::set< Evoral::Parameter > &) const
 
int set_automation_xml_state (const XMLNode &, Evoral::Parameter default_param)
 
XMLNodeget_automation_xml_state () const
 
void start_domain_bounce (Temporal::DomainBounceInfo &)
 
void finish_domain_bounce (Temporal::DomainBounceInfo &)
 
- Public Member Functions inherited from Evoral::ControlSet
 ControlSet ()
 
 ControlSet (const ControlSet &)
 
virtual ~ControlSet ()
 
std::shared_ptr< Controlcontrol (const Parameter &id, bool create_if_missing=false)
 
std::shared_ptr< const Controlcontrol (const Parameter &id) const
 
Controlscontrols ()
 
const Controlscontrols () const
 
virtual bool controls_empty () const
 
void what_has_data (std::set< Parameter > &) const
 
Glib::Threads::Mutex & control_lock () const
 
void start_domain_bounce (Temporal::DomainBounceInfo &)
 
void finish_domain_bounce (Temporal::DomainBounceInfo &)
 
- Public Member Functions inherited from Temporal::TimeDomainSwapper
virtual ~TimeDomainSwapper ()
 
- Public Member Functions inherited from ARDOUR::Slavable
 Slavable ()
 
virtual ~Slavable ()
 
XMLNodeget_state () const
 
int set_state (XMLNode const &, int)
 
virtual void assign (std::shared_ptr< VCA >)
 
void unassign (std::shared_ptr< VCA >)
 
std::vector< std::shared_ptr< VCA > > masters (VCAManager *) const
 
bool assigned_to (VCAManager *, std::shared_ptr< VCA >) const
 
- Public Member Functions inherited from Temporal::TimeDomainProvider
 TimeDomainProvider ()
 
 TimeDomainProvider (TimeDomain td)
 
 TimeDomainProvider (TimeDomain td, TimeDomainProvider const &p)
 
 TimeDomainProvider (TimeDomainProvider const &other)
 
 TimeDomainProvider (TimeDomainProvider const &parnt, bool)
 
virtual ~TimeDomainProvider ()
 
XMLNodeget_state () const
 
int set_state (const XMLNode &, int version)
 
TimeDomainProvideroperator= (TimeDomainProvider const &other)
 
TimeDomain time_domain () const
 
bool has_own_time_domain () const
 
void clear_time_domain ()
 
void set_time_domain (TimeDomain td)
 
TimeDomainProvider const * time_domain_parent () const
 
bool has_time_domain_parent () const
 
void clear_time_domain_parent ()
 
void set_time_domain_parent (TimeDomainProvider const &p)
 
virtual void time_domain_changed ()
 
- Public Member Functions inherited from ARDOUR::Latent
 Latent ()
 
 Latent (Latent const &)
 
virtual ~Latent ()
 
samplecnt_t effective_latency () const
 
samplecnt_t user_latency () const
 
void unset_user_latency ()
 
virtual void set_user_latency (samplecnt_t val)
 
- Public Member Functions inherited from ARDOUR::HasLatency
virtual ~HasLatency ()
 

Static Public Member Functions

static bool cue_recording ()
 
static void set_cue_recording (bool yn)
 
static bool lookup_custom_midi_binding (std::vector< uint8_t > const &, int &x, int &y)
 
static void add_custom_midi_binding (std::vector< uint8_t > const &, int x, int y)
 
static void remove_custom_midi_binding (int x, int y)
 
static void clear_custom_midi_bindings ()
 
static int save_custom_midi_bindings (std::string const &path)
 
static int load_custom_midi_bindings (XMLNode const &)
 
static XMLNodeget_custom_midi_binding_state ()
 
static Temporal::BBT_Offset assumed_trigger_duration ()
 
static void set_assumed_trigger_duration (Temporal::BBT_Offset const &)
 
static TriggerMidiMapMode midi_map_mode ()
 
static void set_midi_map_mode (TriggerMidiMapMode m)
 
static int first_midi_note ()
 
static void set_first_midi_note (int n)
 
static void init ()
 
static void static_init (Session &)
 
static void begin_process_cycle ()
 
static void start_transport_stop (Session &)
 
static PBD::PropertyChange all_trigger_props ()
 
- Static Public Member Functions inherited from ARDOUR::SessionObject
static void make_property_quarks ()
 
- Static Public Member Functions inherited from ARDOUR::Automatable
static void find_next_ac_event (std::shared_ptr< AutomationControl >, Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev)
 
static void find_prev_ac_event (std::shared_ptr< AutomationControl >, Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev)
 
- Static Public Member Functions inherited from ARDOUR::Latent
static void force_zero_latency (bool en)
 
static bool zero_latency ()
 

Public Attributes

PBD::Signal< void()> RecEnableChanged
 
PBD::Signal< void()> ArmedChanged
 
PBD::Signal< void()> EmptyStatusChanged
 
PBD::Signal< void(uint32_t)> TriggerSwapped
 
MidiStateTrackertracker
 
PBD::Signal< void(samplecnt_t)> Captured
 
- Public Attributes inherited from ARDOUR::Processor
PBD::Signal< void()> ActiveChanged
 
PBD::Signal< void()> BypassableChanged
 
PBD::Signal< void(ChanCount, ChanCount)> ConfigurationChanged
 
PBD::Signal< void()> ToggleUI
 
PBD::Signal< void()> ShowUI
 
PBD::Signal< void()> HideUI
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal< void(const PropertyChange &)> PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal< void()> Destroyed
 
PBD::Signal< void()> DropReferences
 
- Public Attributes inherited from ARDOUR::Automatable
PBD::Signal< void()> AutomationStateChanged
 
- Public Attributes inherited from ARDOUR::Slavable
PBD::Signal< void(std::shared_ptr< VCA >, bool)> AssignmentChange
 
- Public Attributes inherited from Temporal::TimeDomainProvider
PBD::Signal< void()> TimeDomainChanged
 
- Public Attributes inherited from ARDOUR::Latent
PBD::Signal< void()> LatencyChanged
 

Static Public Attributes

static const int32_t default_triggers_per_box = 16
 
static CueRecords cue_records
 
static PBD::Signal< void()> CueRecordingChanged
 
static PBD::Signal< void()> TriggerRecEnableChanged
 
static TriggerBoxThreadworker
 
static PBD::Signal< void(PBD::PropertyChange, int)> TriggerBoxPropertyChange
 
- Static Public Attributes inherited from ARDOUR::Processor
static const std::string state_node_name
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 
- Static Public Attributes inherited from ARDOUR::Automatable
static bool skip_saving_automation
 
static const std::string xml_node_name
 
- Static Public Attributes inherited from ARDOUR::Slavable
static std::string xml_node_name
 
static PBD::Signal< void(VCAManager *)> Assign
 
- Static Public Attributes inherited from ARDOUR::Latent
static PBD::Signal< void()> DisableSwitchChanged
 

Private Types

typedef std::vector< Trigger * > PendingTriggers
 
typedef PBD::RingBuffer< Request * > RequestBuffer
 
typedef std::map< std::vector< uint8_t >, std::pair< int, int > > CustomMidiMap
 

Private Member Functions

void maybe_capture (BufferSet &bufs, samplepos_t start_sample, samplepos_t end_sample, double speed, pframes_t nframes)
 
void finish_recording (BufferSet &bufs)
 
void set_armed (SlotArmInfo *)
 
void drop_triggers ()
 
void process_ui_trigger_requests ()
 
void process_midi_trigger_requests (BufferSet &)
 
int determine_next_trigger (uint32_t n)
 
void stop_all ()
 
void maybe_swap_pending (uint32_t)
 
void parameter_changed (std::string const &)
 
void process_requests (BufferSet &)
 
void process_request (BufferSet &, Request *)
 
void reload (BufferSet &bufs, int32_t slot, void *ptr)
 
void cancel_locate_armed ()
 
void fast_forward_nothing_to_do ()
 
int handle_stopped_trigger (BufferSet &bufs, pframes_t dest_offset)
 

Static Private Member Functions

static void static_parameter_changed (std::string const &)
 
static void midi_input_handler (MIDI::Parser &, MIDI::byte *, size_t, samplecnt_t)
 
static void input_port_check ()
 
static void init_pool ()
 
static void maybe_request_roll (Session &)
 

Private Attributes

DataType _data_type
 
int32_t _order
 
Glib::Threads::RWLock trigger_lock
 
Triggers all_triggers
 
PendingTriggers pending
 
PBD::RingBuffer< uint32_t > explicit_queue
 
TriggerPtr _currently_playing
 
Requests _requests
 
bool _stop_all
 
int32_t _active_scene
 
int32_t _active_slots
 
bool _locate_armed
 
bool _cancel_locate_armed
 
bool _fast_forwarding
 
RecordState _record_state
 
PBD::PCGRand _pcg
 
RequestBuffer requests
 
PBD::ScopedConnection stop_all_connection
 
std::atomic< SlotArmInfo * > _arm_info
 
EventRingBuffer< samplepos_t_gui_feed_fifo
 
Glib::Threads::Mutex _gui_feed_reset_mutex
 

Static Private Attributes

static Temporal::BBT_Offset _assumed_trigger_duration
 
static int _first_midi_note
 
static TriggerMidiMapMode _midi_map_mode
 
static CustomMidiMap _custom_midi_map
 
static std::shared_ptr< MIDI::Parserinput_parser
 
static PBD::ScopedConnection midi_input_connection
 
static PBD::ScopedConnectionList static_connections
 
static std::shared_ptr< MidiPortcurrent_input
 
static bool _learning
 
static std::pair< int, int > learning_for
 
static PBD::Signal< void()> TriggerMIDILearned
 
static std::atomic< int > active_trigger_boxes
 
static std::atomic< bool > _cue_recording
 
static bool roll_requested
 

Additional Inherited Members

- Protected Member Functions inherited from ARDOUR::Processor
virtual XMLNodestate () const
 
virtual int set_state_2X (const XMLNode &, int version)
 
bool check_active ()
 
bool map_loop_range (samplepos_t &start, samplepos_t &end) const
 
- Protected Member Functions inherited from ARDOUR::SessionHandleRef
virtual void session_going_away ()
 
virtual void insanity_check ()
 
- Protected Member Functions inherited from PBD::Stateful
void add_instant_xml (XMLNode &, const std::string &directory_path)
 
XMLNodeinstant_xml (const std::string &str, const std::string &directory_path)
 
void add_properties (XMLNode &) const
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 
bool regenerate_xml_or_string_ids () const
 
- Protected Member Functions inherited from ARDOUR::Automatable
void can_automate (Evoral::Parameter)
 
virtual void automation_list_automation_state_changed (Evoral::Parameter const &, AutoState)
 
int load_automation (const std::string &path)
 
int old_set_automation_state (const XMLNode &)
 
SlavableAutomationControlList slavables () const
 
- Protected Member Functions inherited from Evoral::ControlSet
virtual void control_list_marked_dirty ()
 
virtual void control_list_interpolation_changed (Parameter const &, ControlList::InterpolationStyle)
 
- Protected Member Functions inherited from Temporal::TimeDomainProvider
void listen ()
 
- Protected Member Functions inherited from ARDOUR::Latent
int set_state (const XMLNode &node, int version)
 
void add_state (XMLNode *) const
 
- Protected Attributes inherited from ARDOUR::Processor
int _pending_active
 
bool _active
 
bool _next_ab_is_active
 
bool _configured
 
ChanCount _configured_input
 
ChanCount _configured_output
 
bool _display_to_user
 
bool _pre_fader
 true if this processor is currently placed before the Amp, otherwise false More...
 
void * _ui_pointer
 
ProcessorWindowProxy_window_proxy
 
PluginPinWindowProxy_pinmgr_proxy
 
SessionObject_owner
 
samplecnt_t _input_latency
 
samplecnt_t _output_latency
 
samplecnt_t _capture_offset
 
samplecnt_t _playback_offset
 
Location_loop_location
 
- Protected Attributes inherited from ARDOUR::SessionObject
PBD::Property< std::string > _name
 
- Protected Attributes inherited from ARDOUR::SessionHandleRef
ARDOUR::Session_session
 
- Protected Attributes inherited from PBD::Stateful
XMLNode_extra_xml
 
XMLNode_instant_xml
 
PBD::PropertyChange _pending_changed
 
Glib::Threads::Mutex _lock
 
std::string _xml_node_name
 name of node to use for this object in XML More...
 
OwnedPropertyList_properties
 
- Protected Attributes inherited from ARDOUR::Automatable
Session_a_session
 
SerializedRCUManager< AutomationControlList_automated_controls
 
std::set< Evoral::Parameter_can_automate_list
 
samplepos_t _last_automation_snapshot
 
- Protected Attributes inherited from Evoral::ControlSet
Glib::Threads::Mutex _control_lock
 
Controls _controls
 
PBD::ScopedConnectionList _list_connections
 

Detailed Description

Definition at line 821 of file triggerbox.h.

Member Typedef Documentation

◆ CustomMidiMap

typedef std::map<std::vector<uint8_t>,std::pair<int,int> > ARDOUR::TriggerBox::CustomMidiMap
private

Definition at line 1072 of file triggerbox.h.

◆ PendingTriggers

typedef std::vector<Trigger*> ARDOUR::TriggerBox::PendingTriggers
private

Definition at line 990 of file triggerbox.h.

◆ RequestBuffer

Definition at line 1051 of file triggerbox.h.

◆ Triggers

Definition at line 861 of file triggerbox.h.

Member Enumeration Documentation

◆ TriggerMidiMapMode

Enumerator
AbletonPush 
SequentialNote 
ByMidiChannel 
Custom 

Definition at line 926 of file triggerbox.h.

Constructor & Destructor Documentation

◆ TriggerBox()

ARDOUR::TriggerBox::TriggerBox ( Session ,
DataType  dt 
)

◆ ~TriggerBox()

ARDOUR::TriggerBox::~TriggerBox ( )

Member Function Documentation

◆ active_scene()

int32_t ARDOUR::TriggerBox::active_scene ( ) const
inline

Definition at line 922 of file triggerbox.h.

◆ add_custom_midi_binding()

static void ARDOUR::TriggerBox::add_custom_midi_binding ( std::vector< uint8_t > const &  ,
int  x,
int  y 
)
static

◆ add_trigger()

void ARDOUR::TriggerBox::add_trigger ( TriggerPtr  )

◆ all_trigger_props()

static PBD::PropertyChange ARDOUR::TriggerBox::all_trigger_props ( )
static

◆ arm_from_another_thread()

void ARDOUR::TriggerBox::arm_from_another_thread ( Trigger slot,
samplepos_t  ,
uint32_t  chans 
)

◆ armed()

bool ARDOUR::TriggerBox::armed ( ) const
inline

Definition at line 847 of file triggerbox.h.

◆ assumed_trigger_duration()

static Temporal::BBT_Offset ARDOUR::TriggerBox::assumed_trigger_duration ( )
inlinestatic

Definition at line 948 of file triggerbox.h.

◆ bang_trigger_at()

void ARDOUR::TriggerBox::bang_trigger_at ( Triggers::size_type  row,
float  velocity = 1.0f 
)

◆ begin_midi_learn()

void ARDOUR::TriggerBox::begin_midi_learn ( int  index)

◆ begin_process_cycle()

static void ARDOUR::TriggerBox::begin_process_cycle ( )
static

◆ can_support_io_configuration()

bool ARDOUR::TriggerBox::can_support_io_configuration ( const ChanCount in,
ChanCount out 
)
virtual

Implements ARDOUR::Processor.

◆ cancel_locate_armed()

void ARDOUR::TriggerBox::cancel_locate_armed ( )
private

◆ clear_all_triggers()

void ARDOUR::TriggerBox::clear_all_triggers ( )

◆ clear_cue()

void ARDOUR::TriggerBox::clear_cue ( int  cue)

◆ clear_custom_midi_bindings()

static void ARDOUR::TriggerBox::clear_custom_midi_bindings ( )
static

◆ configure_io()

bool ARDOUR::TriggerBox::configure_io ( ChanCount  in,
ChanCount  out 
)
virtual

Reimplemented from ARDOUR::Processor.

◆ cue_recording()

static bool ARDOUR::TriggerBox::cue_recording ( )
inlinestatic

Definition at line 835 of file triggerbox.h.

◆ currently_playing()

TriggerPtr ARDOUR::TriggerBox::currently_playing ( ) const
inline

Definition at line 889 of file triggerbox.h.

◆ data_type()

DataType ARDOUR::TriggerBox::data_type ( ) const
inline

Definition at line 884 of file triggerbox.h.

◆ deep_sources()

void ARDOUR::TriggerBox::deep_sources ( std::set< std::shared_ptr< Source >> &  )

◆ determine_next_trigger()

int ARDOUR::TriggerBox::determine_next_trigger ( uint32_t  n)
private

◆ disarm()

void ARDOUR::TriggerBox::disarm ( )

◆ disarm_all()

void ARDOUR::TriggerBox::disarm_all ( )

◆ drop_triggers()

void ARDOUR::TriggerBox::drop_triggers ( )
private

◆ dump()

void ARDOUR::TriggerBox::dump ( std::ostream &  ) const

◆ empty()

bool ARDOUR::TriggerBox::empty ( ) const
inline

Definition at line 855 of file triggerbox.h.

◆ enqueue_trigger_state_for_region()

void ARDOUR::TriggerBox::enqueue_trigger_state_for_region ( std::shared_ptr< Region ,
std::shared_ptr< Trigger::UIState  
)

◆ fast_forward()

void ARDOUR::TriggerBox::fast_forward ( CueEvents const &  ,
samplepos_t  transport_postiion 
)

◆ fast_forward_nothing_to_do()

void ARDOUR::TriggerBox::fast_forward_nothing_to_do ( )
private

◆ fast_forwarding()

bool ARDOUR::TriggerBox::fast_forwarding ( ) const
inline

Definition at line 871 of file triggerbox.h.

◆ finish_recording()

void ARDOUR::TriggerBox::finish_recording ( BufferSet bufs)
private

◆ first_midi_note()

static int ARDOUR::TriggerBox::first_midi_note ( )
inlinestatic

Definition at line 954 of file triggerbox.h.

◆ get_custom_midi_binding_state()

static XMLNode* ARDOUR::TriggerBox::get_custom_midi_binding_state ( )
static

◆ get_gui_feed_buffer()

std::shared_ptr<MidiBuffer> ARDOUR::TriggerBox::get_gui_feed_buffer ( ) const

◆ get_next_trigger()

TriggerPtr ARDOUR::TriggerBox::get_next_trigger ( )

◆ get_state()

XMLNode& ARDOUR::TriggerBox::get_state ( ) const
virtual

Reimplemented from ARDOUR::Processor.

◆ handle_stopped_trigger()

int ARDOUR::TriggerBox::handle_stopped_trigger ( BufferSet bufs,
pframes_t  dest_offset 
)
private

◆ init()

static void ARDOUR::TriggerBox::init ( )
static

◆ init_pool()

static void ARDOUR::TriggerBox::init_pool ( )
staticprivate

◆ input_port_check()

static void ARDOUR::TriggerBox::input_port_check ( )
staticprivate

◆ load_custom_midi_bindings()

static int ARDOUR::TriggerBox::load_custom_midi_bindings ( XMLNode const &  )
static

◆ lookup_custom_midi_binding()

static bool ARDOUR::TriggerBox::lookup_custom_midi_binding ( std::vector< uint8_t > const &  ,
int &  x,
int &  y 
)
static

◆ maybe_capture()

void ARDOUR::TriggerBox::maybe_capture ( BufferSet bufs,
samplepos_t  start_sample,
samplepos_t  end_sample,
double  speed,
pframes_t  nframes 
)
private

◆ maybe_request_roll()

static void ARDOUR::TriggerBox::maybe_request_roll ( Session )
staticprivate

◆ maybe_swap_pending()

void ARDOUR::TriggerBox::maybe_swap_pending ( uint32_t  )
private

◆ midi_input_handler()

static void ARDOUR::TriggerBox::midi_input_handler ( MIDI::Parser ,
MIDI::byte ,
size_t  ,
samplecnt_t   
)
staticprivate

◆ midi_map_mode()

static TriggerMidiMapMode ARDOUR::TriggerBox::midi_map_mode ( )
inlinestatic

Definition at line 951 of file triggerbox.h.

◆ midi_unlearn()

void ARDOUR::TriggerBox::midi_unlearn ( int  index)

◆ non_realtime_locate()

void ARDOUR::TriggerBox::non_realtime_locate ( samplepos_t  now)
virtual

Reimplemented from ARDOUR::Automatable.

◆ non_realtime_transport_stop()

void ARDOUR::TriggerBox::non_realtime_transport_stop ( samplepos_t  now,
bool  flush 
)
virtual

Reimplemented from ARDOUR::Automatable.

◆ order()

int32_t ARDOUR::TriggerBox::order ( ) const
inline

Definition at line 858 of file triggerbox.h.

◆ parameter_changed()

void ARDOUR::TriggerBox::parameter_changed ( std::string const &  )
private

◆ peek_next_trigger()

TriggerPtr ARDOUR::TriggerBox::peek_next_trigger ( )

◆ position_as_fraction()

double ARDOUR::TriggerBox::position_as_fraction ( ) const

◆ process_midi_trigger_requests()

void ARDOUR::TriggerBox::process_midi_trigger_requests ( BufferSet )
private

◆ process_request()

void ARDOUR::TriggerBox::process_request ( BufferSet ,
Request  
)
private

◆ process_requests()

void ARDOUR::TriggerBox::process_requests ( BufferSet )
private

◆ process_ui_trigger_requests()

void ARDOUR::TriggerBox::process_ui_trigger_requests ( )
private

◆ queue_explict()

void ARDOUR::TriggerBox::queue_explict ( uint32_t  )

◆ realtime_handle_transport_stopped()

void ARDOUR::TriggerBox::realtime_handle_transport_stopped ( )
virtual

Reimplemented from ARDOUR::Processor.

◆ record_enabled()

RecordState ARDOUR::TriggerBox::record_enabled ( ) const
inline

Definition at line 840 of file triggerbox.h.

◆ reload()

void ARDOUR::TriggerBox::reload ( BufferSet bufs,
int32_t  slot,
void *  ptr 
)
private

◆ remove_custom_midi_binding()

static void ARDOUR::TriggerBox::remove_custom_midi_binding ( int  x,
int  y 
)
static

◆ request_reload()

void ARDOUR::TriggerBox::request_reload ( int32_t  slot,
void *   
)

◆ run()

void ARDOUR::TriggerBox::run ( BufferSet bufs,
samplepos_t  start_sample,
samplepos_t  end_sample,
double  speed,
pframes_t  nframes,
bool  result_required 
)
virtual

The main process function for processors

Parameters
bufsbufferset of data to process in-place
start_sampleabsolute timeline position in audio-samples to commence processing (latency compensated)
end_sampleabsolute timeline position in audio-samples, usually start_sample +/- nframes
speedtransport speed. usually -1, 0, +1
nframesnumber of audio samples to process
result_requiredtrue if, on return from this method, bufs is required to contain valid data; if false, the method need not bother writing to bufs if it doesn't want to.

Reimplemented from ARDOUR::Processor.

◆ run_cycle()

void ARDOUR::TriggerBox::run_cycle ( BufferSet bufs,
samplepos_t  start_sample,
samplepos_t  end_sample,
double  speed,
pframes_t  nframes 
)

◆ save_custom_midi_bindings()

static int ARDOUR::TriggerBox::save_custom_midi_bindings ( std::string const &  path)
static

◆ send_property_change()

void ARDOUR::TriggerBox::send_property_change ( PBD::PropertyChange  pc)

◆ set_all_follow_action()

void ARDOUR::TriggerBox::set_all_follow_action ( ARDOUR::FollowAction const &  ,
uint32_t  n = 0 
)

◆ set_all_launch_style()

void ARDOUR::TriggerBox::set_all_launch_style ( ARDOUR::Trigger::LaunchStyle  )

◆ set_all_probability()

void ARDOUR::TriggerBox::set_all_probability ( int  zero_to_a_hundred)

◆ set_all_quantization()

void ARDOUR::TriggerBox::set_all_quantization ( Temporal::BBT_Offset const &  )

◆ set_armed()

void ARDOUR::TriggerBox::set_armed ( SlotArmInfo )
private

◆ set_assumed_trigger_duration()

static void ARDOUR::TriggerBox::set_assumed_trigger_duration ( Temporal::BBT_Offset const &  )
static

◆ set_cue_recording()

static void ARDOUR::TriggerBox::set_cue_recording ( bool  yn)
static

◆ set_first_midi_note()

static void ARDOUR::TriggerBox::set_first_midi_note ( int  n)
static

◆ set_from_path()

void ARDOUR::TriggerBox::set_from_path ( uint32_t  slot,
std::string const &  path 
)

◆ set_from_selection()

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

◆ set_midi_map_mode()

static void ARDOUR::TriggerBox::set_midi_map_mode ( TriggerMidiMapMode  m)
static

◆ set_order()

void ARDOUR::TriggerBox::set_order ( int32_t  n)

◆ set_pending()

void ARDOUR::TriggerBox::set_pending ( uint32_t  slot,
Trigger  
)

◆ set_record_enabled()

void ARDOUR::TriggerBox::set_record_enabled ( bool  yn)

◆ set_region()

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

◆ set_state()

int ARDOUR::TriggerBox::set_state ( const XMLNode ,
int  version 
)
virtual

Reimplemented from ARDOUR::Processor.

◆ start_transport_stop()

static void ARDOUR::TriggerBox::start_transport_stop ( Session )
static

◆ static_init()

static void ARDOUR::TriggerBox::static_init ( Session )
static

◆ static_parameter_changed()

static void ARDOUR::TriggerBox::static_parameter_changed ( std::string const &  )
staticprivate

◆ stop_all()

void ARDOUR::TriggerBox::stop_all ( )
private

◆ stop_all_immediately()

void ARDOUR::TriggerBox::stop_all_immediately ( )

◆ stop_all_quantized()

void ARDOUR::TriggerBox::stop_all_quantized ( )

◆ stop_midi_learn()

void ARDOUR::TriggerBox::stop_midi_learn ( )

◆ tempo_map_changed()

void ARDOUR::TriggerBox::tempo_map_changed ( )

◆ trigger()

TriggerPtr ARDOUR::TriggerBox::trigger ( Triggers::size_type  )

◆ trigger_by_id()

TriggerPtr ARDOUR::TriggerBox::trigger_by_id ( PBD::ID  )

◆ unbang_trigger_at()

void ARDOUR::TriggerBox::unbang_trigger_at ( Triggers::size_type  row)

◆ used_regions()

void ARDOUR::TriggerBox::used_regions ( std::set< std::shared_ptr< Region >> &  )

Member Data Documentation

◆ _active_scene

int32_t ARDOUR::TriggerBox::_active_scene
private

Definition at line 997 of file triggerbox.h.

◆ _active_slots

int32_t ARDOUR::TriggerBox::_active_slots
private

Definition at line 998 of file triggerbox.h.

◆ _arm_info

std::atomic<SlotArmInfo*> ARDOUR::TriggerBox::_arm_info
private

Definition at line 1064 of file triggerbox.h.

◆ _assumed_trigger_duration

Temporal::BBT_Offset ARDOUR::TriggerBox::_assumed_trigger_duration
staticprivate

Definition at line 983 of file triggerbox.h.

◆ _cancel_locate_armed

bool ARDOUR::TriggerBox::_cancel_locate_armed
private

Definition at line 1000 of file triggerbox.h.

◆ _cue_recording

std::atomic<bool> ARDOUR::TriggerBox::_cue_recording
staticprivate

Definition at line 1089 of file triggerbox.h.

◆ _currently_playing

TriggerPtr ARDOUR::TriggerBox::_currently_playing
private

Definition at line 994 of file triggerbox.h.

◆ _custom_midi_map

CustomMidiMap ARDOUR::TriggerBox::_custom_midi_map
staticprivate

Definition at line 1073 of file triggerbox.h.

◆ _data_type

DataType ARDOUR::TriggerBox::_data_type
private

Definition at line 985 of file triggerbox.h.

◆ _fast_forwarding

bool ARDOUR::TriggerBox::_fast_forwarding
private

Definition at line 1001 of file triggerbox.h.

◆ _first_midi_note

int ARDOUR::TriggerBox::_first_midi_note
staticprivate

Definition at line 1023 of file triggerbox.h.

◆ _gui_feed_fifo

EventRingBuffer<samplepos_t> ARDOUR::TriggerBox::_gui_feed_fifo
mutableprivate

A buffer that we use to put newly-arrived MIDI data in for the GUI to read (so that it can update itself).

Definition at line 1069 of file triggerbox.h.

◆ _gui_feed_reset_mutex

Glib::Threads::Mutex ARDOUR::TriggerBox::_gui_feed_reset_mutex
mutableprivate

Definition at line 1070 of file triggerbox.h.

◆ _learning

bool ARDOUR::TriggerBox::_learning
staticprivate

Definition at line 1082 of file triggerbox.h.

◆ _locate_armed

bool ARDOUR::TriggerBox::_locate_armed
private

Definition at line 999 of file triggerbox.h.

◆ _midi_map_mode

TriggerMidiMapMode ARDOUR::TriggerBox::_midi_map_mode
staticprivate

Definition at line 1024 of file triggerbox.h.

◆ _order

int32_t ARDOUR::TriggerBox::_order
private

Definition at line 986 of file triggerbox.h.

◆ _pcg

PBD::PCGRand ARDOUR::TriggerBox::_pcg
private

Definition at line 1004 of file triggerbox.h.

◆ _record_state

RecordState ARDOUR::TriggerBox::_record_state
private

Definition at line 1002 of file triggerbox.h.

◆ _requests

Requests ARDOUR::TriggerBox::_requests
private

Definition at line 995 of file triggerbox.h.

◆ _stop_all

bool ARDOUR::TriggerBox::_stop_all
private

Definition at line 996 of file triggerbox.h.

◆ active_trigger_boxes

std::atomic<int> ARDOUR::TriggerBox::active_trigger_boxes
staticprivate

Definition at line 1088 of file triggerbox.h.

◆ all_triggers

Triggers ARDOUR::TriggerBox::all_triggers
private

Definition at line 988 of file triggerbox.h.

◆ ArmedChanged

PBD::Signal<void()> ARDOUR::TriggerBox::ArmedChanged

Definition at line 848 of file triggerbox.h.

◆ Captured

PBD::Signal<void(samplecnt_t)> ARDOUR::TriggerBox::Captured

Definition at line 974 of file triggerbox.h.

◆ cue_records

CueRecords ARDOUR::TriggerBox::cue_records
static

Definition at line 834 of file triggerbox.h.

◆ CueRecordingChanged

PBD::Signal<void()> ARDOUR::TriggerBox::CueRecordingChanged
static

Definition at line 837 of file triggerbox.h.

◆ current_input

std::shared_ptr<MidiPort> ARDOUR::TriggerBox::current_input
staticprivate

Definition at line 1080 of file triggerbox.h.

◆ default_triggers_per_box

const int32_t ARDOUR::TriggerBox::default_triggers_per_box = 16
static

Definition at line 828 of file triggerbox.h.

◆ EmptyStatusChanged

PBD::Signal<void()> ARDOUR::TriggerBox::EmptyStatusChanged

Definition at line 856 of file triggerbox.h.

◆ explicit_queue

PBD::RingBuffer<uint32_t> ARDOUR::TriggerBox::explicit_queue
private

Definition at line 993 of file triggerbox.h.

◆ input_parser

std::shared_ptr<MIDI::Parser> ARDOUR::TriggerBox::input_parser
staticprivate

Definition at line 1076 of file triggerbox.h.

◆ learning_for

std::pair<int,int> ARDOUR::TriggerBox::learning_for
staticprivate

Definition at line 1083 of file triggerbox.h.

◆ midi_input_connection

PBD::ScopedConnection ARDOUR::TriggerBox::midi_input_connection
staticprivate

Definition at line 1077 of file triggerbox.h.

◆ pending

PendingTriggers ARDOUR::TriggerBox::pending
private

Definition at line 991 of file triggerbox.h.

◆ RecEnableChanged

PBD::Signal<void()> ARDOUR::TriggerBox::RecEnableChanged

Definition at line 841 of file triggerbox.h.

◆ requests

RequestBuffer ARDOUR::TriggerBox::requests
private

Definition at line 1052 of file triggerbox.h.

◆ roll_requested

bool ARDOUR::TriggerBox::roll_requested
staticprivate

Definition at line 1090 of file triggerbox.h.

◆ static_connections

PBD::ScopedConnectionList ARDOUR::TriggerBox::static_connections
staticprivate

Definition at line 1079 of file triggerbox.h.

◆ stop_all_connection

PBD::ScopedConnection ARDOUR::TriggerBox::stop_all_connection
private

Definition at line 1063 of file triggerbox.h.

◆ tracker

MidiStateTracker* ARDOUR::TriggerBox::tracker

Definition at line 934 of file triggerbox.h.

◆ trigger_lock

Glib::Threads::RWLock ARDOUR::TriggerBox::trigger_lock
mutableprivate

Definition at line 987 of file triggerbox.h.

◆ TriggerBoxPropertyChange

PBD::Signal<void(PBD::PropertyChange,int)> ARDOUR::TriggerBox::TriggerBoxPropertyChange
static

Definition at line 968 of file triggerbox.h.

◆ TriggerMIDILearned

PBD::Signal<void()> ARDOUR::TriggerBox::TriggerMIDILearned
staticprivate

Definition at line 1084 of file triggerbox.h.

◆ TriggerRecEnableChanged

PBD::Signal<void()> ARDOUR::TriggerBox::TriggerRecEnableChanged
static

Definition at line 842 of file triggerbox.h.

◆ TriggerSwapped

PBD::Signal<void(uint32_t)> ARDOUR::TriggerBox::TriggerSwapped

Definition at line 924 of file triggerbox.h.

◆ worker

TriggerBoxThread* ARDOUR::TriggerBox::worker
static

Definition at line 961 of file triggerbox.h.


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