// This way, it is possible to control audio functionality using physical
// pots and faders instead of the mouse.
+#include <stdint.h>
+
#include <atomic>
#include <functional>
#include <map>
#include <memory>
#include <mutex>
-#include <set>
#include <string>
-#include <thread>
#include "defs.h"
-#include "midi_device.h"
+#include "shared/midi_device.h"
class MIDIMappingProto;
virtual void toggle_limiter() = 0;
virtual void toggle_auto_makeup_gain() = 0;
+ // Non-audio events.
+ virtual void switch_video_channel(int channel_number) = 0;
+ virtual void apply_transition(int transition_number) = 0;
+ virtual void prev_audio_view() = 0;
+ virtual void next_audio_view() = 0;
+ virtual void begin_new_segment() = 0;
+ virtual void exit() = 0;
+
// Signals to highlight controls to mark them to the user
// as MIDI-controllable (or not).
virtual void clear_all_highlights() = 0;
void update_highlights();
void update_lights_lock_held();
- void activate_lights(unsigned bus_idx, int field_number, std::set<unsigned> *active_lights);
- void activate_lights_all_buses(int field_number, std::set<unsigned> *active_lights);
+ void activate_lights_all_buses(int field_number, std::map<MIDIDevice::LightKey, uint8_t> *active_lights);
std::atomic<bool> should_quit{false};
- int should_quit_fd;
std::atomic<bool> has_peaked[MAX_BUSES] {{ false }};