output/PipeWire: move code to OnChannelVolumes()
This commit is contained in:
parent
7b45d01462
commit
792d6584b9
|
@ -222,11 +222,11 @@ private:
|
||||||
o.Drained();
|
o.Drained();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ControlInfo(const struct pw_stream_control *control) noexcept {
|
void OnChannelVolumes(const struct pw_stream_control &control) noexcept {
|
||||||
float sum = std::accumulate(control->values,
|
float sum = std::accumulate(control.values,
|
||||||
control->values + control->n_values,
|
control.values + control.n_values,
|
||||||
0.0f);
|
0.0f);
|
||||||
volume = std::cbrt(sum / control->n_values);
|
volume = std::cbrt(sum / control.n_values);
|
||||||
|
|
||||||
if (mixer != nullptr)
|
if (mixer != nullptr)
|
||||||
pipewire_mixer_on_change(*mixer, volume);
|
pipewire_mixer_on_change(*mixer, volume);
|
||||||
|
@ -234,13 +234,17 @@ private:
|
||||||
pw_thread_loop_signal(thread_loop, false);
|
pw_thread_loop_signal(thread_loop, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ControlInfo(void *data,
|
void ControlInfo([[maybe_unused]] uint32_t id,
|
||||||
[[maybe_unused]] uint32_t id,
|
const struct pw_stream_control &control) noexcept {
|
||||||
|
if (control.name != nullptr &&
|
||||||
|
StringIsEqual(control.name, "Channel Volumes"))
|
||||||
|
OnChannelVolumes(control);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ControlInfo(void *data, uint32_t id,
|
||||||
const struct pw_stream_control *control) noexcept {
|
const struct pw_stream_control *control) noexcept {
|
||||||
auto &o = *(PipeWireOutput *)data;
|
auto &o = *(PipeWireOutput *)data;
|
||||||
if (control->name != nullptr &&
|
o.ControlInfo(id, *control);
|
||||||
StringIsEqual(control->name, "Channel Volumes"))
|
|
||||||
o.ControlInfo(control);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(ENABLE_DSD) && defined(SPA_AUDIO_DSD_FLAG_NONE)
|
#if defined(ENABLE_DSD) && defined(SPA_AUDIO_DSD_FLAG_NONE)
|
||||||
|
|
Loading…
Reference in New Issue