X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=futatabi%2Fmidi_mapper.h;h=84ff404b1f0b956830a475f4cf18318680a5e461;hb=13c7a8f2386ca7fbe9f6e04d24bd584993dc76c6;hp=c1d6639858d1c697795692e05f16d6883a5263db;hpb=3fbdb43f7b184d6805b4fdab070015ee705ab6db;p=nageru diff --git a/futatabi/midi_mapper.h b/futatabi/midi_mapper.h index c1d6639..84ff404 100644 --- a/futatabi/midi_mapper.h +++ b/futatabi/midi_mapper.h @@ -31,6 +31,7 @@ public: virtual void preview() = 0; virtual void queue() = 0; virtual void play() = 0; + virtual void next() = 0; virtual void toggle_lock() = 0; virtual void jog(int delta) = 0; virtual void switch_camera(unsigned camera_idx) = 0; @@ -75,6 +76,10 @@ public: play_enabled_light = enabled; refresh_lights(); } + void set_next_ready(LightState enabled) { + next_ready_light = enabled; + refresh_lights(); + } void set_locked(LightState locked) { locked_light = locked; refresh_lights(); @@ -83,6 +88,10 @@ public: current_highlighted_camera = stream_idx; refresh_lights(); } + void set_speed_light(float speed) { // Goes from 0.0 to 2.0. + current_speed = speed; + refresh_lights(); + } // MIDIReceiver. void controller_received(int controller, int value) override; @@ -98,7 +107,6 @@ private: void update_lights_lock_held(); std::atomic should_quit{false}; - int should_quit_fd; mutable std::mutex mu; ControllerReceiver *receiver; // Under . @@ -109,8 +117,10 @@ private: std::atomic preview_enabled_light{Off}; std::atomic queue_enabled_light{false}; std::atomic play_enabled_light{Off}; + std::atomic next_ready_light{Off}; std::atomic locked_light{On}; std::atomic current_highlighted_camera{-1}; + std::atomic current_speed{1.0f}; MIDIDevice midi_device; };