X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fsurfaces%2Fpush2%2Ftrack_mix.h;h=ba6aa49a0aa523e28bd6a7b4c97ac72e06c5a670;hb=edd21ac89e03c843b4fa3fecb97fa90470b5a779;hp=84aa4f043d9a2e254cc5e816818e1cee204187b1;hpb=4cc71d296673bddb64043dff2d27c2f30d9aff0f;p=ardour.git diff --git a/libs/surfaces/push2/track_mix.h b/libs/surfaces/push2/track_mix.h index 84aa4f043d..ba6aa49a0a 100644 --- a/libs/surfaces/push2/track_mix.h +++ b/libs/surfaces/push2/track_mix.h @@ -25,44 +25,77 @@ namespace ARDOUR { class Stripable; + class AutomationControl; +} + +namespace ArdourCanvas { + class Rectangle; + class Text; + class Line; + class VBox; + class Rect; } namespace ArdourSurface { class Push2Knob; +class LevelMeter; class TrackMixLayout : public Push2Layout { public: - TrackMixLayout (Push2& p, ARDOUR::Session&, Cairo::RefPtr); + TrackMixLayout (Push2& p, ARDOUR::Session&, std::string const &); ~TrackMixLayout (); void set_stripable (boost::shared_ptr); - bool redraw (Cairo::RefPtr) const; + void render (ArdourCanvas::Rect const &, Cairo::RefPtr) const; + void show (); + void hide (); void button_upper (uint32_t n); void button_lower (uint32_t n); + void button_left (); + void button_right (); void strip_vpot (int, int); void strip_vpot_touch (int, bool); + void update_meters (); + void update_clocks (); + + boost::shared_ptr current_stripable() const { return stripable; } + private: boost::shared_ptr stripable; PBD::ScopedConnectionList stripable_connections; - bool _dirty; - Glib::RefPtr name_layout; - Glib::RefPtr upper_layout[8]; - Glib::RefPtr lower_layout[8]; + ArdourCanvas::Rectangle* bg; + ArdourCanvas::Line* upper_line; + std::vector upper_text; + std::vector lower_text; + ArdourCanvas::Text* name_text; + ArdourCanvas::Text* bbt_text; + ArdourCanvas::Text* minsec_text; + uint8_t selection_color; - std::vector knobs; + Push2Knob* knobs[8]; + LevelMeter* meter; void stripable_property_change (PBD::PropertyChange const& what_changed); + void simple_control_change (boost::shared_ptr ac, Push2::ButtonID bid); + + void show_state (); void drop_stripable (); void name_changed (); void color_changed (); + + void solo_mute_change (); + void rec_enable_change (); + void solo_iso_change (); + void solo_safe_change (); + void monitoring_change (); }; } /* namespace */