- pa_cvolume volume_factor; /* An internally used volume factor that can be used by modules to apply effects and suchlike without having that visible to the outside */
- pa_cvolume soft_volume; /* The internal software volume we apply to all PCM data while it passes through. Usually calculated as real_ratio * volume_factor */
+ /* volume_factor is an internally used "additional volume" that can be used
+ * by modules without having the volume visible to clients. volume_factor
+ * calculated by merging all the individual items in volume_factor_items.
+ * Modules must not modify these variables directly, instead
+ * pa_sink_input_add/remove_volume_factor() have to be used to add and
+ * remove items, or pa_sink_input_new_data_add_volume_factor() during input
+ * creation time. */
+ pa_cvolume volume_factor;
+ pa_hashmap *volume_factor_items;
+ pa_cvolume soft_volume; /* The internal software volume we apply to all PCM data while it passes through. Usually calculated as real_ratio * volume_factor */