DM BT APIs
Important
The DM BT API v1.0 is the lastest stable DM BT APIs. All new applications should use DM BT API v1.0.
DM BT API Categories
Most of DM BT APIs can be categoried as:
- Interface specific DM BT APIs:
BT common interface
BT A2DP Sink interface
Application Example
Check projects/lvgl/soundbar folder, which contains the following application:
There is a A2DP sink client demo. This demo can be discovered and connected by A2DP source device and receive the audio stream from remote device
API Reference
Header File
Functions
-
bt_err_t bk_bt_gap_set_event_callback(bt_event_cb_t func)
sets BT event callback function
- Parameters
func – [in] : callback
- Returns
BK_ERR_BT_SUCCESS : Succeed
BK_ERR_BT_FAIL: others
-
bt_err_t bk_bt_gap_linkkey_reply(uint8_t is_exist, bk_bt_linkkey_storage_t *key)
send linkkey when peer need authentication
- Attention
key->addr must be valued
- Parameters
is_exist – [in] : if linkkey exist. If no exist, peer may trigger pair procedure
key – [in] : linkkey,
- Returns
BK_ERR_BT_SUCCESS : Succeed
BK_ERR_BT_FAIL: others
-
bt_err_t bk_bt_gap_set_visibility(bk_bt_conn_mode_t conn_mode, bk_bt_disc_mode_t disc_mode)
sets the Bluetooth connectable, discoverable
- Parameters
conn_mode – [in] : one of the enums of bk_bt_conn_mode_t
disc_mode – [in] : one of the enums of bk_bt_disc_mode_t
- Returns
BK_ERR_BT_SUCCESS : Succeed
BK_ERR_BT_FAIL: others
-
bt_err_t bk_bt_gap_set_device_class(uint32_t cod)
set the class of device
See also
enum common_cod_t)
- Parameters
cod, : – [in] Class of Device for the device(
- Returns
BK_ERR_BT_SUCCESS: succeed
others: fail
-
bt_err_t bk_bt_gap_set_local_name(uint8_t *name, uint8_t len)
set the local name
- Parameters
name, : – [in] pointer of name
len, : – [in] the length of name
- Returns
BK_ERR_BT_SUCCESS: succeed
others: fail
-
bt_err_t bk_bt_a2dp_sink_init(uint8_t aac_supported)
Initialize the bluetooth A2DP sink module.
- Parameters
aac_supported, : – [in] 1 means aac is supported, 0 means aac is not supported.
- Returns
BK_ERR_BT_SUCCESS: the initialization request is successfully
others: fail
-
bt_err_t bk_bt_a2dp_register_callback(bk_bt_a2dp_cb_t callback)
Register application callback function to A2DP module. used by both A2DP source and sink.
- Parameters
callback, : – [in] A2DP event callback function
- Returns
BK_ERR_BT_SUCCESS: success
others: fail
-
bt_err_t bk_bt_a2dp_sink_register_data_callback(bk_bt_sink_data_cb_t callback)
Register A2DP sink data output function;.
- Parameters
callback, : – [in] A2DP sink data callback function
- Returns
BK_ERR_BT_SUCCESS: success
others: fail
-
bt_err_t bk_bt_a2dp_sink_connect(uint8_t *remote_bda)
Connect to remote bluetooth A2DP source device. This API must be called after bk_bt_a2dp_sink_init().
- Parameters
remote_bda, : – [in] remote bluetooth device address
- Returns
BK_ERR_BT_SUCCESS: success
others: fail
-
bt_err_t bk_bt_a2dp_sink_disconnect(uint8_t *remote_bda)
Disconnect from the remote A2DP source device. This API must be called after bk_bt_a2dp_sink_init().
- Parameters
remote_bda, : – [in] remote bluetooth device address
- Returns
BK_ERR_BT_SUCCESS: success
others: fail
-
bt_err_t bk_bt_avrcp_ct_init(void)
Initialize the bluetooth AVRCP controller module.
- Returns
BK_ERR_BT_SUCCESS: success
others: fail
-
bt_err_t bk_bt_avrcp_tg_init(void)
Initialize the bluetooth AVRCP target module.
- Returns
BK_ERR_BT_SUCCESS: success
others: fail
-
bt_err_t bk_bt_avrcp_ct_register_callback(bk_avrcp_ct_cb_t callback)
Register application callbacks to AVRCP module.
- Parameters
callback, : – [in] AVRCP controller callback function
- Returns
BK_ERR_BT_SUCCESS: success
others: fail
-
bt_err_t bk_bt_avrcp_ct_send_get_rn_capabilities_cmd(uint8_t *remote_bda)
Send GetCapabilities PDU to AVRCP target to retrieve remote device’s supported notification event_ids. This function should be called after BK_AVRCP_CT_CONNECTION_STATE_EVT is received and AVRCP connection is established.
- Parameters
remote_bda, : – [in] remote bluetooth device address
- Returns
BK_ERR_BT_SUCCESS: success
others: fail
-
bt_err_t bk_bt_ct_send_register_notification_cmd(uint8_t *remote_bda, uint8_t event_id, uint32_t event_parameter)
Send register notification command to AVRCP target. This function should be called after BK_AVRCP_CT_CONNECTION_STATE_EVT is received and AVRCP connection is established.
- Parameters
remote_bda, : – [in] remote bluetooth device address
event_id – [in] : id of events, e.g. BK_AVRCP_RN_PLAY_STATUS_CHANGE, BK_AVRCP_RN_TRACK_CHANGE, etc.
event_parameter – [in] : playback interval for BK_AVRCP_RN_PLAY_POS_CHANGED; For other events , value of this parameter is ignored.
- Returns
BK_ERR_BT_SUCCESS: success
others: fail
-
bt_err_t bk_bt_avrcp_ct_send_passthrough_cmd(uint8_t *remote_bda, uint8_t key_code, uint8_t key_state)
Send passthrough command to AVRCP target. This function should be called after BK_AVRCP_CT_CONNECTION_STATE_EVT is received and AVRCP connection is established.
- Parameters
remote_bda, : – [in] remote bluetooth device address.
key_code – [in] : passthrough command code, e.g. BK_AVRCP_PT_CMD_PLAY, BK_AVRCP_PT_CMD_STOP, etc.
key_state – [in] : passthrough command key state, BK_AVRCP_PT_CMD_STATE_PRESSED or BK_AVRCP_PT_CMD_STATE_RELEASED
- Returns
BK_ERR_BT_SUCCESS: success
others: fail
API Typedefs
Header File
Unions
-
union bk_a2dp_cb_param_t
- #include <dm_bt_types.h>
A2DP state callback parameters.
Public Members
-
struct bk_a2dp_cb_param_t::a2dp_conn_state_param conn_state
A2DP connection status
-
struct bk_a2dp_cb_param_t::a2dp_audio_state_param audio_state
audio stream playing state
-
struct bk_a2dp_cb_param_t::a2dp_audio_cfg_param audio_cfg
media codec configuration information
-
struct a2dp_audio_cfg_param
- #include <dm_bt_types.h>
BK_A2DP_AUDIO_CFG_EVT.
Public Members
-
uint8_t remote_bda[6]
remote bluetooth device address
-
bk_a2dp_mcc_t mcc
A2DP media codec capability information
-
uint8_t remote_bda[6]
-
struct a2dp_audio_state_param
- #include <dm_bt_types.h>
BK_A2DP_AUDIO_STATE_EVT.
Public Members
-
bk_a2dp_audio_state_t state
one of the values from bk_a2dp_audio_state_t
-
uint8_t remote_bda[6]
remote bluetooth device address
-
bk_a2dp_audio_state_t state
-
struct a2dp_conn_state_param
- #include <dm_bt_types.h>
BK_A2DP_CONNECTION_STATE_EVT.
Public Members
-
bk_a2dp_connection_state_t state
one of values from bk_a2dp_connection_state_t
-
uint8_t remote_bda[6]
remote bluetooth device address
-
bk_a2dp_disc_rsn_t disc_rsn
reason of disconnection for “DISCONNECTED”
-
bk_a2dp_connection_state_t state
-
struct bk_a2dp_cb_param_t::a2dp_conn_state_param conn_state
-
union bk_avrcp_rn_param_t
- #include <dm_bt_types.h>
AVRCP notification parameters.
Public Members
-
uint8_t volume
response data for BK_AVRCP_RN_VOLUME_CHANGE, ranges 0..127
-
bk_avrcp_playback_stat_t playback
response data for BK_AVRCP_RN_PLAY_STATUS_CHANGE
-
uint8_t elm_id[8]
response data for BK_AVRCP_RN_TRACK_CHANGE
-
uint32_t play_pos
response data for BK_AVRCP_RN_PLAY_POS_CHANGED, in millisecond
-
bk_avrcp_batt_stat_t batt
response data for BK_AVRCP_RN_BATTERY_STATUS_CHANGE
-
uint8_t volume
-
union bk_avrcp_ct_cb_param_t
- #include <dm_bt_types.h>
AVRCP controller callback parameters.
Public Members
-
struct bk_avrcp_ct_cb_param_t::avrcp_ct_conn_state_param conn_state
AVRCP connection status
-
struct bk_avrcp_ct_cb_param_t::avrcp_ct_change_notify_param change_ntf
notifications
-
struct bk_avrcp_ct_cb_param_t::avrcp_ct_get_rn_caps_rsp_param get_rn_caps_rsp
get supported event capabilities response from AVRCP target
-
struct avrcp_ct_change_notify_param
- #include <dm_bt_types.h>
BK_AVRCP_CT_CHANGE_NOTIFY_EVT.
Public Members
-
uint8_t event_id
id of AVRCP event notification
-
bk_avrcp_rn_param_t event_parameter
event notification parameter
-
uint8_t event_id
-
struct avrcp_ct_conn_state_param
- #include <dm_bt_types.h>
BK_AVRCP_CT_CONNECTION_STATE_EVT.
-
struct avrcp_ct_get_rn_caps_rsp_param
- #include <dm_bt_types.h>
BK_AVRCP_CT_GET_RN_CAPABILITIES_RSP_EVT.
Public Members
-
uint8_t cap_count
number of items provided in event or company_id according to cap_id used
-
bk_avrcp_rn_evt_cap_mask_t evt_set
supported event_ids represented in bit-mask
-
uint8_t cap_count
-
struct bk_avrcp_ct_cb_param_t::avrcp_ct_conn_state_param conn_state
Structures
-
struct bk_a2dp_mcc_t
A2DP media codec capabilities union.
Public Members
-
uint8_t type
A2DP media codec type
-
struct bk_a2dp_mcc_t::[anonymous]::[anonymous] sbc_codec
SBC codec capabilities.
-
struct bk_a2dp_mcc_t::[anonymous]::[anonymous] aac_codec
MPEG-2, 4 AAC codec capabilities.
-
union bk_a2dp_mcc_t::[anonymous] cie
A2DP codec information element
-
uint8_t type
-
struct bk_bt_linkkey_storage_t
bt link key storage
Type Definitions
-
typedef void (*bk_bt_a2dp_cb_t)(bk_a2dp_cb_event_t event, bk_a2dp_cb_param_t *param)
A2DP profile callback function type.
- Param event
: Event type
- Param param
: Pointer to callback parameter
-
typedef void (*bk_bt_sink_data_cb_t)(const uint8_t *buf, uint16_t len)
A2DP sink data callback function.
- Param buf
[in] : pointer to the data received from A2DP source device
- Param len
[in] : size(in bytes) in buf
-
typedef void (*bk_avrcp_ct_cb_t)(bk_avrcp_ct_cb_event_t event, bk_avrcp_ct_cb_param_t *param)
AVRCP controller callback function type.
- Param event
: Event type
- Param param
: Pointer to callback parameter union
-
typedef uint32_t (*bt_event_cb_t)(bt_event_enum_t event, void *param)
for async dm_bt api event.
bt event report.
- Param event, :
event id. see bt_event_enum_t
param: param
Enumerations
-
enum bk_bt_conn_mode_t
Discoverability and Connectability mode.
Values:
-
enumerator BK_BT_NON_CONNECTABLE
Non-connectable
-
enumerator BK_BT_CONNECTABLE
Connectable
-
enumerator BK_BT_NON_CONNECTABLE
-
enum bk_bt_disc_mode_t
Values:
-
enumerator BK_BT_NON_DISCOVERABLE
Non-discoverable
-
enumerator BK_BT_DISCOVERABLE
Discoverable
-
enumerator BK_BT_NON_DISCOVERABLE
-
enum bk_a2dp_cb_event_t
A2DP callback events.
Values:
-
enumerator BK_A2DP_CONNECTION_STATE_EVT
connection state changed event
-
enumerator BK_A2DP_AUDIO_STATE_EVT
audio stream transmission state changed event
-
enumerator BK_A2DP_AUDIO_CFG_EVT
audio codec is configured, only used for A2DP SINK
-
enumerator BK_A2DP_CONNECTION_STATE_EVT
-
enum bk_a2dp_connection_state_t
Bluetooth A2DP connection states.
Values:
-
enumerator BK_A2DP_CONNECTION_STATE_DISCONNECTED
connection released
-
enumerator BK_A2DP_CONNECTION_STATE_CONNECTING
connecting remote device
-
enumerator BK_A2DP_CONNECTION_STATE_CONNECTED
connection established
-
enumerator BK_A2DP_CONNECTION_STATE_DISCONNECTING
disconnecting remote device
-
enumerator BK_A2DP_CONNECTION_STATE_DISCONNECTED
-
enum bk_a2dp_disc_rsn_t
Bluetooth A2DP disconnection reason.
Values:
-
enumerator BK_A2DP_DISC_RSN_NORMAL
Finished disconnection that is initiated by local or remote device
-
enumerator BK_A2DP_DISC_RSN_ABNORMAL
Abnormal disconnection caused by signal loss
-
enumerator BK_A2DP_DISC_RSN_NORMAL
-
enum bk_a2dp_audio_state_t
Bluetooth A2DP datapath states.
Values:
-
enumerator BK_A2DP_AUDIO_STATE_SUSPEND
audio stream datapath suspend
-
enumerator BK_A2DP_AUDIO_STATE_STARTED
audio stream datapath started
-
enumerator BK_A2DP_AUDIO_STATE_SUSPEND
-
enum bt_event_enum_t
Values:
-
enumerator BK_DM_BT_EVENT_STACK_OK
bt stack init ok, param NULL
-
enumerator BK_DM_BT_EVENT_INQUIRY_RESULT
inquiry result, not used now
-
enumerator BK_DM_BT_EVENT_DISCONNECT
disconnect completed, not used now
-
enumerator BK_DM_BT_EVENT_CONNECTION_COMPLETE
connection completed, not used now
-
enumerator BK_DM_BT_EVENT_LINKKEY_NOTIFY
recv cb when pair success and get link key, param bk_bt_linkkey_storage_t
-
enumerator BK_DM_BT_EVENT_STACK_OK
-
enum bk_avrcp_rn_event_ids_t
AVRCP event notification ids.
Values:
-
enumerator BK_AVRCP_RN_PLAY_STATUS_CHANGE
track status change, eg. from playing to paused
-
enumerator BK_AVRCP_RN_TRACK_CHANGE
new track is loaded
-
enumerator BK_AVRCP_RN_TRACK_REACHED_END
current track reached end
-
enumerator BK_AVRCP_RN_TRACK_REACHED_START
current track reached start position
-
enumerator BK_AVRCP_RN_PLAY_POS_CHANGED
track playing position changed
-
enumerator BK_AVRCP_RN_BATTERY_STATUS_CHANGE
battery status changed
-
enumerator BK_AVRCP_RN_SYSTEM_STATUS_CHANGE
system status changed
-
enumerator BK_AVRCP_RN_APP_SETTING_CHANGE
application settings changed
-
enumerator BK_AVRCP_RN_NOW_PLAYING_CHANGE
now playing content changed
-
enumerator BK_AVRCP_RN_AVAILABLE_PLAYERS_CHANGE
available players changed
-
enumerator BK_AVRCP_RN_ADDRESSED_PLAYER_CHANGE
the addressed player changed
-
enumerator BK_AVRCP_RN_UIDS_CHANGE
UIDs changed
-
enumerator BK_AVRCP_RN_VOLUME_CHANGE
volume changed locally on TG
-
enumerator BK_AVRCP_RN_MAX_EVT
-
enumerator BK_AVRCP_RN_PLAY_STATUS_CHANGE
-
enum bk_avrcp_ct_cb_event_t
AVRCP Controller callback events.
Values:
-
enumerator BK_AVRCP_CT_CONNECTION_STATE_EVT
connection state changed event
-
enumerator BK_AVRCP_CT_PASSTHROUGH_RSP_EVT
passthrough response event
-
enumerator BK_AVRCP_CT_METADATA_RSP_EVT
metadata response event
-
enumerator BK_AVRCP_CT_PLAY_STATUS_RSP_EVT
play status response event
-
enumerator BK_AVRCP_CT_CHANGE_NOTIFY_EVT
notification event
-
enumerator BK_AVRCP_CT_REMOTE_FEATURES_EVT
feature of remote device indication event
-
enumerator BK_AVRCP_CT_GET_RN_CAPABILITIES_RSP_EVT
supported notification events capability of peer device
-
enumerator BK_AVRCP_CT_SET_ABSOLUTE_VOLUME_RSP_EVT
set absolute volume response event
-
enumerator BK_AVRCP_CT_CONNECTION_STATE_EVT
-
enum bk_avrcp_batt_stat_t
AVRCP battery status.
Values:
-
enumerator BK_AVRCP_BATT_NORMAL
normal state
-
enumerator BK_AVRCP_BATT_WARNING
unable to operate soon
-
enumerator BK_AVRCP_BATT_CRITICAL
cannot operate any more
-
enumerator BK_AVRCP_BATT_EXTERNAL
plugged to external power supply
-
enumerator BK_AVRCP_BATT_FULL_CHARGE
when completely charged from external power supply
-
enumerator BK_AVRCP_BATT_NORMAL
-
enum bk_avrcp_playback_stat_t
AVRCP current status of playback.
Values:
-
enumerator BK_AVRCP_PLAYBACK_STOPPED
stopped
-
enumerator BK_AVRCP_PLAYBACK_PLAYING
playing
-
enumerator BK_AVRCP_PLAYBACK_PAUSED
paused
-
enumerator BK_AVRCP_PLAYBACK_FWD_SEEK
forward seek
-
enumerator BK_AVRCP_PLAYBACK_REV_SEEK
reverse seek
-
enumerator BK_AVRCP_PLAYBACK_ERROR
error
-
enumerator BK_AVRCP_PLAYBACK_STOPPED
-
enum bk_avrcp_pt_cmd_t
AVRCP passthrough command code.
Values:
-
enumerator BK_AVRCP_PT_CMD_SELECT
select
-
enumerator BK_AVRCP_PT_CMD_UP
up
-
enumerator BK_AVRCP_PT_CMD_DOWN
down
-
enumerator BK_AVRCP_PT_CMD_LEFT
left
-
enumerator BK_AVRCP_PT_CMD_RIGHT
right
-
enumerator BK_AVRCP_PT_CMD_RIGHT_UP
right-up
-
enumerator BK_AVRCP_PT_CMD_RIGHT_DOWN
right-down
-
enumerator BK_AVRCP_PT_CMD_LEFT_UP
left-up
-
enumerator BK_AVRCP_PT_CMD_LEFT_DOWN
left-down
-
enumerator BK_AVRCP_PT_CMD_ROOT_MENU
root menu
-
enumerator BK_AVRCP_PT_CMD_SETUP_MENU
setup menu
-
enumerator BK_AVRCP_PT_CMD_CONT_MENU
contents menu
-
enumerator BK_AVRCP_PT_CMD_FAV_MENU
favorite menu
-
enumerator BK_AVRCP_PT_CMD_EXIT
exit
-
enumerator BK_AVRCP_PT_CMD_0
0
-
enumerator BK_AVRCP_PT_CMD_1
1
-
enumerator BK_AVRCP_PT_CMD_2
2
-
enumerator BK_AVRCP_PT_CMD_3
3
-
enumerator BK_AVRCP_PT_CMD_4
4
-
enumerator BK_AVRCP_PT_CMD_5
5
-
enumerator BK_AVRCP_PT_CMD_6
6
-
enumerator BK_AVRCP_PT_CMD_7
7
-
enumerator BK_AVRCP_PT_CMD_8
8
-
enumerator BK_AVRCP_PT_CMD_9
9
-
enumerator BK_AVRCP_PT_CMD_DOT
dot
-
enumerator BK_AVRCP_PT_CMD_ENTER
enter
-
enumerator BK_AVRCP_PT_CMD_CLEAR
clear
-
enumerator BK_AVRCP_PT_CMD_CHAN_UP
channel up
-
enumerator BK_AVRCP_PT_CMD_CHAN_DOWN
channel down
-
enumerator BK_AVRCP_PT_CMD_PREV_CHAN
previous channel
-
enumerator BK_AVRCP_PT_CMD_SOUND_SEL
sound select
-
enumerator BK_AVRCP_PT_CMD_INPUT_SEL
input select
-
enumerator BK_AVRCP_PT_CMD_DISP_INFO
display information
-
enumerator BK_AVRCP_PT_CMD_HELP
help
-
enumerator BK_AVRCP_PT_CMD_PAGE_UP
page up
-
enumerator BK_AVRCP_PT_CMD_PAGE_DOWN
page down
-
enumerator BK_AVRCP_PT_CMD_POWER
power
-
enumerator BK_AVRCP_PT_CMD_VOL_UP
volume up
-
enumerator BK_AVRCP_PT_CMD_VOL_DOWN
volume down
-
enumerator BK_AVRCP_PT_CMD_MUTE
mute
-
enumerator BK_AVRCP_PT_CMD_PLAY
play
-
enumerator BK_AVRCP_PT_CMD_STOP
stop
-
enumerator BK_AVRCP_PT_CMD_PAUSE
pause
-
enumerator BK_AVRCP_PT_CMD_RECORD
record
-
enumerator BK_AVRCP_PT_CMD_REWIND
rewind
-
enumerator BK_AVRCP_PT_CMD_FAST_FORWARD
fast forward
-
enumerator BK_AVRCP_PT_CMD_EJECT
eject
-
enumerator BK_AVRCP_PT_CMD_FORWARD
forward
-
enumerator BK_AVRCP_PT_CMD_BACKWARD
backward
-
enumerator BK_AVRCP_PT_CMD_ANGLE
angle
-
enumerator BK_AVRCP_PT_CMD_SUBPICT
subpicture
-
enumerator BK_AVRCP_PT_CMD_F1
F1
-
enumerator BK_AVRCP_PT_CMD_F2
F2
-
enumerator BK_AVRCP_PT_CMD_F3
F3
-
enumerator BK_AVRCP_PT_CMD_F4
F4
-
enumerator BK_AVRCP_PT_CMD_F5
F5
-
enumerator BK_AVRCP_PT_CMD_VENDOR
vendor unique
-
enumerator BK_AVRCP_PT_CMD_SELECT