X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=midi_mapper.h;h=84baf1f98d707760051e0142bf35f067b7a2cce0;hb=afe996bc7dfc8689ca356d00824fbfcd632f93a2;hp=2b59b9ff53428cb1a02656049313014ee04548b4;hpb=6379b0adf2cee84b46d5a0d8e2ee5e6a7d1615cf;p=nageru diff --git a/midi_mapper.h b/midi_mapper.h index 2b59b9f..84baf1f 100644 --- a/midi_mapper.h +++ b/midi_mapper.h @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -46,7 +47,7 @@ public: virtual ~MIDIMapper(); void set_midi_mapping(const MIDIMappingProto &new_mapping); void start_thread(); - const MIDIMappingProto &get_current_mapping() const { return *mapping_proto; } + const MIDIMappingProto &get_current_mapping() const; private: void thread_func(); @@ -60,9 +61,10 @@ private: std::atomic should_quit{false}; int should_quit_fd; - std::unique_ptr mapping_proto; - int num_controller_banks; - int current_controller_bank = 0; + mutable std::mutex mapping_mu; + std::unique_ptr mapping_proto; // Under . + int num_controller_banks; // Under . + std::atomic current_controller_bank{0}; std::thread midi_thread; };