X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=audio_mixer.cpp;h=8d09ad3bfa9a279f5d74af38613503ce835311e8;hb=b90b0d462921973c88952ca82f8d3dbc53e046df;hp=40470f3a18e70c5d43e158303f89e84960d6018e;hpb=92246b3e7e2d914a0549bbc7f90dd07ff3fd103a;p=nageru diff --git a/audio_mixer.cpp b/audio_mixer.cpp index 40470f3..8d09ad3 100644 --- a/audio_mixer.cpp +++ b/audio_mixer.cpp @@ -557,9 +557,17 @@ void AudioMixer::send_audio_level_callback() vector bus_levels; bus_levels.resize(input_mapping.buses.size()); - for (unsigned bus_index = 0; bus_index < bus_r128.size(); ++bus_index) { - bus_levels[bus_index].loudness_lufs = bus_r128[bus_index]->loudness_S(); - bus_levels[bus_index].gain_staging_db = gain_staging_db[bus_index]; + { + lock_guard lock(compressor_mutex); + for (unsigned bus_index = 0; bus_index < bus_r128.size(); ++bus_index) { + bus_levels[bus_index].loudness_lufs = bus_r128[bus_index]->loudness_S(); + bus_levels[bus_index].gain_staging_db = gain_staging_db[bus_index]; + if (compressor_enabled[bus_index]) { + bus_levels[bus_index].compressor_attenuation_db = -to_db(compressor[bus_index]->get_attenuation()); + } else { + bus_levels[bus_index].compressor_attenuation_db = 0.0; + } + } } audio_level_callback(loudness_s, to_db(peak), bus_levels,