]> git.sesse.net Git - nageru/blobdiff - futatabi/midi_mapper.cpp
Add infrastructure for MIDI lights that are controllers instead of notes.
[nageru] / futatabi / midi_mapper.cpp
index 63b21e44fa7c6fb53c089caa89d4a42686a51cd4..93e367a77aa1ad0987c1a0f40e38372f90c0f14f 100644 (file)
@@ -206,7 +206,7 @@ void MIDIMapper::refresh_lights()
 
 void MIDIMapper::update_lights_lock_held()
 {
-       map<unsigned, uint8_t> active_lights;  // Desired state.
+       map<MIDIDevice::LightKey, uint8_t> active_lights;  // Desired state.
        if (current_controller_bank == 0) {
                activate_mapped_light(*mapping_proto, MIDIMappingProto::kBank1IsSelectedFieldNumber, &active_lights);
        }
@@ -222,8 +222,10 @@ void MIDIMapper::update_lights_lock_held()
        if (current_controller_bank == 4) {
                activate_mapped_light(*mapping_proto, MIDIMappingProto::kBank5IsSelectedFieldNumber, &active_lights);
        }
-       if (preview_enabled_light) {
-               activate_mapped_light(*mapping_proto, MIDIMappingProto::kPreviewEnabledFieldNumber, &active_lights);
+       if (preview_enabled_light == On) {  // Playing.
+               activate_mapped_light(*mapping_proto, MIDIMappingProto::kPreviewPlayingFieldNumber, &active_lights);
+       } else if (preview_enabled_light == Blinking) {  // Preview ready.
+               activate_mapped_light(*mapping_proto, MIDIMappingProto::kPreviewReadyFieldNumber, &active_lights);
        }
        if (queue_enabled_light) {
                activate_mapped_light(*mapping_proto, MIDIMappingProto::kQueueEnabledFieldNumber, &active_lights);
@@ -244,8 +246,8 @@ void MIDIMapper::update_lights_lock_held()
        }
 
        // These are always enabled right now.
-       activate_mapped_light(*mapping_proto, MIDIMappingProto::kCueInFieldNumber, &active_lights);
-       activate_mapped_light(*mapping_proto, MIDIMappingProto::kCueOutFieldNumber, &active_lights);
+       activate_mapped_light(*mapping_proto, MIDIMappingProto::kCueInEnabledFieldNumber, &active_lights);
+       activate_mapped_light(*mapping_proto, MIDIMappingProto::kCueOutEnabledFieldNumber, &active_lights);
 
        midi_device.update_lights(active_lights);
 }