+ * will be sent to the IO thread instead.
+ *
+ * You must use the function pa_source_set_set_volume_callback() to
+ * set this callback. */
+ pa_source_cb_t set_volume; /* may be NULL */
+
+ /* Source drivers that set PA_SOURCE_DEFERRED_VOLUME must provide this
+ * callback. This callback is not used with source that do not set
+ * PA_SOURCE_DEFERRED_VOLUME. This is called from the IO thread when a
+ * pending hardware volume change has to be written to the
+ * hardware. The requested volume is passed to the callback
+ * implementation in s->thread_info.current_hw_volume.
+ *
+ * The call is done inside pa_source_volume_change_apply(), which is
+ * not called automatically - it is the driver's responsibility to
+ * schedule that function to be called at the right times in the
+ * IO thread.
+ *
+ * You must use the function pa_source_set_write_volume_callback() to
+ * set this callback. */
+ pa_source_cb_t write_volume; /* may be NULL */