Bug 54252 - [cleanup] sync_input_volumes_within_thread() has unnecessary code duplication
[cleanup] sync_input_volumes_within_thread() has unnecessary code duplication
Status: NEW
Product: PulseAudio
Classification: Unclassified
Component: core
unspecified
Other All
: medium enhancement
Assigned To: pulseaudio-bugs
pulseaudio-bugs
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-08-30 08:41 UTC by Tanu Kaskinen
Modified: 2012-08-30 08:41 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tanu Kaskinen 2012-08-30 08:41:04 UTC
This is sync_input_volumes_within_thread():

static void sync_input_volumes_within_thread(pa_sink *s) {
    pa_sink_input *i;
    void *state = NULL;

    pa_sink_assert_ref(s);
    pa_sink_assert_io_context(s);

    PA_HASHMAP_FOREACH(i, s->thread_info.inputs, state) {
        if (pa_cvolume_equal(&i->thread_info.soft_volume, &i->soft_volume))
            continue;

        i->thread_info.soft_volume = i->soft_volume;
        pa_sink_input_request_rewind(i, 0, TRUE, FALSE, FALSE);
    }
}


And this is the PA_SINK_INPUT_MESSAGE_SET_SOFT_VOLUME handler:

case PA_SINK_INPUT_MESSAGE_SET_SOFT_VOLUME:
    if (!pa_cvolume_equal(&i->thread_info.soft_volume, &i->soft_volume)) {
        i->thread_info.soft_volume = i->soft_volume;
        pa_sink_input_request_rewind(i, 0, TRUE, FALSE, FALSE);
    }
    return 0;


Instead of duplicating the code in the SET_SOFT_VOLUME handler, sync_input_volumes_within_thread() should call i->process_msg(PA_SINK_INPUT_MESSAGE_SET_SOFT_VOLUME).