Ardour  9.0-pre0-822-g12e3bc5c20
PluginPinWidget Class Reference

#include <plugin_pin_dialog.h>

Inheritance diagram for PluginPinWidget:
[legend]

Classes

struct  _CtrlElem
 
class  Control
 
struct  CtrlWidget
 

Public Member Functions

 PluginPinWidget (std::shared_ptr< ARDOUR::PluginInsert >)
 
 ~PluginPinWidget ()
 
void set_session (ARDOUR::Session *)
 
- Public Member Functions inherited from ARDOUR::SessionHandlePtr
 SessionHandlePtr (ARDOUR::Session *s)
 
 SessionHandlePtr ()
 
virtual ~SessionHandlePtr ()
 
virtual ARDOUR::Sessionsession () const
 

Private Types

enum  CtrlType { Input , Sink , Source , Output }
 
enum  ClearMode { DisconnectIn = 1 , DisconnectOut = 2 , DisconnectAll = 3 }
 
typedef std::shared_ptr< _CtrlElemCtrlElem
 
typedef std::vector< CtrlWidgetCtrlElemList
 
typedef std::map< uint32_t, ARDOUR::ChanMappingMappings
 

Private Member Functions

void plugin_reconfigured ()
 
void update_element_pos ()
 
void refill_sidechain_table ()
 
void refill_output_presets ()
 
void darea_size_request (Gtk::Requisition *)
 
void darea_size_allocate (Gtk::Allocation &)
 
bool darea_expose_event (GdkEventExpose *)
 
bool darea_motion_notify_event (GdkEventMotion *)
 
bool darea_button_press_event (GdkEventButton *)
 
bool darea_button_release_event (GdkEventButton *)
 
bool drag_type_matches (const CtrlElem &ct)
 
void start_drag (const CtrlElem &, double, double)
 
void draw_io_pin (cairo_t *, const CtrlWidget &) const
 
void draw_plugin_pin (cairo_t *, const CtrlWidget &)
 
void draw_plugin_bus (cairo_t *, const CtrlWidget &, const CtrlWidget &) const
 
void set_color (cairo_t *, bool) const
 
double pin_x_pos (uint32_t, double, double, uint32_t, uint32_t, bool)
 
void draw_connection (cairo_t *, double, double, double, double, bool, bool, bool dashed=false) const
 
void draw_connection (cairo_t *, const CtrlWidget &, const CtrlWidget &, bool dashed=false) const
 
void draw_bus_groups (cairo_t *, const CtrlType) const
 
const CtrlWidgetget_io_ctrl (CtrlType ct, ARDOUR::DataType dt, uint32_t id, uint32_t ip=0) const
 
void reset_mapping ()
 
void clear_mapping (ClearMode)
 
void reset_configuration ()
 
void toggle_sidechain ()
 
void connect_sidechain ()
 
void add_remove_plugin_clicked (bool)
 
void add_remove_port_clicked (bool, ARDOUR::DataType)
 
void add_remove_inpin_clicked (bool, ARDOUR::DataType)
 
void add_sidechain_port (ARDOUR::DataType)
 
void select_output_preset (uint32_t n_audio)
 
void handle_input_action (const CtrlElem &, const CtrlElem &)
 
void handle_output_action (const CtrlElem &, const CtrlElem &)
 
void handle_thru_action (const CtrlElem &, const CtrlElem &)
 
bool handle_disconnect (const CtrlElem &, bool no_signal=false)
 
void disconnect_other_outputs (uint32_t skip_pc, ARDOUR::DataType dt, uint32_t id)
 
void disconnect_other_thru (ARDOUR::DataType dt, uint32_t id)
 
void remove_port (std::weak_ptr< ARDOUR::Port >)
 
void disconnect_port (std::weak_ptr< ARDOUR::Port >)
 
void connect_port (std::weak_ptr< ARDOUR::Port >, std::weak_ptr< ARDOUR::Port >)
 
void add_send_from (std::weak_ptr< ARDOUR::Port >, std::weak_ptr< ARDOUR::Route >)
 
uint32_t add_port_to_table (std::shared_ptr< ARDOUR::Port >, uint32_t, bool)
 
