I needed device and stream volume hooks in the Tizen volume API implementation. When trying to add the hooks, I noticed that the volumes are changed from many places, so there was no single place where I could fire the hooks. To make the situation better, I did some refactoring (the first 2 patches). The new hooks are only used in an out-of-tree module, so maybe the last 2 patches shouldn't be applied in upstream? Adding the hooks is pretty harmless, though, and they will probably be used in the future (for example, they could be used in module-dbus-protocol to replace some subscription code). In case I get no comments, I will push all 4 patches. Tanu Kaskinen (4): sink, source: Assign to reference_volume from only one place sink-input, source-output: Assign to volume from only one place sink, source: Add hooks for volume changes sink-input, source-output: Add hooks for volume changes src/pulsecore/core.h | 4 ++ src/pulsecore/sink-input.c | 101 ++++++++++++++++++++++-------------------- src/pulsecore/sink-input.h | 5 +++ src/pulsecore/sink.c | 88 +++++++++++++++++++----------------- src/pulsecore/sink.h | 5 +++ src/pulsecore/source-output.c | 94 +++++++++++++++++++++------------------ src/pulsecore/source-output.h | 5 +++ src/pulsecore/source.c | 89 +++++++++++++++++++------------------ src/pulsecore/source.h | 5 +++ 9 files changed, 222 insertions(+), 174 deletions(-) -- 1.8.3.1