]> git.sesse.net Git - nageru/blobdiff - midi_mapper.cpp
Support audio-only FFmpeg inputs. Somewhat wonky, though.
[nageru] / midi_mapper.cpp
index fc3b4ef30bf06b274661ad6aa9415d4d0dbb4ff0..3b22192b3b8b0670356ebdb9230a8133777b0983 100644 (file)
@@ -270,6 +270,8 @@ void MIDIMapper::handle_event(snd_seq_t *seq, snd_seq_event_t *event)
                        value, bind(&ControllerReceiver::set_makeup_gain, receiver, _2));
 
                // Bus controllers.
+               match_controller(controller, MIDIMappingBusProto::kStereoWidthFieldNumber, MIDIMappingProto::kStereoWidthBankFieldNumber,
+                       value, bind(&ControllerReceiver::set_stereo_width, receiver, _1, _2));
                match_controller(controller, MIDIMappingBusProto::kTrebleFieldNumber, MIDIMappingProto::kTrebleBankFieldNumber,
                        value, bind(&ControllerReceiver::set_treble, receiver, _1, _2));
                match_controller(controller, MIDIMappingBusProto::kMidFieldNumber, MIDIMappingProto::kMidBankFieldNumber,
@@ -396,6 +398,11 @@ void MIDIMapper::subscribe_to_port_lock_held(snd_seq_t *seq, const snd_seq_addr_
                return;
        }
 
+       // Don't listen to ourselves.
+       if (addr.client == snd_seq_client_id(seq)) {
+               return;
+       }
+
        int err = snd_seq_connect_from(seq, 0, addr.client, addr.port);
        if (err < 0) {
                // Just print out a warning (i.e., don't die); it could
@@ -538,6 +545,8 @@ void MIDIMapper::update_highlights()
 
        // Per-bus controllers.
        for (size_t bus_idx = 0; bus_idx < size_t(mapping_proto->bus_mapping_size()); ++bus_idx) {
+               receiver->highlight_stereo_width(bus_idx, has_active_controller(
+                       bus_idx, MIDIMappingBusProto::kStereoWidthFieldNumber, MIDIMappingProto::kStereoWidthBankFieldNumber));
                receiver->highlight_treble(bus_idx, has_active_controller(
                        bus_idx, MIDIMappingBusProto::kTrebleFieldNumber, MIDIMappingProto::kTrebleBankFieldNumber));
                receiver->highlight_mid(bus_idx, has_active_controller(