X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=midi_mapping.proto;h=36bfe8d444aad8e2b7e7b5a9bbd4d81548da7359;hb=9e47a2f661b9d292598ef0277e507458e3dad62f;hp=5809ffe02bfb1cc95f5405931beab4bd961a42dd;hpb=2068106ac4d44719e78d2931ccbe2fe67947b381;p=nageru diff --git a/midi_mapping.proto b/midi_mapping.proto index 5809ffe..36bfe8d 100644 --- a/midi_mapping.proto +++ b/midi_mapping.proto @@ -14,6 +14,10 @@ message MIDIButtonProto { required int32 note_number = 1; } +message MIDILightProto { + required int32 note_number = 1; +} + // All the mappings for a given a bus. message MIDIMappingBusProto { // TODO: If we need support for lots of buses (i.e., more than the typical eight @@ -27,35 +31,50 @@ message MIDIMappingBusProto { optional MIDIControllerProto compressor_threshold = 6; optional MIDIControllerProto fader = 7; - // TODO: Add mute and cue? (Of course, we should those to the UI before - // making them MIDI controllable.) - optional MIDIButtonProto toggle_locut = 8; - optional MIDIButtonProto toggle_auto_gain_staging = 9; - optional MIDIButtonProto toggle_compressor = 10; - optional MIDIButtonProto clear_peak = 11; + optional MIDIButtonProto toggle_mute = 8; + optional MIDIButtonProto toggle_locut = 9; + optional MIDIButtonProto toggle_auto_gain_staging = 10; + optional MIDIButtonProto toggle_compressor = 11; + optional MIDIButtonProto clear_peak = 12; // These are really global (controller bank change affects all buss), // but it's not uncommon that we'd want one button per bus to switch banks. // E.g., if the user binds the “mute” button to “next bank”, they'd want every // mute button on the mixer to do that, so they need one mapping per bus. - optional MIDIButtonProto prev_bank = 12; - optional MIDIButtonProto next_bank = 13; - optional MIDIButtonProto select_bank_1 = 14; - optional MIDIButtonProto select_bank_2 = 15; - optional MIDIButtonProto select_bank_3 = 16; - optional MIDIButtonProto select_bank_4 = 17; - optional MIDIButtonProto select_bank_5 = 18; - optional MIDIButtonProto toggle_limiter = 19; - optional MIDIButtonProto toggle_auto_makeup_gain = 20; + optional MIDIButtonProto prev_bank = 13; + optional MIDIButtonProto next_bank = 14; + optional MIDIButtonProto select_bank_1 = 15; + optional MIDIButtonProto select_bank_2 = 16; + optional MIDIButtonProto select_bank_3 = 17; + optional MIDIButtonProto select_bank_4 = 18; + optional MIDIButtonProto select_bank_5 = 19; + optional MIDIButtonProto toggle_limiter = 20; + optional MIDIButtonProto toggle_auto_makeup_gain = 21; // These are also global (they belong to the master bus), and unlike // the bank change commands, one would usually have only one of each, // but there's no reason to limit them to one each, and the editor UI // becomes simpler if they are the treated the same way as the bank // commands. - optional MIDIControllerProto locut = 21; - optional MIDIControllerProto limiter_threshold = 22; - optional MIDIControllerProto makeup_gain = 23; + optional MIDIControllerProto locut = 22; + optional MIDIControllerProto limiter_threshold = 23; + optional MIDIControllerProto makeup_gain = 24; + + // Per-bus lights. + optional MIDILightProto is_muted = 25; + optional MIDILightProto locut_is_on = 26; + optional MIDILightProto auto_gain_staging_is_on = 27; + optional MIDILightProto compressor_is_on = 28; + optional MIDILightProto has_peaked = 29; + + // Global lights. Same logic as above for why they're in this proto. + optional MIDILightProto bank_1_is_selected = 30; + optional MIDILightProto bank_2_is_selected = 31; + optional MIDILightProto bank_3_is_selected = 32; + optional MIDILightProto bank_4_is_selected = 33; + optional MIDILightProto bank_5_is_selected = 34; + optional MIDILightProto limiter_is_on = 35; + optional MIDILightProto auto_makeup_gain_is_on = 36; } // The top-level protobuf, containing all the bus mappings, as well as @@ -79,19 +98,20 @@ message MIDIMappingProto { optional int32 fader_bank = 7; // Bus button banks. - optional int32 toggle_locut_bank = 8; - optional int32 toggle_auto_gain_staging_bank = 9; - optional int32 toggle_compressor_bank = 10; - optional int32 clear_peak_bank = 11; + optional int32 toggle_mute_bank = 8; + optional int32 toggle_locut_bank = 9; + optional int32 toggle_auto_gain_staging_bank = 10; + optional int32 toggle_compressor_bank = 11; + optional int32 clear_peak_bank = 12; // Global controller banks. - optional int32 locut_bank = 12; - optional int32 limiter_threshold_bank = 13; - optional int32 makeup_gain_bank = 14; + optional int32 locut_bank = 13; + optional int32 limiter_threshold_bank = 14; + optional int32 makeup_gain_bank = 15; // Global buttons. - optional int32 toggle_limiter_bank = 15; - optional int32 toggle_auto_makeup_gain_bank = 16; + optional int32 toggle_limiter_bank = 16; + optional int32 toggle_auto_makeup_gain_bank = 17; - repeated MIDIMappingBusProto bus_mapping = 17; + repeated MIDIMappingBusProto bus_mapping = 18; }