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

#include <selection.h>

Inheritance diagram for ARDOUR::CoreSelection:
[legend]

Classes

struct  SelectedStripable
 
struct  StripableAutomationControl
 

Public Types

typedef std::vector< StripableAutomationControlStripableAutomationControls
 

Public Member Functions

 CoreSelection (Session &s)
 
 ~CoreSelection ()
 
bool select_stripable_and_maybe_group (std::shared_ptr< Stripable > s, SelectionOperation op, bool with_group=true, bool routes_only=true, RouteGroup *=nullptr)
 
void select_stripable_with_control (std::shared_ptr< Stripable > s, std::shared_ptr< AutomationControl >, SelectionOperation)
 
void select_next_stripable (bool mixer_order, bool routes_only)
 
void select_prev_stripable (bool mixer_order, bool routes_only)
 
void clear_stripables ()
 
std::shared_ptr< Stripablefirst_selected_stripable () const
 
bool selected (std::shared_ptr< const Stripable >) const
 
bool selected (std::shared_ptr< const AutomationControl >) const
 
uint32_t selected () const
 
void get_stripables (StripableAutomationControls &) const
 
void get_stripables_for_op (StripableList &, std::shared_ptr< Stripable > base, bool(RouteGroup::*group_predicate)() const) const
 
void get_stripables_for_op (std::shared_ptr< StripableList >, std::shared_ptr< Stripable > base, bool(RouteGroup::*group_predicate)() const) const
 
XMLNodeget_state () const
 
int set_state (const XMLNode &, int version)
 
- 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
 

Protected Member Functions

void remove_control_by_id (PBD::ID const &)
 
void remove_stripable_by_id (PBD::ID const &)
 
- 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
 

Private Types

typedef std::set< SelectedStripableSelectedStripables
 

Private Member Functions

void send_selection_change ()
 
template<typename IterTypeCore >
void select_adjacent_stripable (bool mixer_order, bool routes_only, IterTypeCore(StripableList::*begin_method)(), IterTypeCore(StripableList::*end_method)())
 
bool toggle (StripableList &, std::shared_ptr< AutomationControl >)
 
bool add (StripableList &, std::shared_ptr< AutomationControl >)
 
bool remove (StripableList &, std::shared_ptr< AutomationControl >)
 
bool set (StripableList &, std::shared_ptr< AutomationControl >, std::vector< std::shared_ptr< Stripable > > &)
 
bool do_select (std::shared_ptr< Stripable > s, std::shared_ptr< AutomationControl > c, SelectionOperation op, bool with_group, bool routes_only, RouteGroup *not_allowed_in_group)
 

Private Attributes

Glib::Threads::RWLock _lock
 
std::atomic< int > _selection_order
 
Sessionsession
 
std::weak_ptr< ARDOUR::Stripable_first_selected_stripable
 
SelectedStripables _stripables
 

Friends

class AutomationControl
 
class Stripable
 
class Session
 
class VCAManager
 

Additional Inherited Members

- Public Attributes inherited from PBD::Stateful
PBD::Signal< void(const PropertyChange &)> PropertyChanged
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 
- 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
 

Detailed Description

Definition at line 40 of file libs/ardour/ardour/selection.h.

Member Typedef Documentation

◆ SelectedStripables

◆ StripableAutomationControls

Constructor & Destructor Documentation

◆ CoreSelection()

ARDOUR::CoreSelection::CoreSelection ( Session s)

◆ ~CoreSelection()

ARDOUR::CoreSelection::~CoreSelection ( )

Member Function Documentation

◆ add()

bool ARDOUR::CoreSelection::add ( StripableList ,
std::shared_ptr< AutomationControl  
)
private

◆ clear_stripables()

void ARDOUR::CoreSelection::clear_stripables ( )

◆ do_select()

bool ARDOUR::CoreSelection::do_select ( std::shared_ptr< Stripable s,
std::shared_ptr< AutomationControl c,
SelectionOperation  op,
bool  with_group,
bool  routes_only,
RouteGroup not_allowed_in_group 
)
private

◆ first_selected_stripable()

std::shared_ptr<Stripable> ARDOUR::CoreSelection::first_selected_stripable ( ) const

◆ get_state()

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

Implements PBD::Stateful.

◆ get_stripables()

