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