#include "pbd/i18n.h"
+#ifdef PLATFORM_WINDOWS
+#define random() rand()
+#endif
+
using namespace ARDOUR;
using namespace std;
using namespace PBD;
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)
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);
void
Push2::set_current_layout (Push2Layout* layout)
{
- if (_current_layout) {
- _current_layout->hide ();
- _canvas->root()->remove (_current_layout);
- _previous_layout = _current_layout;
- }
+ if (layout && layout == _current_layout) {
+ _current_layout->show ();
+ } else {
+
+ if (_current_layout) {
+ _current_layout->hide ();
+ _canvas->root()->remove (_current_layout);
+ _previous_layout = _current_layout;
+ }
- _current_layout = layout;
+ _current_layout = layout;
+
+ if (_current_layout) {
+ _canvas->root()->add (_current_layout);
+ _current_layout->show ();
+ }
- if (_current_layout) {
- _canvas->root()->add (_current_layout);
- _current_layout->show ();
- }
- _canvas->request_redraw ();
+ _canvas->request_redraw ();
+ }
}
void