Show I/O Plugins on Recorder Page

This commit is contained in:
Robin Gareus 2022-05-17 02:25:58 +02:00
parent 5c85695362
commit c10c3ed64f
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
2 changed files with 175 additions and 24 deletions

View file

@ -51,6 +51,7 @@
namespace ARDOUR {
class SoloMuteRelease;
class IOPlug;
}
class TrackRecordAxis;
@ -87,6 +88,10 @@ private:
void stop_updating ();
bool update_meters ();
void add_or_remove_io (ARDOUR::DataType, std::vector<std::string>, bool);
void io_plugins_changed ();
void io_plugin_add (boost::shared_ptr<ARDOUR::IOPlug>);
void io_plugin_going_away (boost::weak_ptr<ARDOUR::IOPlug>);
void post_add_remove (bool);
void update_io_widget_labels ();
void initial_track_display ();
@ -157,11 +162,6 @@ private:
std::set<std::string> _spill_port_names;
sigc::connection _fast_screen_update_connection;
sigc::connection _ruler_width_update_connection;
PBD::ScopedConnectionList _engine_connections;
PBD::ScopedConnection _monitor_connection;
class RecRuler : public CairoWidget , public ARDOUR::SessionHandlePtr
{
public:
@ -188,7 +188,7 @@ private:
class InputPort : public Gtk::EventBox
{
public:
InputPort (std::string const&, ARDOUR::DataType, RecorderUI*, bool vertical = false);
InputPort (std::string const&, ARDOUR::DataType, RecorderUI*, bool vertical = false, bool ioplug = false);
~InputPort ();
void set_frame_label (std::string const&);
@ -201,6 +201,7 @@ private:
void update_rec_stat ();
ARDOUR::DataType data_type () const;
bool ioplug () const { return _ioplug; }
std::string const& name () const;
void update (float, float); // FastMeter
@ -210,6 +211,9 @@ private:
void clear ();
bool operator< (InputPort const& o) const {
if (_ioplug != o._ioplug) {
return !_ioplug;
}
if (_dt == o._dt) {
return PBD::naturally_less (_port_name.c_str (), o._port_name.c_str ());
}
@ -231,6 +235,7 @@ private:
Gtk::Label _name_label;
ArdourWidgets::ArdourButton _add_button;
std::string _port_name;
bool _ioplug;
ARDOUR::WeakRouteList _connected_routes;
ARDOUR::SoloMuteRelease* _solo_release;
@ -248,6 +253,7 @@ private:
typedef std::map<std::string, boost::shared_ptr<InputPort> > InputPortMap;
typedef std::set<boost::shared_ptr<InputPort>, InputPortPtrSort> InputPortSet;
typedef std::set<boost::shared_ptr<ARDOUR::IOPlug>> IOPlugSet;
RecRuler _ruler;
Gtk::EventBox _space;
@ -258,6 +264,13 @@ private:
InputPortMap _input_ports;
std::list<TrackRecordAxis*> _recorders;
std::list<TrackRecordAxis*> _visible_recorders;
IOPlugSet _ioplugins;
sigc::connection _fast_screen_update_connection;
sigc::connection _ruler_width_update_connection;
PBD::ScopedConnectionList _engine_connections;
PBD::ScopedConnection _monitor_connection;
PBD::ScopedConnectionList _going_away_connections;
public:
/* only for RecorderGroupTab */