#include <pulsecore/core.h>
#include <pulsecore/idxset.h>
#include <pulsecore/memchunk.h>
+#include <pulsecore/mix.h>
#include <pulsecore/source.h>
#include <pulsecore/module.h>
#include <pulsecore/asyncmsgq.h>
pa_cvolume saved_volume;
bool saved_save_volume:1;
+ /* for volume ramps */
+ pa_cvolume_ramp_int ramp;
+
pa_asyncmsgq *asyncmsgq;
pa_memchunk silence;
uint32_t volume_change_safety_margin;
/* Usec delay added to all volume change events, may be negative. */
int32_t volume_change_extra_delay;
+
+ pa_cvolume_ramp_int ramp;
} thread_info;
void *userdata;
PA_SINK_MESSAGE_SET_PORT,
PA_SINK_MESSAGE_UPDATE_VOLUME_AND_MUTE,
PA_SINK_MESSAGE_SET_LATENCY_OFFSET,
+ PA_SINK_MESSAGE_SET_VOLUME_RAMP,
PA_SINK_MESSAGE_MAX
} pa_sink_message_t;
bool pa_sink_update_proplist(pa_sink *s, pa_update_mode_t mode, pa_proplist *p);
+void pa_sink_set_volume_ramp(pa_sink *s, const pa_cvolume_ramp *ramp, bool send_msg, bool save);
+
int pa_sink_set_port(pa_sink *s, const char *name, bool save);
void pa_sink_set_mixer_dirty(pa_sink *s, bool is_dirty);