summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/surfaces/push2/buttons.cc1
-rw-r--r--libs/surfaces/push2/layout.cc1
-rw-r--r--libs/surfaces/push2/layout.h67
-rw-r--r--libs/surfaces/push2/mix.cc1
-rw-r--r--libs/surfaces/push2/mix.h71
-rw-r--r--libs/surfaces/push2/push2.cc4
-rw-r--r--libs/surfaces/push2/push2.h86
-rw-r--r--libs/surfaces/push2/scale.cc3
-rw-r--r--libs/surfaces/push2/scale.h51
9 files changed, 198 insertions, 87 deletions
diff --git a/libs/surfaces/push2/buttons.cc b/libs/surfaces/push2/buttons.cc
index 980dcf6a94..19fbfcb513 100644
--- a/libs/surfaces/push2/buttons.cc
+++ b/libs/surfaces/push2/buttons.cc
@@ -23,6 +23,7 @@
#include "ardour/session.h"
#include "ardour/solo_control.h"
+#include "layout.h"
#include "push2.h"
using namespace ArdourSurface;
diff --git a/libs/surfaces/push2/layout.cc b/libs/surfaces/push2/layout.cc
index e27ea0fe55..f675e3ddbb 100644
--- a/libs/surfaces/push2/layout.cc
+++ b/libs/surfaces/push2/layout.cc
@@ -16,6 +16,7 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include "layout.h"
#include "push2.h"
using namespace ARDOUR;
diff --git a/libs/surfaces/push2/layout.h b/libs/surfaces/push2/layout.h
new file mode 100644
index 0000000000..969c510dfb
--- /dev/null
+++ b/libs/surfaces/push2/layout.h
@@ -0,0 +1,67 @@
+/*
+ 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_layout_h__
+#define __ardour_push2_layout_h__
+
+#include <stdint.h>
+
+#include <cairomm/refptr.h>
+
+namespace ARDOUR {
+ class Session;
+}
+
+namespace Cairo {
+ class Context;
+}
+
+namespace ArdourSurface {
+
+class Push2;
+
+class Push2Layout
+{
+ public:
+ Push2Layout (Push2& p, ARDOUR::Session& s);
+ virtual ~Push2Layout ();
+
+ bool mapped() const;
+
+ virtual bool redraw (Cairo::RefPtr<Cairo::Context>) const = 0;
+
+ virtual void button_upper (uint32_t n) {}
+ virtual void button_lower (uint32_t n) {}
+ virtual void button_up () {}
+ virtual void button_down () {}
+ virtual void button_right () {}
+ virtual void button_left () {}
+ virtual void button_select_press () {}
+ virtual void button_select_release () {}
+
+ virtual void strip_vpot (int, int) = 0;
+ virtual void strip_vpot_touch (int, bool) = 0;
+
+ protected:
+ Push2& p2;
+ ARDOUR::Session& session;
+};
+
+} /* namespace */
+
+#endif /* __ardour_push2_layout_h__ */
diff --git a/libs/surfaces/push2/mix.cc b/libs/surfaces/push2/mix.cc
index a4bebf463a..f0ee572455 100644
--- a/libs/surfaces/push2/mix.cc
+++ b/libs/surfaces/push2/mix.cc
@@ -41,6 +41,7 @@
#include "ardour/tempo.h"
#include "push2.h"
+#include "mix.h"
#include "i18n.h"
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__ */
diff --git a/libs/surfaces/push2/push2.cc b/libs/surfaces/push2/push2.cc
index 664704d9c6..16cd0a6f82 100644
--- a/libs/surfaces/push2/push2.cc
+++ b/libs/surfaces/push2/push2.cc
@@ -40,6 +40,10 @@
#include "push2.h"
#include "gui.h"
+#include "layout.h"
+#include "scale.h"
+#include "mix.h"
+#include "track_mix.h"
#include "menu.h"
#include "i18n.h"
diff --git a/libs/surfaces/push2/push2.h b/libs/surfaces/push2/push2.h
index 3a1f33861f..1132435318 100644
--- a/libs/surfaces/push2/push2.h
+++ b/libs/surfaces/push2/push2.h
@@ -532,92 +532,6 @@ class Push2 : public ARDOUR::ControlProtocol
void set_percussive_mode (bool);
};
-class Push2Layout
-{
- public:
- Push2Layout (Push2& p, ARDOUR::Session& s);
- virtual ~Push2Layout ();
-
- bool mapped() const;
-
- virtual bool redraw (Cairo::RefPtr<Cairo::Context>) const = 0;
-
- virtual void button_upper (uint32_t n) {}
- virtual void button_lower (uint32_t n) {}
- virtual void button_up () {}
- virtual void button_down () {}
- virtual void button_right () {}
- virtual void button_left () {}
- virtual void button_select_press () {}
- virtual void button_select_release () {}
-
- virtual void strip_vpot (int, int) = 0;
- virtual void strip_vpot_touch (int, bool) = 0;
-
- protected:
- Push2& p2;
- ARDOUR::Session& session;
-};
-
-
-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);
-};
-
-class ScaleLayout : public Push2Layout
-{
- public:
- ScaleLayout (Push2& p, ARDOUR::Session&, Cairo::RefPtr<Cairo::Context>);
- ~ScaleLayout ();
-
- bool redraw (Cairo::RefPtr<Cairo::Context>) const;
-
- void button_upper (uint32_t n);
- void button_lower (uint32_t n);
-
- void strip_vpot (int, int);
- void strip_vpot_touch (int, bool);
-
- private:
- Push2Menu* scale_menu;
- void build_scale_menu (Cairo::RefPtr<Cairo::Context>);
-};
-
} /* namespace */
#endif /* __ardour_push2_h__ */
diff --git a/libs/surfaces/push2/scale.cc b/libs/surfaces/push2/scale.cc
index da9c4fa3b1..2f86d54786 100644
--- a/libs/surfaces/push2/scale.cc
+++ b/libs/surfaces/push2/scale.cc
@@ -40,8 +40,9 @@
#include "ardour/session.h"
#include "ardour/tempo.h"
-#include "push2.h"
#include "menu.h"
+#include "push2.h"
+#include "scale.h"
#include "i18n.h"
diff --git a/libs/surfaces/push2/scale.h b/libs/surfaces/push2/scale.h
new file mode 100644
index 0000000000..a859756d2f
--- /dev/null
+++ b/libs/surfaces/push2/scale.h
@@ -0,0 +1,51 @@
+/*
+ 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_scale_layout_h__
+#define __ardour_push2_scale_layout_h__
+
+#include "layout.h"
+
+namespace ARDOUR {
+ class Stripable;
+}
+
+namespace ArdourSurface {
+
+class ScaleLayout : public Push2Layout
+{
+ public:
+ ScaleLayout (Push2& p, ARDOUR::Session&, Cairo::RefPtr<Cairo::Context>);
+ ~ScaleLayout ();
+
+ bool redraw (Cairo::RefPtr<Cairo::Context>) const;
+
+ void button_upper (uint32_t n);
+ void button_lower (uint32_t n);
+
+ void strip_vpot (int, int);
+ void strip_vpot_touch (int, bool);
+
+ private:
+ Push2Menu* scale_menu;
+ void build_scale_menu (Cairo::RefPtr<Cairo::Context>);
+};
+
+} /* namespace */
+
+#endif /* __ardour_push2_scale_layout_h__ */