Merge branch 'v0.23.x'
This commit is contained in:
commit
dd2cab1488
2
NEWS
2
NEWS
|
@ -23,6 +23,8 @@ ver 0.23.9 (not yet released)
|
|||
- cdio_paranoia: add options "mode" and "skip"
|
||||
* decoder
|
||||
- ffmpeg: support FFmpeg 5.1
|
||||
* filter
|
||||
- replay gain: fix delayed volume display with handler=mixer
|
||||
* output
|
||||
- pipewire: set app icon
|
||||
* fix bogus volume levels with multiple partitions
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
#include "tag/ReplayGainInfo.hxx"
|
||||
#include "config/ReplayGainConfig.hxx"
|
||||
#include "mixer/MixerControl.hxx"
|
||||
#include "mixer/MixerInternal.hxx"
|
||||
#include "mixer/Listener.hxx"
|
||||
#include "pcm/AudioFormat.hxx"
|
||||
#include "pcm/Volume.hxx"
|
||||
#include "util/Domain.hxx"
|
||||
|
@ -170,9 +172,11 @@ ReplayGainFilter::Update()
|
|||
try {
|
||||
mixer_set_volume(mixer, _volume);
|
||||
|
||||
/* TODO: emit this idle event only for the
|
||||
current partition */
|
||||
idle_add(IDLE_MIXER);
|
||||
/* invoke the mixer's listener manually, just
|
||||
in case the mixer implementation didn't do
|
||||
that already (this depends on the
|
||||
implementation) */
|
||||
mixer->listener.OnMixerVolumeChanged(*mixer, _volume);
|
||||
} catch (...) {
|
||||
LogError(std::current_exception(),
|
||||
"Failed to update hardware mixer");
|
||||
|
|
|
@ -188,8 +188,8 @@ MultipleOutputs::SetSoftwareVolume(unsigned volume) noexcept
|
|||
auto *mixer = ao->GetMixer();
|
||||
|
||||
if (mixer != nullptr &&
|
||||
(&mixer->plugin == &software_mixer_plugin ||
|
||||
&mixer->plugin == &null_mixer_plugin))
|
||||
(mixer->IsPlugin(software_mixer_plugin) ||
|
||||
mixer->IsPlugin(null_mixer_plugin)))
|
||||
mixer_set_volume(mixer, volume);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -92,7 +92,7 @@ mixer_close(Mixer *mixer)
|
|||
void
|
||||
mixer_auto_close(Mixer *mixer)
|
||||
{
|
||||
if (!mixer->plugin.global)
|
||||
if (!mixer->IsGlobal())
|
||||
mixer_close(mixer);
|
||||
}
|
||||
|
||||
|
@ -103,7 +103,7 @@ mixer_get_volume(Mixer *mixer)
|
|||
|
||||
assert(mixer != nullptr);
|
||||
|
||||
if (mixer->plugin.global && !mixer->failure)
|
||||
if (mixer->IsGlobal() && !mixer->failure)
|
||||
mixer_open(mixer);
|
||||
|
||||
const std::scoped_lock<Mutex> protect(mixer->mutex);
|
||||
|
@ -128,7 +128,7 @@ mixer_set_volume(Mixer *mixer, unsigned volume)
|
|||
assert(mixer != nullptr);
|
||||
assert(volume <= 100);
|
||||
|
||||
if (mixer->plugin.global && !mixer->failure)
|
||||
if (mixer->IsGlobal() && !mixer->failure)
|
||||
mixer_open(mixer);
|
||||
|
||||
const std::scoped_lock<Mutex> protect(mixer->mutex);
|
||||
|
|
Loading…
Reference in New Issue