summaryrefslogtreecommitdiffstats
path: root/audio/a2dp.h
diff options
context:
space:
mode:
Diffstat (limited to 'audio/a2dp.h')
-rw-r--r--audio/a2dp.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/audio/a2dp.h b/audio/a2dp.h
index 153a1731..7e53f7a9 100644
--- a/audio/a2dp.h
+++ b/audio/a2dp.h
@@ -21,3 +21,51 @@
*
*/
+#include <dbus.h>
+#include <glib.h>
+#include "avdtp.h"
+
+#define A2DP_CODEC_SBC 0x00
+#define A2DP_CODEC_MPEG12 0x01
+#define A2DP_CODEC_MPEG24 0x02
+#define A2DP_CODEC_ATRAC 0x03
+
+#define A2DP_SAMPLING_FREQ_16000 (1 << 3)
+#define A2DP_SAMPLING_FREQ_32000 (1 << 2)
+#define A2DP_SAMPLING_FREQ_44100 (1 << 1)
+#define A2DP_SAMPLING_FREQ_48000 1
+
+#define A2DP_CHANNEL_MODE_MONO (1 << 3)
+#define A2DP_CHANNEL_MODE_DUAL_CHANNEL (1 << 2)
+#define A2DP_CHANNEL_MODE_STEREO (1 << 1)
+#define A2DP_CHANNEL_MODE_JOINT_STEREO 1
+
+#define A2DP_BLOCK_LENGTH_4 (1 << 3)
+#define A2DP_BLOCK_LENGTH_8 (1 << 2)
+#define A2DP_BLOCK_LENGTH_12 (1 << 1)
+#define A2DP_BLOCK_LENGTH_16 1
+
+#define A2DP_SUBBANDS_4 (1 << 1)
+#define A2DP_SUBBANDS_8 1
+
+#define A2DP_ALLOCATION_SNR (1 << 1)
+#define A2DP_ALLOCATION_LOUDNESS 1
+
+struct sbc_codec_cap {
+ struct avdtp_media_codec_capability cap;
+ uint8_t channel_mode:4;
+ uint8_t frequency:4;
+ uint8_t allocation_method:2;
+ uint8_t subbands:2;
+ uint8_t block_length:4;
+ uint8_t min_bitpool;
+ uint8_t max_bitpool;
+} __attribute__ ((packed));
+
+int a2dp_init(DBusConnection *conn, gboolean enable_sink,
+ gboolean enable_source);
+void a2dp_exit(void);
+
+gboolean a2dp_select_capabilities(struct avdtp_remote_sep *rsep, GSList **caps);
+
+gboolean a2dp_get_config(struct avdtp_stream *stream, struct ipc_data_cfg **cfg);