void ARDOUR::CoreSelection::get_stripables ( StripableAutomationControls ) const

◆ get_stripables_for_op() [1/2]

void ARDOUR::CoreSelection::get_stripables_for_op ( std::shared_ptr< StripableList ,
std::shared_ptr< Stripable base,
bool(RouteGroup::*)() const  group_predicate 
) const

◆ get_stripables_for_op() [2/2]

void ARDOUR::CoreSelection::get_stripables_for_op ( StripableList ,
std::shared_ptr< Stripable base,
bool(RouteGroup::*)() const  group_predicate 
) const

◆ remove()

bool ARDOUR::CoreSelection::remove ( StripableList ,
std::shared_ptr< AutomationControl  
)
private

◆ remove_control_by_id()

void ARDOUR::CoreSelection::remove_control_by_id ( PBD::ID const &  )
protected

◆ remove_stripable_by_id()

void ARDOUR::CoreSelection::remove_stripable_by_id ( PBD::ID const &  )
protected

◆ select_adjacent_stripable()

template<typename IterTypeCore >
void ARDOUR::CoreSelection::select_adjacent_stripable ( bool  mixer_order,
bool  routes_only,
IterTypeCore(StripableList::*)()  begin_method,
IterTypeCore(StripableList::*)()  end_method 
)
private

◆ select_next_stripable()

void ARDOUR::CoreSelection::select_next_stripable ( bool  mixer_order,
bool  routes_only 
)

◆ select_prev_stripable()

void ARDOUR::CoreSelection::select_prev_stripable ( bool  mixer_order,
bool  routes_only 
)

◆ select_stripable_and_maybe_group()

bool ARDOUR::CoreSelection::select_stripable_and_maybe_group ( std::shared_ptr< Stripable s,
SelectionOperation  op,
bool  with_group = true,
bool  routes_only = true,
RouteGroup = nullptr 
)

◆ select_stripable_with_control()

void ARDOUR::CoreSelection::select_stripable_with_control ( std::shared_ptr< Stripable s,
std::shared_ptr< AutomationControl ,
SelectionOperation   
)

◆ selected() [1/3]

uint32_t ARDOUR::CoreSelection::selected ( ) const

◆ selected() [2/3]

bool ARDOUR::CoreSelection::selected ( std::shared_ptr< const AutomationControl ) const

◆ selected() [3/3]

bool ARDOUR::CoreSelection::selected ( std::shared_ptr< const Stripable ) const

◆ send_selection_change()

void ARDOUR::CoreSelection::send_selection_change ( )
private

◆ set()

bool ARDOUR::CoreSelection::set ( StripableList ,
std::shared_ptr< AutomationControl ,
std::vector< std::shared_ptr< Stripable > > &   
)
private

◆ set_state()

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

Implements PBD::Stateful.

◆ toggle()

bool ARDOUR::CoreSelection::toggle ( StripableList ,
std::shared_ptr< AutomationControl  
)
private

Friends And Related Function Documentation

◆ AutomationControl

friend class AutomationControl
friend

Definition at line 78 of file libs/ardour/ardour/selection.h.

◆ Session

friend class Session
friend

Definition at line 83 of file libs/ardour/ardour/selection.h.

◆ Stripable

friend class Stripable
friend

Definition at line 82 of file libs/ardour/ardour/selection.h.

◆ VCAManager

friend class VCAManager
friend

Definition at line 84 of file libs/ardour/ardour/selection.h.

Member Data Documentation

◆ _first_selected_stripable

std::weak_ptr<ARDOUR::Stripable> ARDOUR::CoreSelection::_first_selected_stripable
private

Definition at line 112 of file libs/ardour/ardour/selection.h.

◆ _lock

Glib::Threads::RWLock ARDOUR::CoreSelection::_lock
mutableprivate

Definition at line 88 of file libs/ardour/ardour/selection.h.

◆ _selection_order

std::atomic<int> ARDOUR::CoreSelection::_selection_order
private

Definition at line 89 of file libs/ardour/ardour/selection.h.

◆ _stripables

SelectedStripables ARDOUR::CoreSelection::_stripables
private

Definition at line 114 of file libs/ardour/ardour/selection.h.

◆ session

Session& ARDOUR::CoreSelection::session
private

Definition at line 91 of file libs/ardour/ardour/selection.h.


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