X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Finput_mapping.cpp;fp=nageru%2Finput_mapping.cpp;h=e41f9950332244d83a9e4d99c8e200541b9e89eb;hb=ff13a6a1cc56e97260c2be1ba0d29a435d46c1c3;hp=dfcc97ce5e6613cd8c51f12d55a1be49433daf5f;hpb=d6e55865d7feccfc000c6187e285212fbfb8e9f7;p=nageru diff --git a/nageru/input_mapping.cpp b/nageru/input_mapping.cpp index dfcc97c..e41f995 100644 --- a/nageru/input_mapping.cpp +++ b/nageru/input_mapping.cpp @@ -44,7 +44,13 @@ bool save_input_mapping_to_file(const map &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()) {