]> git.sesse.net Git - nageru/blobdiff - nageru/input_mapping.cpp
Support delaying audio sources selectively.
[nageru] / nageru / input_mapping.cpp
index dfcc97ce5e6613cd8c51f12d55a1be49433daf5f..e41f9950332244d83a9e4d99c8e200541b9e89eb 100644 (file)
@@ -44,7 +44,13 @@ bool save_input_mapping_to_file(const map<DeviceSpec, DeviceInfo> &devices, cons
                for (const InputMapping::Bus &bus : input_mapping.buses) {
                        if (!used_devices.count(bus.device)) {
                                used_devices.emplace(bus.device, used_devices.size());
-                               global_audio_mixer->serialize_device(bus.device, mapping_proto.add_device());
+                               DeviceSpecProto *device_proto = mapping_proto.add_device();
+                               global_audio_mixer->serialize_device(bus.device, device_proto);
+
+                               const auto delay_it = input_mapping.extra_delay_ms.find(bus.device);
+                               if (delay_it != input_mapping.extra_delay_ms.end()) {
+                                       device_proto->set_extra_delay_ms(delay_it->second);
+                               }
                        }
 
                        BusProto *bus_proto = mapping_proto.add_bus();
@@ -175,6 +181,7 @@ found_alsa_input:
                default:
                        assert(false);
                }
+               new_mapping->extra_delay_ms.emplace(device_mapping.back(), device_proto.extra_delay_ms());
        }
 
        for (const BusProto &bus_proto : mapping_proto.bus()) {