summaryrefslogtreecommitdiff
path: root/libs/surfaces/maschine2/maschine2.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-11-17 13:08:38 +0100
committerPaul Davis <paul@linuxaudiosystems.com>2017-09-18 11:40:53 -0400
commita71171786f035f30d471a85e5ab518fd66980d0a (patch)
treea0da1987c8bd21cf71d68e7ff9b72e988eb618a8 /libs/surfaces/maschine2/maschine2.cc
parent0a6d1ab06e20de7d1c3da7f7f9df14c633b3d566 (diff)
Maschine2 UI: basic widgets
Diffstat (limited to 'libs/surfaces/maschine2/maschine2.cc')
-rw-r--r--libs/surfaces/maschine2/maschine2.cc65
1 files changed, 65 insertions, 0 deletions
diff --git a/libs/surfaces/maschine2/maschine2.cc b/libs/surfaces/maschine2/maschine2.cc
index b378639f11..75f488d997 100644
--- a/libs/surfaces/maschine2/maschine2.cc
+++ b/libs/surfaces/maschine2/maschine2.cc
@@ -48,6 +48,61 @@ using namespace ARDOUR;
using namespace PBD;
using namespace ArdourSurface;
+#if 1 // TEST
+#include "gtkmm2ext/colors.h"
+#include "canvas/line.h"
+#include "canvas/rectangle.h"
+#include "canvas/text.h"
+
+#include "layout.h"
+#include "ui_knob.h"
+#include "ui_menu.h"
+
+class TestLayout : public Maschine2Layout
+{
+ public:
+ TestLayout (Maschine2& m2, Session& s, std::string const & name)
+ : Maschine2Layout (m2, s, name)
+ , knob (0)
+ , menu (0)
+ {
+ using namespace ArdourCanvas;
+ bg = new ArdourCanvas::Rectangle (this);
+ bg->set (ArdourCanvas::Rect (0, 0, display_width(), display_height()));
+ bg->set_fill_color (0x000000ff);
+
+ upper_line = new Line (this);
+ upper_line->set (Duple (0, 16.5), Duple (display_width(), 16.5));
+ upper_line->set_outline_color (0xffffffff);
+
+ knob = new Maschine2Knob(&m2, this);
+ knob->set_position (Duple (64 + 32, 32));
+ if (_session.master_out ()) {
+ knob->set_controllable (_session.master_out ()->gain_control());
+ }
+
+ std::vector<std::string> strs;
+ strs.push_back("T|sg1");
+ strs.push_back("Test2asdjasdlkjasldkjasd");
+ strs.push_back("Test3");
+ strs.push_back("Test4");
+ strs.push_back("Test5");
+ menu = new Maschine2Menu(&m2, this, strs);
+ menu->set_position (Duple (0, 19));
+
+ }
+ Maschine2Knob* get_knob () { return knob; }
+ Maschine2Menu* get_menu () { return menu; }
+ private:
+ ArdourCanvas::Rectangle* bg;
+ ArdourCanvas::Line* upper_line;
+ Maschine2Knob* knob;
+ Maschine2Menu* menu;
+};
+
+static TestLayout* tl = NULL;
+#endif
+
Maschine2::Maschine2 (ARDOUR::Session& s)
: ControlProtocol (s, string (X_("NI Maschine2")))
, AbstractUI<Maschine2Request> (name())
@@ -198,6 +253,12 @@ Maschine2::start ()
read_connection = read_timeout->connect (sigc::mem_fun (*this, &Maschine2::dev_read));
read_timeout->attach (main_loop ()->get_context());
+#if 1 // TEST
+ tl = new TestLayout (*this, *session, "test");
+ tl->get_menu ()->set_control (_ctrl->encoder (1));
+ tl->get_knob ()->set_control (_ctrl->encoder (2));
+#endif
+
return 0;
}
@@ -284,5 +345,9 @@ Maschine2::dev_write ()
Maschine2Layout*
Maschine2::current_layout() const
{
+#if 1 // TEST
+ return tl;
+#else
return NULL;
+#endif
}