/*
|
* BlueALSA - bluez-a2dp.h
|
* Copyright (c) 2016-2018 Arkadiusz Bokowy
|
*
|
* This file is a part of bluez-alsa.
|
*
|
* This project is licensed under the terms of the MIT license.
|
*
|
*/
|
|
#ifndef BLUEALSA_BLUEZA2DP_H_
|
#define BLUEALSA_BLUEZA2DP_H_
|
|
#include <stddef.h>
|
|
#include "a2dp-codecs.h"
|
|
enum bluez_a2dp_dir {
|
BLUEZ_A2DP_SOURCE,
|
BLUEZ_A2DP_SINK,
|
};
|
|
enum bluez_a2dp_chm {
|
BLUEZ_A2DP_CHM_MONO = 0,
|
/* fixed bit-rate for each channel */
|
BLUEZ_A2DP_CHM_DUAL_CHANNEL,
|
/* channel bits allocated dynamically */
|
BLUEZ_A2DP_CHM_STEREO,
|
/* L+R (mid) and L-R (side) encoding */
|
BLUEZ_A2DP_CHM_JOINT_STEREO,
|
};
|
|
struct bluez_a2dp_channel_mode {
|
enum bluez_a2dp_chm mode;
|
uint16_t value;
|
};
|
|
struct bluez_a2dp_sampling_freq {
|
int frequency;
|
uint16_t value;
|
};
|
|
struct bluez_a2dp_codec {
|
enum bluez_a2dp_dir dir;
|
uint16_t id;
|
/* capabilities configuration element */
|
const void *cfg;
|
size_t cfg_size;
|
/* list of supported channel modes */
|
const struct bluez_a2dp_channel_mode *channels;
|
size_t channels_size;
|
/* list of supported sampling frequencies */
|
const struct bluez_a2dp_sampling_freq *samplings;
|
size_t samplings_size;
|
};
|
|
/* NULL-terminated list of available A2DP codecs */
|
const struct bluez_a2dp_codec **bluez_a2dp_codecs;
|
|
#endif
|