]> git.sesse.net Git - nageru/blobdiff - futatabi/midi_mapper.h
Blink the lock light if dragging the speed slider when locked.
[nageru] / futatabi / midi_mapper.h
index 7b489ab274ca8ffa71db117473889179b67ff612..abaadaf44842032610d7d982e7408a229b9019fa 100644 (file)
@@ -15,7 +15,6 @@
 #include <functional>
 #include <memory>
 #include <mutex>
-#include <set>
 #include <string>
 #include <thread>
 
@@ -46,6 +45,13 @@ public:
 
 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);
@@ -69,7 +75,7 @@ public:
                play_enabled_light = enabled;
                refresh_lights();
        }
-       void set_locked(bool locked) {
+       void set_locked(LightState locked) {
                locked_light = locked;
                refresh_lights();
        }
@@ -90,7 +96,6 @@ private:
        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;
@@ -104,7 +109,7 @@ private:
        std::atomic<bool> preview_enabled_light{false};
        std::atomic<bool> queue_enabled_light{false};
        std::atomic<bool> play_enabled_light{false};
-       std::atomic<bool> locked_light{true};
+       std::atomic<LightState> locked_light{On};
        std::atomic<int> current_highlighted_camera{-1};
 
        MIDIDevice midi_device;