X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fvca.h;h=710447fb93839802231edc18945ad10da3af310a;hb=0a52b325f4e1eaf39be65a24f9a594ffe1f66e79;hp=3364dd514bbdafd690fdb05d35d99e49a3cc88a6;hpb=55791301c3680f9a4bc713fa101d6df68d5a94a2;p=ardour.git diff --git a/libs/ardour/ardour/vca.h b/libs/ardour/ardour/vca.h index 3364dd514b..710447fb93 100644 --- a/libs/ardour/ardour/vca.h +++ b/libs/ardour/ardour/vca.h @@ -23,6 +23,8 @@ #include #include +#include + #include "pbd/controllable.h" #include "pbd/statefuldestructible.h" @@ -50,11 +52,10 @@ class LIBARDOUR_API VCA : public Stripable, public Monitorable, public boost::enable_shared_from_this { public: - VCA (Session& session, uint32_t num, const std::string& name); + VCA (Session& session, int32_t num, const std::string& name); ~VCA(); - uint32_t number () const { return _number; } - uint32_t remote_control_id() const; + int32_t number () const { return _number; } int init (); XMLNode& get_state(); @@ -93,65 +94,63 @@ class LIBARDOUR_API VCA : public Stripable, MonitorState monitoring_state() const; static std::string default_name_template (); - static int next_vca_number (); + static int32_t next_vca_number (); static std::string xml_node_name; /* used by Session to save/restore the atomic counter */ - static uint32_t get_next_vca_number (); - static void set_next_vca_number (uint32_t); + static int32_t get_next_vca_number (); + static void set_next_vca_number (int32_t); - virtual boost::shared_ptr gain_control() const { return _gain_control; } - virtual boost::shared_ptr solo_control() const { return _solo_control; } - virtual boost::shared_ptr mute_control() const { return _mute_control; } - virtual boost::shared_ptr recenable_control() const { return _recenable_control; } - virtual boost::shared_ptr monitoring_control() const { return _monitor_control; } + boost::shared_ptr gain_control() const { return _gain_control; } + boost::shared_ptr solo_control() const { return _solo_control; } + boost::shared_ptr mute_control() const { return _mute_control; } /* null Stripable API, because VCAs don't have any of this */ - virtual boost::shared_ptr solo_isolate_control() const { return boost::shared_ptr(); } - virtual boost::shared_ptr solo_safe_control() const { return boost::shared_ptr(); } - virtual boost::shared_ptr peak_meter() { return boost::shared_ptr(); } - virtual boost::shared_ptr peak_meter() const { return boost::shared_ptr(); } - virtual boost::shared_ptr phase_control() const { return boost::shared_ptr(); } - virtual boost::shared_ptr trim_control() const { return boost::shared_ptr(); } - virtual boost::shared_ptr pan_azimuth_control() const { return boost::shared_ptr(); } - virtual boost::shared_ptr pan_elevation_control() const { return boost::shared_ptr(); } - virtual boost::shared_ptr pan_width_control() const { return boost::shared_ptr(); } - virtual boost::shared_ptr pan_frontback_control() const { return boost::shared_ptr(); } - virtual boost::shared_ptr pan_lfe_control() const { return boost::shared_ptr(); } - virtual uint32_t eq_band_cnt () const { return 0; } - virtual std::string eq_band_name (uint32_t) const { return std::string(); } - virtual boost::shared_ptr eq_gain_controllable (uint32_t band) const { return boost::shared_ptr(); } - virtual boost::shared_ptr eq_freq_controllable (uint32_t band) const { return boost::shared_ptr(); } - virtual boost::shared_ptr eq_q_controllable (uint32_t band) const { return boost::shared_ptr(); } - virtual boost::shared_ptr eq_shape_controllable (uint32_t band) const { return boost::shared_ptr(); } - virtual boost::shared_ptr eq_enable_controllable () const { return boost::shared_ptr(); } - virtual boost::shared_ptr eq_hpf_controllable () const { return boost::shared_ptr(); } - virtual boost::shared_ptr comp_enable_controllable () const { return boost::shared_ptr(); } - virtual boost::shared_ptr comp_threshold_controllable () const { return boost::shared_ptr(); } - virtual boost::shared_ptr comp_speed_controllable () const { return boost::shared_ptr(); } - virtual boost::shared_ptr comp_mode_controllable () const { return boost::shared_ptr(); } - virtual boost::shared_ptr comp_makeup_controllable () const { return boost::shared_ptr(); } - virtual boost::shared_ptr comp_redux_controllable () const { return boost::shared_ptr(); } - virtual std::string comp_mode_name (uint32_t mode) const { return std::string(); } - virtual std::string comp_speed_name (uint32_t mode) const { return std::string(); } - virtual boost::shared_ptr send_level_controllable (uint32_t n) const { return boost::shared_ptr(); } - virtual boost::shared_ptr send_enable_controllable (uint32_t n) const { return boost::shared_ptr(); } - virtual std::string send_name (uint32_t n) const { return std::string(); } - virtual boost::shared_ptr master_send_enable_controllable () const { return boost::shared_ptr(); } + boost::shared_ptr solo_isolate_control() const { return boost::shared_ptr(); } + boost::shared_ptr solo_safe_control() const { return boost::shared_ptr(); } + boost::shared_ptr peak_meter() { return boost::shared_ptr(); } + boost::shared_ptr peak_meter() const { return boost::shared_ptr(); } + boost::shared_ptr phase_control() const { return boost::shared_ptr(); } + boost::shared_ptr trim_control() const { return boost::shared_ptr(); } + boost::shared_ptr pan_azimuth_control() const { return boost::shared_ptr(); } + boost::shared_ptr pan_elevation_control() const { return boost::shared_ptr(); } + boost::shared_ptr pan_width_control() const { return boost::shared_ptr(); } + boost::shared_ptr pan_frontback_control() const { return boost::shared_ptr(); } + boost::shared_ptr pan_lfe_control() const { return boost::shared_ptr(); } + uint32_t eq_band_cnt () const { return 0; } + std::string eq_band_name (uint32_t) const { return std::string(); } + boost::shared_ptr eq_gain_controllable (uint32_t band) const { return boost::shared_ptr(); } + boost::shared_ptr eq_freq_controllable (uint32_t band) const { return boost::shared_ptr(); } + boost::shared_ptr eq_q_controllable (uint32_t band) const { return boost::shared_ptr(); } + boost::shared_ptr eq_shape_controllable (uint32_t band) const { return boost::shared_ptr(); } + boost::shared_ptr eq_enable_controllable () const { return boost::shared_ptr(); } + boost::shared_ptr eq_hpf_controllable () const { return boost::shared_ptr(); } + boost::shared_ptr comp_enable_controllable () const { return boost::shared_ptr(); } + boost::shared_ptr comp_threshold_controllable () const { return boost::shared_ptr(); } + boost::shared_ptr comp_speed_controllable () const { return boost::shared_ptr(); } + boost::shared_ptr comp_mode_controllable () const { return boost::shared_ptr(); } + boost::shared_ptr comp_makeup_controllable () const { return boost::shared_ptr(); } + boost::shared_ptr comp_redux_controllable () const { return boost::shared_ptr(); } + std::string comp_mode_name (uint32_t mode) const { return std::string(); } + std::string comp_speed_name (uint32_t mode) const { return std::string(); } + boost::shared_ptr send_level_controllable (uint32_t n) const { return boost::shared_ptr(); } + boost::shared_ptr send_enable_controllable (uint32_t n) const { return boost::shared_ptr(); } + std::string send_name (uint32_t n) const { return std::string(); } + boost::shared_ptr master_send_enable_controllable () const { return boost::shared_ptr(); } boost::shared_ptr monitor_control() const { return boost::shared_ptr(); } + boost::shared_ptr monitoring_control() const { return boost::shared_ptr(); } private: - uint32_t _number; + int32_t _number; boost::shared_ptr _gain_control; boost::shared_ptr _solo_control; boost::shared_ptr _mute_control; - boost::shared_ptr _recenable_control; - // boost::shared_ptr _record_safe_control; - boost::shared_ptr _monitor_control; - static gint next_number; + + static int32_t next_number; + static Glib::Threads::Mutex number_lock; void solo_target_going_away (boost::weak_ptr); void mute_target_going_away (boost::weak_ptr);