#include "pbd/i18n.h"
+#ifdef PLATFORM_WINDOWS
+#define random() rand()
+#endif
+
using namespace ARDOUR;
using namespace std;
using namespace PBD;
#define ABLETON 0x2982
#define PUSH2 0x1967
-__attribute__((constructor)) static void
-register_enums ()
-{
- EnumWriter& enum_writer (EnumWriter::instance());
- vector<int> i;
- vector<string> s;
-
- MusicalMode::Type mode;
-
-#define REGISTER(e) enum_writer.register_distinct (typeid(e).name(), i, s); i.clear(); s.clear()
-#define REGISTER_CLASS_ENUM(t,e) i.push_back (t::e); s.push_back (#e)
-
- REGISTER_CLASS_ENUM (MusicalMode,Dorian);
- REGISTER_CLASS_ENUM (MusicalMode, IonianMajor);
- REGISTER_CLASS_ENUM (MusicalMode, Minor);
- REGISTER_CLASS_ENUM (MusicalMode, HarmonicMinor);
- REGISTER_CLASS_ENUM (MusicalMode, MelodicMinorAscending);
- REGISTER_CLASS_ENUM (MusicalMode, MelodicMinorDescending);
- REGISTER_CLASS_ENUM (MusicalMode, Phrygian);
- REGISTER_CLASS_ENUM (MusicalMode, Lydian);
- REGISTER_CLASS_ENUM (MusicalMode, Mixolydian);
- REGISTER_CLASS_ENUM (MusicalMode, Aeolian);
- REGISTER_CLASS_ENUM (MusicalMode, Locrian);
- REGISTER_CLASS_ENUM (MusicalMode, PentatonicMajor);
- REGISTER_CLASS_ENUM (MusicalMode, PentatonicMinor);
- REGISTER_CLASS_ENUM (MusicalMode, Chromatic);
- REGISTER_CLASS_ENUM (MusicalMode, BluesScale);
- REGISTER_CLASS_ENUM (MusicalMode, NeapolitanMinor);
- REGISTER_CLASS_ENUM (MusicalMode, NeapolitanMajor);
- REGISTER_CLASS_ENUM (MusicalMode, Oriental);
- REGISTER_CLASS_ENUM (MusicalMode, DoubleHarmonic);
- REGISTER_CLASS_ENUM (MusicalMode, Enigmatic);
- REGISTER_CLASS_ENUM (MusicalMode, Hirajoshi);
- REGISTER_CLASS_ENUM (MusicalMode, HungarianMinor);
- REGISTER_CLASS_ENUM (MusicalMode, HungarianMajor);
- REGISTER_CLASS_ENUM (MusicalMode, Kumoi);
- REGISTER_CLASS_ENUM (MusicalMode, Iwato);
- REGISTER_CLASS_ENUM (MusicalMode, Hindu);
- REGISTER_CLASS_ENUM (MusicalMode, Spanish8Tone);
- REGISTER_CLASS_ENUM (MusicalMode, Pelog);
- REGISTER_CLASS_ENUM (MusicalMode, HungarianGypsy);
- REGISTER_CLASS_ENUM (MusicalMode, Overtone);
- REGISTER_CLASS_ENUM (MusicalMode, LeadingWholeTone);
- REGISTER_CLASS_ENUM (MusicalMode, Arabian);
- REGISTER_CLASS_ENUM (MusicalMode, Balinese);
- REGISTER_CLASS_ENUM (MusicalMode, Gypsy);
- REGISTER_CLASS_ENUM (MusicalMode, Mohammedan);
- REGISTER_CLASS_ENUM (MusicalMode, Javanese);
- REGISTER_CLASS_ENUM (MusicalMode, Persian);
- REGISTER_CLASS_ENUM (MusicalMode, Algerian);
- REGISTER (mode);
-}
-
Push2::Push2 (ARDOUR::Session& s)
: ControlProtocol (s, string (X_("Ableton Push 2")))
, AbstractUI<Push2Request> (name())
, _pressure_mode (AfterTouch)
, selection_color (LED::Green)
, contrast_color (LED::Green)
+ , in_range_select (false)
{
build_maps ();
try {
_canvas = new Push2Canvas (*this, 960, 160);
- mix_layout = new MixLayout (*this, *session);
- scale_layout = new ScaleLayout (*this, *session);
- track_mix_layout = new TrackMixLayout (*this, *session);
- splash_layout = new SplashLayout (*this, *session);
+ mix_layout = new MixLayout (*this, *session, "globalmix");
+ scale_layout = new ScaleLayout (*this, *session, "scale");
+ track_mix_layout = new TrackMixLayout (*this, *session, "trackmix");
+ splash_layout = new SplashLayout (*this, *session, "splash");
} catch (...) {
error << _("Cannot construct Canvas for display") << endmsg;
libusb_release_interface (handle, 0x00);