Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
a2dp-codec.h
Go to the documentation of this file.
1
4/*
5 * SPDX-License-Identifier: Apache-2.0
6 * Copyright (c) 2015-2016 Intel Corporation
7 *
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 */
20#ifndef ZEPHYR_INCLUDE_BLUETOOTH_A2DP_CODEC_H_
21#define ZEPHYR_INCLUDE_BLUETOOTH_A2DP_CODEC_H_
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* Sampling Frequency */
28#define A2DP_SBC_SAMP_FREQ_16000 BIT(7)
29#define A2DP_SBC_SAMP_FREQ_32000 BIT(6)
30#define A2DP_SBC_SAMP_FREQ_44100 BIT(5)
31#define A2DP_SBC_SAMP_FREQ_48000 BIT(4)
32
33/* Channel Mode */
34#define A2DP_SBC_CH_MODE_MONO BIT(3)
35#define A2DP_SBC_CH_MODE_DUAL BIT(2)
36#define A2DP_SBC_CH_MODE_STREO BIT(1)
37#define A2DP_SBC_CH_MODE_JOINT BIT(0)
38
39/* Block Length */
40#define A2DP_SBC_BLK_LEN_4 BIT(7)
41#define A2DP_SBC_BLK_LEN_8 BIT(6)
42#define A2DP_SBC_BLK_LEN_12 BIT(5)
43#define A2DP_SBC_BLK_LEN_16 BIT(4)
44
45/* Subbands */
46#define A2DP_SBC_SUBBAND_4 BIT(3)
47#define A2DP_SBC_SUBBAND_8 BIT(2)
48
49/* Allocation Method */
50#define A2DP_SBC_ALLOC_MTHD_SNR BIT(1)
51#define A2DP_SBC_ALLOC_MTHD_LOUDNESS BIT(0)
52
53#define BT_A2DP_SBC_SAMP_FREQ(preset) ((preset->config[0] >> 4) & 0x0f)
54#define BT_A2DP_SBC_CHAN_MODE(preset) ((preset->config[0]) & 0x0f)
55#define BT_A2DP_SBC_BLK_LEN(preset) ((preset->config[1] >> 4) & 0x0f)
56#define BT_A2DP_SBC_SUB_BAND(preset) ((preset->config[1] >> 2) & 0x03)
57#define BT_A2DP_SBC_ALLOC_MTHD(preset) ((preset->config[1]) & 0x03)
58
67} __packed;
68
69#ifdef __cplusplus
70}
71#endif
72
73#endif /* ZEPHYR_INCLUDE_BLUETOOTH_A2DP_CODEC_H_ */
__UINT8_TYPE__ uint8_t
Definition: stdint.h:58
SBC Codec.
Definition: a2dp-codec.h:60
uint8_t min_bitpool
Definition: a2dp-codec.h:64
uint8_t max_bitpool
Definition: a2dp-codec.h:66
uint8_t config[2]
Definition: a2dp-codec.h:62