123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- /** @file
- * @brief Advance Audio Distribution Profile header.
- */
- /*
- * Copyright (c) 2015-2016 Intel Corporation
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- #ifndef ZEPHYR_INCLUDE_BLUETOOTH_A2DP_H_
- #define ZEPHYR_INCLUDE_BLUETOOTH_A2DP_H_
- #include <bluetooth/avdtp.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /** @brief Stream Structure */
- struct bt_a2dp_stream {
- /* TODO */
- };
- /** @brief Codec ID */
- enum bt_a2dp_codec_id {
- /** Codec SBC */
- BT_A2DP_SBC = 0x00,
- /** Codec MPEG-1 */
- BT_A2DP_MPEG1 = 0x01,
- /** Codec MPEG-2 */
- BT_A2DP_MPEG2 = 0x02,
- /** Codec ATRAC */
- BT_A2DP_ATRAC = 0x04,
- /** Codec Non-A2DP */
- BT_A2DP_VENDOR = 0xff
- };
- /** @brief Preset for the endpoint */
- struct bt_a2dp_preset {
- /** Length of preset */
- uint8_t len;
- /** Preset */
- uint8_t preset[0];
- };
- /** @brief Stream End Point */
- struct bt_a2dp_endpoint {
- /** Code ID */
- uint8_t codec_id;
- /** Stream End Point Information */
- struct bt_avdtp_seid_lsep info;
- /** Pointer to preset codec chosen */
- struct bt_a2dp_preset *preset;
- /** Capabilities */
- struct bt_a2dp_preset *caps;
- };
- /** @brief Stream End Point Media Type */
- enum MEDIA_TYPE {
- /** Audio Media Type */
- BT_A2DP_AUDIO = 0x00,
- /** Video Media Type */
- BT_A2DP_VIDEO = 0x01,
- /** Multimedia Media Type */
- BT_A2DP_MULTIMEDIA = 0x02
- };
- /** @brief Stream End Point Role */
- enum ROLE_TYPE {
- /** Source Role */
- BT_A2DP_SOURCE = 0,
- /** Sink Role */
- BT_A2DP_SINK = 1
- };
- /** @brief A2DP structure */
- struct bt_a2dp;
- /** @brief A2DP Connect.
- *
- * This function is to be called after the conn parameter is obtained by
- * performing a GAP procedure. The API is to be used to establish A2DP
- * connection between devices.
- *
- * @param conn Pointer to bt_conn structure.
- *
- * @return pointer to struct bt_a2dp in case of success or NULL in case
- * of error.
- */
- struct bt_a2dp *bt_a2dp_connect(struct bt_conn *conn);
- /** @brief Endpoint Registration.
- *
- * This function is used for registering the stream end points. The user has
- * to take care of allocating the memory, the preset pointer and then pass the
- * required arguments. Also, only one sep can be registered at a time.
- *
- * @param endpoint Pointer to bt_a2dp_endpoint structure.
- * @param media_type Media type that the Endpoint is.
- * @param role Role of Endpoint.
- *
- * @return 0 in case of success and error code in case of error.
- */
- int bt_a2dp_register_endpoint(struct bt_a2dp_endpoint *endpoint,
- uint8_t media_type, uint8_t role);
- #ifdef __cplusplus
- }
- #endif
- #endif /* ZEPHYR_INCLUDE_BLUETOOTH_A2DP_H_ */
|