uint32_t maybe_add_route_to_input_menu (std::shared_ptr< ARDOUR::Route >, ARDOUR::DataType, std::weak_ptr< ARDOUR::Port >)
 
void port_connected_or_disconnected (std::weak_ptr< ARDOUR::Port >, std::weak_ptr< ARDOUR::Port >)
 
void port_pretty_name_changed (std::string)
 
void property_changed (PBD::PropertyChange const &)
 
bool sc_input_press (GdkEventButton *, std::weak_ptr< ARDOUR::Port >)
 
bool sc_input_release (GdkEventButton *)
 
void queue_idle_update ()
 
bool idle_update ()
 
void error_message_dialog (std::string const &) const
 
ARDOUR::Route_route ()
 

Static Private Member Functions

static void edge_coordinates (const CtrlWidget &w, double &x, double &y)
 
static std::string port_label (const std::string &, bool)
 

Private Attributes

CtrlElem _selection
 
CtrlElem _actor
 
CtrlElem _hover
 
CtrlElemList _elements
 
CtrlElem _drag_dst
 
Mappings _in_map
 
Mappings _out_map
 
ARDOUR::ChanMapping _thru_map
 
bool _has_midi_bypass
 
Gtk::DrawingArea darea
 
ArdourWidgets::ArdourButton _set_config
 
ArdourWidgets::ArdourButton _tgl_sidechain
 
ArdourWidgets::ArdourButton _add_plugin
 
ArdourWidgets::ArdourButton _del_plugin
 
ArdourWidgets::ArdourButton _add_input_audio
 
ArdourWidgets::ArdourButton _del_input_audio
 
ArdourWidgets::ArdourButton _add_input_midi
 
ArdourWidgets::ArdourButton _del_input_midi
 
ArdourWidgets::ArdourButton _add_output_audio
 
ArdourWidgets::ArdourButton _del_output_audio
 
ArdourWidgets::ArdourButton _add_output_midi
 
ArdourWidgets::ArdourButton _del_output_midi
 
ArdourWidgets::ArdourButton _add_sc_audio
 
ArdourWidgets::ArdourButton _add_sc_midi
 
ArdourWidgets::ArdourDropdown _out_presets
 
Gtk::Menu reset_menu
 
Gtk::Menu input_menu
 
Gtk::Table_sidechain_tbl
 
Glib::RefPtr< Gtk::SizeGroup > _pm_size_group
 
PBD::ScopedConnectionList _plugin_connections
 
PBD::ScopedConnectionList _io_connection
 
std::shared_ptr< ARDOUR::PluginInsert_pi
 
uint32_t _n_plugins
 
ARDOUR::ChanCount _in
 
ARDOUR::ChanCount _ins
 
ARDOUR::ChanCount _out
 
ARDOUR::ChanCount _sinks
 
ARDOUR::ChanCount _sources
 
double _bxw2
 
double _bxh2
 
double _pin_box_size
 
double _width
 
double _height
 
double _innerwidth
 
double _margin_x
 
double _margin_y
 
double _min_width
 
double _min_height
 
uint32_t _n_inputs
 
uint32_t _n_sidechains
 
bool _position_valid
 
bool _ignore_updates
 
IOSelectorWindow_sidechain_selector
 
bool _dragging
 
double _drag_x
 
double _drag_y
 
std::list< Control * > _controls
 

Additional Inherited Members

- Protected Member Functions inherited from ARDOUR::SessionHandlePtr
virtual void session_going_away ()
 
- Protected Attributes inherited from ARDOUR::SessionHandlePtr
ARDOUR::Session_session
 
PBD::ScopedConnectionList _session_connections
 

Detailed Description

Definition at line 45 of file plugin_pin_dialog.h.

Member Typedef Documentation

◆ CtrlElem

typedef std::shared_ptr<_CtrlElem> PluginPinWidget::CtrlElem
private

Definition at line 77 of file plugin_pin_dialog.h.

◆ CtrlElemList

typedef std::vector<CtrlWidget> PluginPinWidget::CtrlElemList
private

Definition at line 92 of file plugin_pin_dialog.h.

◆ Mappings

typedef std::map<uint32_t, ARDOUR::ChanMapping> PluginPinWidget::Mappings
private

