enum LEDFlag { Normal = 0xC, Blink = 0x8, DoubleBuffering = 0x0 };
- enum LEDColor { Off=0, RedLow = 1, RedFull = 3, GreenLow = 16, GreenFull = 48, Yellow = 50, AmberLow = 17, AmberFull = 51};
+ enum LEDColor { Off=0, RedLow = 1, RedFull = 3, GreenLow = 16, GreenFull = 48, YellowLow = 34, YellowFull = 51, AmberLow = 18, AmberFull = 35};
struct Controller {
void (LaunchControlXL::*release)())
: Button(id, press, release), _controller_number(cn) {}
+ ControllerButton(ButtonID id, uint8_t cn,
+ void (LaunchControlXL::*press)(),
+ void (LaunchControlXL::*release)(),
+ void (LaunchControlXL::*release_long)())
+ : Button(id, press, release, release_long), _controller_number(cn) {}
+
uint8_t controller_number() const { return _controller_number; }
SelectButton(ButtonID id, uint8_t cn, uint8_t index, void (LaunchControlXL::*press)(), LaunchControlXL& l)
: ControllerButton(id, cn, press), LED(index, RedFull, l) {}
+ SelectButton(ButtonID id, uint8_t cn, uint8_t index,
+ void (LaunchControlXL::*press)(),
+ void (LaunchControlXL::*release)(),
+ void (LaunchControlXL::*release_long)(),
+ LaunchControlXL& l)
+ : ControllerButton(id, cn, press, release, release_long), LED(index, RedFull, l) {}
+
MidiByteArray state_msg(bool light) const;
};
struct TrackStateButton : public NoteButton, public LED {
TrackStateButton(ButtonID id, uint8_t nn, uint8_t index, void (LaunchControlXL::*press)(), LaunchControlXL& l)
: NoteButton(id, nn, press)
- , LED(index, Yellow, l) {}
+ , LED(index, YellowLow, l) {}
TrackStateButton(ButtonID id, uint8_t nn, uint8_t index, void (LaunchControlXL::*press)(),
void (LaunchControlXL::*release)(),
LaunchControlXL& l)
: NoteButton(id, nn, press, release)
- , LED(index, Yellow, l) {}
+ , LED(index, YellowLow, l) {}
TrackStateButton(ButtonID id, uint8_t nn, uint8_t index, void (LaunchControlXL::*press)(),
void (LaunchControlXL::*release)(),
void (LaunchControlXL::*release_long)(),
LaunchControlXL& l)
: NoteButton(id, nn, press, release, release_long)
- , LED(index, Yellow, l) {}
+ , LED(index, YellowLow, l) {}
MidiByteArray state_msg(bool light) const;
};
};
struct Knob : public Controller, public MultiColorLED {
- Knob(KnobID id, uint8_t cn, uint8_t index, LEDColor color, LaunchControlXL& l)
+ Knob(KnobID id, uint8_t cn, uint8_t index, LaunchControlXL& l)
: Controller(cn, 64)
- , MultiColorLED(index, color, l)
+ , MultiColorLED(index, Off, l)
, _id(id) {} // knob 50/50 value
KnobID id() const { return _id; }
void *get_gui() const;
void tear_down_gui();
+ bool use_fader8master = false;
+
int set_active(bool yn);
XMLNode &get_state();
int set_state(const XMLNode &node, int version);
void write(const MidiByteArray &);
void reset(uint8_t chan);
+ void set_fader8master (bool yn);
TrackMode track_mode() const { return _track_mode; }
void set_track_mode(TrackMode mode);
void notify_loop_state_changed();
void notify_parameter_changed(std::string);
+ /* Knob methods */
+
+ Knob** knobs_by_column(uint8_t col, Knob** knob_col);
+ void update_knob_led(uint8_t n);
/* Button methods */
TrackButton* track_button_by_range(uint8_t n, uint8_t first, uint8_t middle);
- TrackButton* focus_button_by_collumn(uint8_t col) { return track_button_by_range(col, 41, 57) ; }
- TrackButton* control_button_by_collumn(uint8_t col) { return track_button_by_range(col, 73, 89) ; }
+ TrackButton* focus_button_by_column(uint8_t col) { return track_button_by_range(col, 41, 57) ; }
+ TrackButton* control_button_by_column(uint8_t col) { return track_button_by_range(col, 73, 89) ; }
void button_device();
void button_select_down();
void button_select_left();
void button_select_right();
+ void button_select_left_long_press();
+ void button_select_right_long_press();
void button_track_focus(uint8_t n);
void button_track_control(uint8_t n);