diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-07-10 12:38:36 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-09-27 14:59:31 -0500 |
commit | 268945850033200d57a89fb33e00136c03711f2a (patch) | |
tree | 228f04081285b46c089f60fff06ded6b49f87711 /libs/surfaces/push2/mix.h | |
parent | 64d390ff13cc3429dac9416f4cba0d95b838deca (diff) |
push2: rearrange and separate header file material
Diffstat (limited to 'libs/surfaces/push2/mix.h')
-rw-r--r-- | libs/surfaces/push2/mix.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/libs/surfaces/push2/mix.h b/libs/surfaces/push2/mix.h new file mode 100644 index 0000000000..488f888cd5 --- /dev/null +++ b/libs/surfaces/push2/mix.h @@ -0,0 +1,71 @@ +/* + Copyright (C) 2016 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifndef __ardour_push2_mix_layout_h__ +#define __ardour_push2_mix_layout_h__ + +#include "layout.h" + +namespace ARDOUR { + class Stripable; +} + +namespace ArdourSurface { + +class MixLayout : public Push2Layout +{ + public: + MixLayout (Push2& p, ARDOUR::Session&, Cairo::RefPtr<Cairo::Context>); + ~MixLayout (); + + bool redraw (Cairo::RefPtr<Cairo::Context>) const; + + void button_upper (uint32_t n); + void button_lower (uint32_t n); + void button_left (); + void button_right (); + void button_select_press (); + void button_select_release (); + + void strip_vpot (int, int); + void strip_vpot_touch (int, bool); + + private: + Glib::RefPtr<Pango::Layout> tc_clock_layout; + Glib::RefPtr<Pango::Layout> bbt_clock_layout; + Glib::RefPtr<Pango::Layout> upper_layout[8]; + Glib::RefPtr<Pango::Layout> mid_layout[8]; + Glib::RefPtr<Pango::Layout> lower_layout[8]; + + /* stripables */ + + int32_t bank_start; + PBD::ScopedConnectionList stripable_connections; + boost::shared_ptr<ARDOUR::Stripable> stripable[8]; + + void solo_change (int); + void mute_change (int); + + void stripable_property_change (PBD::PropertyChange const& what_changed, int which); + + void switch_bank (uint32_t base); +}; + +} /* namespace */ + +#endif /* __ardour_push2_layout_h__ */ |