Definition at line 101 of file plugin_pin_dialog.h.

Member Enumeration Documentation

◆ ClearMode

Enumerator
DisconnectIn 
DisconnectOut 
DisconnectAll 

Definition at line 59 of file plugin_pin_dialog.h.

◆ CtrlType

Enumerator
Input 
Sink 
Source 
Output 

Definition at line 52 of file plugin_pin_dialog.h.

Constructor & Destructor Documentation

◆ PluginPinWidget()

PluginPinWidget::PluginPinWidget ( std::shared_ptr< ARDOUR::PluginInsert )

◆ ~PluginPinWidget()

PluginPinWidget::~PluginPinWidget ( )

Member Function Documentation

◆ _route()

ARDOUR::Route* PluginPinWidget::_route ( )
inlineprivate

Definition at line 213 of file plugin_pin_dialog.h.

◆ add_port_to_table()

uint32_t PluginPinWidget::add_port_to_table ( std::shared_ptr< ARDOUR::Port ,
uint32_t  ,
bool   
)
private

◆ add_remove_inpin_clicked()

void PluginPinWidget::add_remove_inpin_clicked ( bool  ,
ARDOUR::DataType   
)
private

◆ add_remove_plugin_clicked()

void PluginPinWidget::add_remove_plugin_clicked ( bool  )
private

◆ add_remove_port_clicked()

void PluginPinWidget::add_remove_port_clicked ( bool  ,
ARDOUR::DataType   
)
private

◆ add_send_from()

void PluginPinWidget::add_send_from ( std::weak_ptr< ARDOUR::Port ,
std::weak_ptr< ARDOUR::Route  
)
private

◆ add_sidechain_port()

void PluginPinWidget::add_sidechain_port ( ARDOUR::DataType  )
private

◆ clear_mapping()

void PluginPinWidget::clear_mapping ( ClearMode  )
private

◆ connect_port()

void PluginPinWidget::connect_port ( std::weak_ptr< ARDOUR::Port ,
std::weak_ptr< ARDOUR::Port  
)
private

◆ connect_sidechain()

void PluginPinWidget::connect_sidechain ( )
private

◆ darea_button_press_event()

bool PluginPinWidget::darea_button_press_event ( GdkEventButton *  )
private

◆ darea_button_release_event()

bool PluginPinWidget::darea_button_release_event ( GdkEventButton *  )
private

◆ darea_expose_event()

bool PluginPinWidget::darea_expose_event ( GdkEventExpose *  )
private

◆ darea_motion_notify_event()

bool PluginPinWidget::darea_motion_notify_event ( GdkEventMotion *  )
private

◆ darea_size_allocate()

void PluginPinWidget::darea_size_allocate ( Gtk::Allocation &  )
private

◆ darea_size_request()

void PluginPinWidget::darea_size_request ( Gtk::Requisition *  )
private

◆ disconnect_other_outputs()

void PluginPinWidget::disconnect_other_outputs ( uint32_t  skip_pc,
ARDOUR::DataType  dt,
uint32_t  id 
)
private

◆ disconnect_other_thru()

void PluginPinWidget::disconnect_other_thru ( ARDOUR::DataType  dt,
uint32_t  id 
)
private

◆ disconnect_port()

void PluginPinWidget::disconnect_port ( std::weak_ptr< ARDOUR::Port )
private

◆ drag_type_matches()

bool PluginPinWidget::drag_type_matches ( const CtrlElem ct)
private

◆ draw_bus_groups()

void PluginPinWidget::draw_bus_groups ( cairo_t *  ,
const  CtrlType 
) const
private

◆ draw_connection() [1/2]

void PluginPinWidget::draw_connection ( cairo_t *  ,
const CtrlWidget ,
const CtrlWidget ,
bool  dashed = false 
) const
private

◆ draw_connection() [2/2]

void PluginPinWidget::draw_connection ( cairo_t *  ,
double  ,
double  ,
double  ,
double  ,
bool  ,
bool  ,
bool  dashed = false 
) const
private

◆ draw_io_pin()

void PluginPinWidget::draw_io_pin ( cairo_t *  ,
const CtrlWidget  
) const
private

◆ draw_plugin_bus()

