Reset all client/stream volumes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 26.05.09 11:19, Jason Taylor (killerkiwi2005 at gmail.com) wrote:

> Is there a way to reset all volume levels to 100%?
> 
> I could loop through the currently active / previously active
> streams..

I am assuming you are referring to the pa_ext_stream_restore_xxx() API?

Ther eonly way there is right now is loading all entries, patching
them and then rewriting them.

Yes, that part of the API really sucks. gnome-volume-control stumbled
over a very similar problem.

Maybe we should add a call like pa_ext_stream_restore_patch(), which
would take two pa_ext_stream_restore_info structs plus a bit mask that
would specifiy the fields that need to match (positively any maybe
negatively, too? use case?) and the fields that should be
patched. That way you could easily implement what you have been asking
for.

Maybe something like this:

pa_operation *pa_ext_stream_restore_write(
        pa_context *c,
        pa_ext_stream_restore_patch_mode_t mode,
        const *pa_ext_stream_restore_info *match,
        const *pa_ext_stream_restore_info *patch,
        int apply_immediately,
        pa_context_success_cb_t cb,
        void *userdata);

typedef enum pa_ext_stream_restore_patch_mode {
        PA_EXT_STREAM_RESTORE_MATCH_NAME    = 1,
        PA_EXT_STREAM_RESTORE_MATCH_VOLUME  = 2,
        PA_EXT_STREAM_RESTORE_MATCH_DEVICE  = 4,
        PA_EXT_STREAM_RESTORE_MATCH_MUTE    = 8,
        PA_EXT_STREAM_RESTORE_PATCH_VOLUME  = 16,
        PA_EXT_STREAM_RESTORE_PATCH_DEVICE  = 32,
        PA_EXT_STREAM_RESTORE_PATCH_MUTE    = 64
} pa_ext_stream_restore_patch_mode_t;

Dunno, this might be a bit over-the-top. 

Marc-Andre, opinions?

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/           GnuPG 0x1A015CC4



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux