#include <functional>
#include <memory>
#include <mutex>
-#include <set>
#include <string>
#include <thread>
virtual void preview() = 0;
virtual void queue() = 0;
virtual void play() = 0;
+ virtual void toggle_lock() = 0;
virtual void jog(int delta) = 0;
virtual void switch_camera(unsigned camera_idx) = 0;
virtual void set_master_speed(float speed) = 0;
class MIDIMapper : public MIDIReceiver {
public:
+ // Converts conveniently from a bool.
+ enum LightState {
+ Off = 0,
+ On = 1,
+ Blinking = 2
+ };
+
MIDIMapper(ControllerReceiver *receiver);
virtual ~MIDIMapper();
void set_midi_mapping(const MIDIMappingProto &new_mapping);
play_enabled_light = enabled;
refresh_lights();
}
+ void set_locked(LightState locked) {
+ locked_light = locked;
+ refresh_lights();
+ }
void highlight_camera_input(int stream_idx) { // -1 for none.
current_highlighted_camera = stream_idx;
refresh_lights();
bool bank_mismatch(int bank_field_number);
void update_lights_lock_held();
- void activate_lights_all_buses(int field_number, std::set<unsigned> *active_lights);
std::atomic<bool> should_quit{false};
int should_quit_fd;
std::atomic<bool> preview_enabled_light{false};
std::atomic<bool> queue_enabled_light{false};
std::atomic<bool> play_enabled_light{false};
+ std::atomic<LightState> locked_light{On};
std::atomic<int> current_highlighted_camera{-1};
MIDIDevice midi_device;