void PluginPinWidget::draw_plugin_bus ( cairo_t *  ,
const CtrlWidget ,
const CtrlWidget  
) const
private

◆ draw_plugin_pin()

void PluginPinWidget::draw_plugin_pin ( cairo_t *  ,
const CtrlWidget  
)
private

◆ edge_coordinates()

static void PluginPinWidget::edge_coordinates ( const CtrlWidget w,
double &  x,
double &  y 
)
staticprivate

◆ error_message_dialog()

void PluginPinWidget::error_message_dialog ( std::string const &  ) const
private

◆ get_io_ctrl()

const CtrlWidget& PluginPinWidget::get_io_ctrl ( CtrlType  ct,
ARDOUR::DataType  dt,
uint32_t  id,
uint32_t  ip = 0 
) const
private

◆ handle_disconnect()

bool PluginPinWidget::handle_disconnect ( const CtrlElem ,
bool  no_signal = false 
)
private

◆ handle_input_action()

void PluginPinWidget::handle_input_action ( const CtrlElem ,
const CtrlElem  
)
private

◆ handle_output_action()

void PluginPinWidget::handle_output_action ( const CtrlElem ,
const CtrlElem  
)
private

◆ handle_thru_action()

void PluginPinWidget::handle_thru_action ( const CtrlElem ,
const CtrlElem  
)
private

◆ idle_update()

bool PluginPinWidget::idle_update ( )
private

◆ maybe_add_route_to_input_menu()

uint32_t PluginPinWidget::maybe_add_route_to_input_menu ( std::shared_ptr< ARDOUR::Route ,
ARDOUR::DataType  ,
std::weak_ptr< ARDOUR::Port  
)
private

◆ pin_x_pos()

double PluginPinWidget::pin_x_pos ( uint32_t  ,
double  ,
double  ,
uint32_t  ,
uint32_t  ,
bool   
)
private

◆ plugin_reconfigured()

void PluginPinWidget::plugin_reconfigured ( )
private

◆ port_connected_or_disconnected()

void PluginPinWidget::port_connected_or_disconnected ( std::weak_ptr< ARDOUR::Port ,
std::weak_ptr< ARDOUR::Port  
)
private

◆ port_label()

static std::string PluginPinWidget::port_label ( const std::string &  ,
bool   
)
staticprivate

◆ port_pretty_name_changed()

void PluginPinWidget::port_pretty_name_changed ( std::string  )
private

◆ property_changed()

void PluginPinWidget::property_changed ( PBD::PropertyChange const &  )
private

◆ queue_idle_update()

void PluginPinWidget::queue_idle_update ( )
private

◆ refill_output_presets()

void PluginPinWidget::refill_output_presets ( )
private

◆ refill_sidechain_table()

void PluginPinWidget::refill_sidechain_table ( )
private

◆ remove_port()

void PluginPinWidget::remove_port ( std::weak_ptr< ARDOUR::Port )
private

◆ reset_configuration()

void PluginPinWidget::reset_configuration ( )
private

◆ reset_mapping()

void PluginPinWidget::reset_mapping ( )
private

◆ sc_input_press()

bool PluginPinWidget::sc_input_press ( GdkEventButton *  ,
std::weak_ptr< ARDOUR::Port  
)
private

◆ sc_input_release()

bool PluginPinWidget::sc_input_release ( GdkEventButton *  )
private

◆ select_output_preset()

void PluginPinWidget::select_output_preset ( uint32_t  n_audio)
private

◆ set_color()

void PluginPinWidget::set_color ( cairo_t *  ,
bool   
) const
private

◆ set_session()

void PluginPinWidget::set_session ( ARDOUR::Session )
virtual

Reimplemented from ARDOUR::SessionHandlePtr.

◆ start_drag()

void PluginPinWidget::start_drag ( const CtrlElem ,
double  ,
double   
)
private

◆ toggle_sidechain()

void PluginPinWidget::toggle_sidechain ( )
private

◆ update_element_pos()

void PluginPinWidget::update_element_pos ( )
private

Member Data Documentation

◆ _actor

CtrlElem PluginPinWidget::_actor
private

Definition at line 95 of file plugin_pin_dialog.h.

