#ifndef AUDIO_SINK_H
#define AUDIO_SINK_H

#include <glib.h>
#include <stddef.h>
#include <stdint.h>

typedef struct AudioSink AudioSink;

/* alsa_device: plughw:X,Y 用于播放 */
AudioSink *audio_sink_start(const char *alsa_device, char **error_message);
void audio_sink_stop(AudioSink *src);

/* 接收 Opus RTP payload 写入播放管道。data 是 Opus payload（不含 RTP 头），size 是字节数 */
gboolean audio_sink_push_opus(AudioSink *src, const uint8_t *data, size_t size);

/* 设置播放音量 0.0~1.0 */
void audio_sink_set_volume(AudioSink *src, double volume);

#endif