◆ _add_input_audio

ArdourWidgets::ArdourButton PluginPinWidget::_add_input_audio
private

Definition at line 114 of file plugin_pin_dialog.h.

◆ _add_input_midi

ArdourWidgets::ArdourButton PluginPinWidget::_add_input_midi
private

Definition at line 116 of file plugin_pin_dialog.h.

◆ _add_output_audio

ArdourWidgets::ArdourButton PluginPinWidget::_add_output_audio
private

Definition at line 118 of file plugin_pin_dialog.h.

◆ _add_output_midi

ArdourWidgets::ArdourButton PluginPinWidget::_add_output_midi
private

Definition at line 120 of file plugin_pin_dialog.h.

◆ _add_plugin

ArdourWidgets::ArdourButton PluginPinWidget::_add_plugin
private

Definition at line 112 of file plugin_pin_dialog.h.

◆ _add_sc_audio

ArdourWidgets::ArdourButton PluginPinWidget::_add_sc_audio
private

Definition at line 122 of file plugin_pin_dialog.h.

◆ _add_sc_midi

ArdourWidgets::ArdourButton PluginPinWidget::_add_sc_midi
private

Definition at line 123 of file plugin_pin_dialog.h.

◆ _bxh2

double PluginPinWidget::_bxh2
private

Definition at line 203 of file plugin_pin_dialog.h.

◆ _bxw2

double PluginPinWidget::_bxw2
private

Definition at line 203 of file plugin_pin_dialog.h.

◆ _controls

std::list<Control*> PluginPinWidget::_controls
private

Definition at line 238 of file plugin_pin_dialog.h.

◆ _del_input_audio

ArdourWidgets::ArdourButton PluginPinWidget::_del_input_audio
private

Definition at line 115 of file plugin_pin_dialog.h.

◆ _del_input_midi

ArdourWidgets::ArdourButton PluginPinWidget::_del_input_midi
private

Definition at line 117 of file plugin_pin_dialog.h.

◆ _del_output_audio

ArdourWidgets::ArdourButton PluginPinWidget::_del_output_audio
private

Definition at line 119 of file plugin_pin_dialog.h.

◆ _del_output_midi

ArdourWidgets::ArdourButton PluginPinWidget::_del_output_midi
private

Definition at line 121 of file plugin_pin_dialog.h.

◆ _del_plugin

ArdourWidgets::ArdourButton PluginPinWidget::_del_plugin
private

Definition at line 113 of file plugin_pin_dialog.h.

◆ _drag_dst

CtrlElem PluginPinWidget::_drag_dst
private

Definition at line 98 of file plugin_pin_dialog.h.

◆ _drag_x

double PluginPinWidget::_drag_x
private

Definition at line 217 of file plugin_pin_dialog.h.

◆ _drag_y

double PluginPinWidget::_drag_y
private

Definition at line 217 of file plugin_pin_dialog.h.

◆ _dragging

bool PluginPinWidget::_dragging
private

Definition at line 216 of file plugin_pin_dialog.h.

◆ _elements

CtrlElemList PluginPinWidget::_elements
private

Definition at line 97 of file plugin_pin_dialog.h.

◆ _has_midi_bypass

bool PluginPinWidget::_has_midi_bypass
private

Definition at line 105 of file plugin_pin_dialog.h.

◆ _height

double PluginPinWidget::_height
private

Definition at line 205 of file plugin_pin_dialog.h.

◆ _hover

CtrlElem PluginPinWidget::_hover
private

Definition at line 96 of file plugin_pin_dialog.h.

◆ _ignore_updates

bool PluginPinWidget::_ignore_updates
private

Definition at line 212 of file plugin_pin_dialog.h.

◆ _in

ARDOUR::ChanCount PluginPinWidget::_in
private

Definition at line 200 of file plugin_pin_dialog.h.

◆ _in_map

Mappings PluginPinWidget::_in_map
private

Definition at line 102 of file plugin_pin_dialog.h.

◆ _innerwidth

double PluginPinWidget::_innerwidth
private

Definition at line 206 of file plugin_pin_dialog.h.

◆ _ins

ARDOUR::ChanCount PluginPinWidget::_ins
private

Definition at line 200 of file plugin_pin_dialog.h.

◆ _io_connection

PBD::ScopedConnectionList PluginPinWidget::_io_connection
private

Definition at line 191 of file plugin_pin_dialog.h.

◆ _margin_x

double PluginPinWidget::_margin_x
private

Definition at line 206 of file plugin_pin_dialog.h.

◆ _margin_y

double PluginPinWidget::_margin_y
private

Definition at line 206 of file plugin_pin_dialog.h.

◆ _min_height

double PluginPinWidget::_min_height
private

Definition at line 208 of file plugin_pin_dialog.h.

◆ _min_width

double PluginPinWidget::_min_width
private

Definition at line 207 of file plugin_pin_dialog.h.

◆ _n_inputs

uint32_t PluginPinWidget::_n_inputs
private

Definition at line 209 of file plugin_pin_dialog.h.

◆ _n_plugins

uint32_t PluginPinWidget::_n_plugins
private

Definition at line 199 of file plugin_pin_dialog.h.

◆ _n_sidechains

uint32_t PluginPinWidget::_n_sidechains
private

Definition at line 210 of file plugin_pin_dialog.h.

◆ _out

ARDOUR::ChanCount PluginPinWidget::_out
private

Definition at line 200 of file plugin_pin_dialog.h.

◆ _out_map

Mappings PluginPinWidget::_out_map
private

Definition at line 103 of file plugin_pin_dialog.h.

◆ _out_presets

ArdourWidgets::ArdourDropdown PluginPinWidget::_out_presets
private

Definition at line 125 of file plugin_pin_dialog.h.

◆ _pi

std::shared_ptr<ARDOUR::PluginInsert> PluginPinWidget::_pi
private

Definition at line 192 of file plugin_pin_dialog.h.

◆ _pin_box_size

double PluginPinWidget::_pin_box_size
private

Definition at line 204 of file plugin_pin_dialog.h.

◆ _plugin_connections

PBD::ScopedConnectionList PluginPinWidget::_plugin_connections
private

Definition at line 190 of file plugin_pin_dialog.h.

◆ _pm_size_group

Glib::RefPtr<Gtk::SizeGroup> PluginPinWidget::_pm_size_group
private

Definition at line 130 of file plugin_pin_dialog.h.

◆ _position_valid

bool PluginPinWidget::_position_valid
private

Definition at line 211 of file plugin_pin_dialog.h.

◆ _selection

CtrlElem PluginPinWidget::_selection
private

Definition at line 94 of file plugin_pin_dialog.h.

◆ _set_config

ArdourWidgets::ArdourButton PluginPinWidget::_set_config
private

Definition at line 110 of file plugin_pin_dialog.h.

◆ _sidechain_selector

IOSelectorWindow* PluginPinWidget::_sidechain_selector
private

Definition at line 214 of file plugin_pin_dialog.h.

◆ _sidechain_tbl

Gtk::Table* PluginPinWidget::_sidechain_tbl
private

Definition at line 129 of file plugin_pin_dialog.h.

◆ _sinks

ARDOUR::ChanCount PluginPinWidget::_sinks
private

Definition at line 201 of file plugin_pin_dialog.h.

◆ _sources

ARDOUR::ChanCount PluginPinWidget::_sources
private

Definition at line 201 of file plugin_pin_dialog.h.

◆ _tgl_sidechain

ArdourWidgets::ArdourButton PluginPinWidget::_tgl_sidechain
private

Definition at line 111 of file plugin_pin_dialog.h.

◆ _thru_map

ARDOUR::ChanMapping PluginPinWidget::_thru_map
private

Definition at line 104 of file plugin_pin_dialog.h.

◆ _width

double PluginPinWidget::_width
private

Definition at line 205 of file plugin_pin_dialog.h.

◆ darea

Gtk::DrawingArea PluginPinWidget::darea
private

Definition at line 108 of file plugin_pin_dialog.h.

◆ input_menu

Gtk::Menu PluginPinWidget::input_menu
private

Definition at line 128 of file plugin_pin_dialog.h.

◆ reset_menu

Gtk::Menu PluginPinWidget::reset_menu
private

Definition at line 127 of file plugin_pin_dialog.h.


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