btaudio3  2.0.0.0
btaudio3.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2020 MikroElektronika d.o.o.
3 ** Contact: https://www.mikroe.com/contact
4 **
5 ** Permission is hereby granted, free of charge, to any person obtaining a copy
6 ** of this software and associated documentation files (the "Software"), to deal
7 ** in the Software without restriction, including without limitation the rights
8 ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 ** copies of the Software, and to permit persons to whom the Software is
10 ** furnished to do so, subject to the following conditions:
11 ** The above copyright notice and this permission notice shall be
12 ** included in all copies or substantial portions of the Software.
13 **
14 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16 ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18 ** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19 ** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20 ** USE OR OTHER DEALINGS IN THE SOFTWARE.
21 ****************************************************************************/
22 
28 #ifndef BTAUDIO3_H
29 #define BTAUDIO3_H
30 
31 #ifdef __cplusplus
32 extern "C"{
33 #endif
34 
35 #include "mikrosdk_version.h"
36 
37 #ifdef __GNUC__
38 #if mikroSDK_GET_VERSION < 20800ul
39 #include "rcu_delays.h"
40 #else
41 #include "delays.h"
42 #endif
43 #endif
44 
45 #include "drv_digital_out.h"
46 #include "drv_digital_in.h"
47 #include "drv_uart.h"
48 
69 #define BTAUDIO3_CMD_MAKE_CALL 0x00
70 #define BTAUDIO3_CMD_MAKE_EXTENSION_CALL 0x01
71 #define BTAUDIO3_CMD_MMI_ACTION 0x02
72 #define BTAUDIO3_CMD_EVENT_MASK_SETTING 0x03
73 #define BTAUDIO3_CMD_MUSIC_CONTROL 0x04
74 #define BTAUDIO3_CMD_CHANGE_DEVICE_NAME 0x05
75 #define BTAUDIO3_CMD_CHANGE_PIN_CODE 0x06
76 #define BTAUDIO3_CMD_SET_BTM_PARAM 0x07
77 #define BTAUDIO3_CMD_GET_BTM_VERSION 0x08
78 #define BTAUDIO3_CMD_VENDOR_AT_CMD 0x0A
79 #define BTAUDIO3_CMD_AVRCP_SPEC_CMD 0x0B
80 #define BTAUDIO3_CMD_AVRCP_GROUP_NAVIGATION 0x0C
81 #define BTAUDIO3_CMD_READ_LINK_STATUS 0x0D
82 #define BTAUDIO3_CMD_READ_PAIRING_RECORD 0x0E
83 #define BTAUDIO3_CMD_READ_LOCAL_BD_ADDR 0x0F
84 #define BTAUDIO3_CMD_READ_LOCAL_DEVICE_NAME 0x10
85 #define BTAUDIO3_CMD_SEND_SPP_DATA 0x12
86 #define BTAUDIO3_CMD_BTM_UTILITY_FUNCTION 0x13
87 #define BTAUDIO3_CMD_EVENT_ACK 0x14
88 #define BTAUDIO3_CMD_ADDITIONAL_PROFILE_LINK_SETUP 0x15
89 #define BTAUDIO3_CMD_READ_LINKED_DEVICE_INFO 0x16
90 #define BTAUDIO3_CMD_PROFILE_LINK_BACK 0x17
91 #define BTAUDIO3_CMD_DISCONNECT 0x18
92 #define BTAUDIO3_CMD_USER_CONFIRM_SPP_REQ_REPLY 0x1A
93 #define BTAUDIO3_CMD_SET_HF_GAIN_LEVEL 0x1B
94 #define BTAUDIO3_CMD_EQ_MODE_SETTING 0x1C
95 #define BTAUDIO3_CMD_DSP_NR_CTRL 0x1D
96 #define BTAUDIO3_CMD_GPIO_CTRL 0x1E
97 #define BTAUDIO3_CMD_BT_MCU_UART_RX_BUFF_SIZE 0x1F
98 #define BTAUDIO3_CMD_VOICE_PROMPT_CMD 0x20
99 #define BTAUDIO3_CMD_SET_OVERALL_GAIN 0x23
100 #define BTAUDIO3_CMD_READ_BTM_SETTING 0x24
101 #define BTAUDIO3_CMD_READ_BTM_BATTERY_CHARGE_STATUS 0x25
102 #define BTAUDIO3_CMD_MCU_UPDATE 0x26
103 #define BTAUDIO3_CMD_REPORT_BATTERY_CAPACITY 0x27
104 #define BTAUDIO3_CMD_LE_ANCS_SERVICE 0x28
105 #define BTAUDIO3_CMD_LE_SIGNALING 0x29
106 #define BTAUDIO3_CMD_MSPK_VENDOR 0x2A
107 #define BTAUDIO3_CMD_READ_MSPK_LINK_STATUS 0x2B
108 #define BTAUDIO3_CMD_MSPK_SYNC_AUDIO_EFFECT 0x2C
109 #define BTAUDIO3_CMD_LE_GATT 0x2D
110 #define BTAUDIO3_CMD_LE_APP 0x2F
111 #define BTAUDIO3_CMD_DSP_RUNTIME_PROGRAM 0x30
112 #define BTAUDIO3_CMD_READ_VENDOR_EEPROM 0x31
113 #define BTAUDIO3_CMD_READ_IC_VERSION 0x32
114 #define BTAUDIO3_CMD_READ_LINK_MODE 0x34
115 #define BTAUDIO3_CMD_CONFIGURE_VENDOR_PARAM 0x35
116 #define BTAUDIO3_CMD_MSPK_EXCHANGE_LINK_INFO 0x37
117 #define BTAUDIO3_CMD_MSPK_SET_GIAC 0x38
118 #define BTAUDIO3_CMD_READ_FEATURE_LIST 0x39
119 #define BTAUDIO3_CMD_PERSONAL_MSPK_GROUP_CTRL 0x3A
120 #define BTAUDIO3_CMD_TEST_DEVICE 0x3B
121 #define BTAUDIO3_CMD_READ_EEPROM 0x3C
122 #define BTAUDIO3_CMD_WRITE_EEPROM 0x3D
123 #define BTAUDIO3_CMD_LE_SIGNALING_2 0x3E
124 #define BTAUDIO3_CMD_PBAPC 0x3F
125 #define BTAUDIO3_CMD_TWS 0x40
126 #define BTAUDIO3_CMD_AVRCP_BROWSING 0x41
127 #define BTAUDIO3_CMD_READ_PAIRED_LINK_KEY_INFO 0x42
128 #define BTAUDIO3_CMD_AUDIO_TRANSCEIVER 0x44
129 #define BTAUDIO3_CMD_BUTTON_MMI_SETTING 0x46
130 #define BTAUDIO3_CMD_BUTTON_OPERATION 0x47
131 #define BTAUDIO3_CMD_READ_BUTTON_MMI_SETTING 0x48
132 #define BTAUDIO3_CMD_DFU 0x49
133 #define BTAUDIO3_CMD_AVRCP_VENDOR_DEPENDENT 0x4A
134 #define BTAUDIO3_CMD_CONCERT_MODE_ENDLESS_GROUPING 0x4B
135 #define BTAUDIO3_CMD_READ_RUNTIME_LATENCY 0x4C
136 #define BTAUDIO3_CMD_TOGGLE_AUDIO_SOURCE 0xCC
137 
142 #define BTAUDIO3_EVT_CMD_ACK 0x00
143 #define BTAUDIO3_EVT_BTM_STATE 0x01
144 #define BTAUDIO3_EVT_CALL_STATUS 0x02
145 #define BTAUDIO3_EVT_CALL_ID 0x03
146 #define BTAUDIO3_EVT_SMS_INDICATION 0x04
147 #define BTAUDIO3_EVT_MISS_CALL_INDICATION 0x05
148 #define BTAUDIO3_EVT_PHONE_MAX_BATTERY_LEVEL 0x06
149 #define BTAUDIO3_EVT_PHONE_BATTERY_LEVEL 0x07
150 #define BTAUDIO3_EVT_PHONE_ROAMING_STATUS 0x08
151 #define BTAUDIO3_EVT_PHONE_MAX_SIGNAL_STRENGTH 0x09
152 #define BTAUDIO3_EVT_PHONE_SIGNAL_STRENGTH 0x0A
153 #define BTAUDIO3_EVT_PHONE_SERVICE_STATUS 0x0B
154 #define BTAUDIO3_EVT_BATTERY_LEVEL 0x0C
155 #define BTAUDIO3_EVT_CHARGER_STATUS 0x0D
156 #define BTAUDIO3_EVT_RESET_TO_DEFAULT 0x0E
157 #define BTAUDIO3_EVT_VOLUME_LEVEL 0x0F
158 #define BTAUDIO3_EVT_EQ_MODE 0x10
159 #define BTAUDIO3_EVT_LINKED_DEVICE_INFO 0x17
160 #define BTAUDIO3_EVT_BTM_VERSION 0x18
161 #define BTAUDIO3_EVT_CALL_LIST_REPORT 0x19
162 #define BTAUDIO3_EVT_AVRCP_SPEC_RSP 0x1A
163 #define BTAUDIO3_EVT_BTM_UTILITY_REQ 0x1B
164 #define BTAUDIO3_EVT_VENDOR_AT_CMD_RSP 0x1C
165 #define BTAUDIO3_EVT_UNKNOW_AT_RESULT 0x1D
166 #define BTAUDIO3_EVT_REPORT_LINK_STATUS 0x1E
167 #define BTAUDIO3_EVT_REPORT_PAIRING_RECORD 0x1F
168 #define BTAUDIO3_EVT_REPORT_LOCAL_BD_ADDR 0x20
169 #define BTAUDIO3_EVT_REPORT_LOCAL_DEVICE_NAME 0x21
170 #define BTAUDIO3_EVT_REPORT_SPP_DATA 0x22
171 #define BTAUDIO3_EVT_REPORT_LINK_BACK_STATUS 0x23
172 #define BTAUDIO3_EVT_RINGTONE_FINISH_INDICATION 0x24
173 #define BTAUDIO3_EVT_USER_CONFIRM_SSP_REQ 0x25
174 #define BTAUDIO3_EVT_REPORT_AVRCP_VOL_CTRL 0x26
175 #define BTAUDIO3_EVT_REPORT_INPUT_SIGNAL_LEVEL 0x27
176 #define BTAUDIO3_EVT_REPORT_IAP_INFO 0x28
177 #define BTAUDIO3_EVT_REPORT_AVRCP_ABS_VOL_CTRL 0x29
178 #define BTAUDIO3_EVT_REPORT_VOICE_PROMPT_STATUS 0x2A
179 #define BTAUDIO3_EVT_REPORT_TYPE_CODEC 0x2D
180 #define BTAUDIO3_EVT_REPORT_TYPE_BTM_SETTING 0x2E
181 #define BTAUDIO3_EVT_REPORT_MCU_UPDATE_REPLY 0x2F
182 #define BTAUDIO3_EVT_REPORT_BTM_INITIAL_STATUS 0x30
183 #define BTAUDIO3_EVT_REPORT_LE_ANCS_EVENT 0x31
184 #define BTAUDIO3_EVT_REPORT_LE_EVENT 0x32
185 #define BTAUDIO3_EVT_REPORT_MSPK_STATUS 0x33
186 #define BTAUDIO3_EVT_REPORT_MSPK_VENDOR_EVENT 0x34
187 #define BTAUDIO3_EVT_REPORT_MSPK_AUDIO_SETTING 0x35
188 #define BTAUDIO3_EVT_REPORT_MSPK_EFFECT_STATUS 0x36
189 #define BTAUDIO3_EVT_REPORT_VENDOR_EEPROM 0x37
190 #define BTAUDIO3_EVT_REPORT_IC_VERSION_INFO 0x38
191 #define BTAUDIO3_EVT_REPORT_CUSTOMER_GATT_ATTRIBUTE_DATA 0x39
192 #define BTAUDIO3_EVT_REPORT_LINK_MODE 0x3A
193 #define BTAUDIO3_EVT_REPORT_MSPK_EXCHANGE_LINK_INFO 0x3D
194 #define BTAUDIO3_EVT_REPORT_BT_CLK 0x3F
195 #define BTAUDIO3_EVT_REPORT_FEATURE_LIST 0x40
196 #define BTAUDIO3_EVT_REPORT_TEST_RESULT 0x41
197 #define BTAUDIO3_EVT_REPORT_READ_EEPROM_DATA 0x42
198 #define BTAUDIO3_EVT_PBAPC_EVENT 0x43
199 #define BTAUDIO3_EVT_AVRCP_BROWSING_EVENT 0x44
200 #define BTAUDIO3_EVT_REPORT_PAIRED_LINK_KEY_INFO 0x45
201 #define BTAUDIO3_EVT_REPORT_TWS_RX_VENDOR_EVENT 0x53
202 #define BTAUDIO3_EVT_REPORT_TWS_LOCAL_DEVICE_STATUS 0x54
203 #define BTAUDIO3_EVT_REPORT_TWS_VAD_DATA 0x55
204 #define BTAUDIO3_EVT_REPORT_TWS_RADIO_CONDITION 0x56
205 #define BTAUDIO3_EVT_REPORT_TWS_EAR_BUD_POSITION 0x57
206 #define BTAUDIO3_EVT_REPORT_TWS_SECONDARY_DEVICE_STATUS 0x58
207 #define BTAUDIO3_EVT_AUDIO_TRANSCEIVER_EVENT_STATUS 0x5A
208 #define BTAUDIO3_EVT_READ_BUTTON_MMI_SETTING_REPLY 0x5C
209 #define BTAUDIO3_EVT_AVRCP_VENDOR_DEPENDENT_RSP 0x5D
210 #define BTAUDIO3_EVT_RUNTIME_LATENCY 0x5E
211 
216 #define BTAUDIO3_MMI_ADD_REMOVE_SCO_LINK 0x01
217 #define BTAUDIO3_MMI_ENABLE_TEST_MODE 0x03
218 #define BTAUDIO3_MMI_ACCEPT_CALL 0x04
219 #define BTAUDIO3_MMI_REJECT_CALL 0x05
220 #define BTAUDIO3_MMI_ENDCALL_OR_TRANSFER_TO_HEADSET 0x06
221 #define BTAUDIO3_MMI_MIC_MUTE_TOGGLE 0x07
222 #define BTAUDIO3_MMI_MUTE_MIC 0x08
223 #define BTAUDIO3_MMI_UNMUTE_MIC 0x09
224 #define BTAUDIO3_MMI_VOICE_DIAL 0x0A
225 #define BTAUDIO3_MMI_CANCEL_VOICE_DIAL 0x0B
226 #define BTAUDIO3_MMI_LAST_NUMBER_REDIAL 0x0C
227 #define BTAUDIO3_MMI_ACTIVE_CALL_HOLD_ACCEPT_HELD_CALL 0x0D
228 #define BTAUDIO3_MMI_VOICE_TRANSFER 0x0E
229 #define BTAUDIO3_MMI_QUERY_CALL_LIST 0x0F
230 #define BTAUDIO3_MMI_THREE_WAY_CALL 0x10
231 #define BTAUDIO3_MMI_RELEASE_CALL 0x11
232 #define BTAUDIO3_MMI_ACCEPT_WAITING_HOLD_CALL_RLS_ACTIVE_CALL 0x12
233 #define BTAUDIO3_MMI_DISCONNECT_HF_LINK 0x17
234 #define BTAUDIO3_MMI_ENABLE_AEC 0x1E
235 #define BTAUDIO3_MMI_DISABLE_AEC 0x1F
236 #define BTAUDIO3_MMI_SWITCH_AEC 0x20
237 #define BTAUDIO3_MMI_ENABLE_AEC_RX_NOISE_REDUCTION 0x21
238 #define BTAUDIO3_MMI_DISABLE_AEC_RX_NOISE_REDUCTION 0x22
239 #define BTAUDIO3_MMI_SWITCH_AEC_RX_NOISE_REDUCTION 0x23
240 #define BTAUDIO3_MMI_INC_MIC_GAIN 0x24
241 #define BTAUDIO3_MMI_DEC_MIC_GAIN 0x25
242 #define BTAUDIO3_MMI_SWITCH_PRIMARY_SECONDARY_HF_DEVICE 0x26
243 #define BTAUDIO3_MMI_LOCK_BUTTON 0x3A
244 #define BTAUDIO3_MMI_DISCONNECT_A2DP 0x3B
245 #define BTAUDIO3_MMI_NEXT_AUDIO_EFFECT 0x3C
246 #define BTAUDIO3_MMI_PREVIOUS_AUDIO_EFFECT 0x3D
247 #define BTAUDIO3_MMI_REPORT_CURRENT_EQ_MODE 0x3F
248 #define BTAUDIO3_MMI_REPORT_CURRENT_AUDIO_EFFECT_STATUS 0x40
249 #define BTAUDIO3_MMI_TOGGLE_AUDIO_PLAYBACK 0x41
250 #define BTAUDIO3_MMI_POWER_ON_BUTTON_PRESS 0x51
251 #define BTAUDIO3_MMI_POWER_ON_BUTTON_RELEASE 0x52
252 #define BTAUDIO3_MMI_POWER_OFF_BUTTON_PRESS 0x53
253 #define BTAUDIO3_MMI_POWER_OFF_BUTTON_RELEASE 0x54
254 #define BTAUDIO3_MMI_RESET_EEPROM_SETTING 0x56
255 #define BTAUDIO3_MMI_FORCE_SPEAKER_GAIN_TOGGLE 0x57
256 #define BTAUDIO3_MMI_TOGGLE_BUTTON_IND 0x58
257 #define BTAUDIO3_MMI_COMBINE_FUNCTION_0 0x59
258 #define BTAUDIO3_MMI_COMBINE_FUNCTION_1 0x5A
259 #define BTAUDIO3_MMI_COMBINE_FUNCTION_2 0x5B
260 #define BTAUDIO3_MMI_COMBINE_FUNCTION_3 0x5C
261 #define BTAUDIO3_MMI_ENTER_PAIRING_MODE 0x5D
262 #define BTAUDIO3_MMI_SWITCH_POWER_OFF 0x5E
263 #define BTAUDIO3_MMI_DISABLE_LED 0x5F
264 #define BTAUDIO3_MMI_BUZZER_TOGGLE 0x60
265 #define BTAUDIO3_MMI_DISABLE_BUZZER 0x61
266 #define BTAUDIO3_MMI_ENABLE_BUZZER 0x62
267 #define BTAUDIO3_MMI_TONE_CHANGE 0x63
268 #define BTAUDIO3_MMI_SHS_SEND_USER_DATA_1 0x72
269 #define BTAUDIO3_MMI_SHS_SEND_USER_DATA_2 0x73
270 #define BTAUDIO3_MMI_SHS_SEND_USER_DATA_3 0x74
271 #define BTAUDIO3_MMI_SHS_SEND_USER_DATA_4 0x75
272 #define BTAUDIO3_MMI_SHS_SEND_USER_DATA_5 0x76
273 #define BTAUDIO3_MMI_REPORT_CURRENT_RX_NR_STATUS 0x77
274 #define BTAUDIO3_MMI_REPORT_CURRENT_TX_NR_STATUS 0x78
275 #define BTAUDIO3_MMI_CANCEL_ALL_BT_PAGING 0x7A
276 #define BTAUDIO3_MMI_DISCONNECT_SPP_LINK 0x7D
277 #define BTAUDIO3_MMI_ENABLE_A2DP_MIX_LINE_IN 0x80
278 #define BTAUDIO3_MMI_DISABLE_A2DP_MIX_LINE_IN 0x81
279 #define BTAUDIO3_MMI_INCREASE_LINE_IN_INPUT_GAIN 0x82
280 #define BTAUDIO3_MMI_DECREASE_LINE_IN_INPUT_GAIN 0x83
281 #define BTAUDIO3_MMI_TRIGGER_MSPK_CENTRAL 0xE0
282 #define BTAUDIO3_MMI_TRIGGER_MSPK_PERIPHERAL 0xE1
283 #define BTAUDIO3_MMI_MSPK_ONE_KEY_CONNECT 0xE2
284 #define BTAUDIO3_MMI_CANCEL_MSPK_CREATION 0xE3
285 #define BTAUDIO3_MMI_TERMINATE_MSPK_LINK 0xE4
286 #define BTAUDIO3_MMI_TERMINATE_MSPK_CONNECTION 0xE5
287 #define BTAUDIO3_MMI_MSPK_CENTRAL_ENTER_AUX_IN_44p1K_PCM_MODE 0xE6
288 #define BTAUDIO3_MMI_MSPK_CENTRAL_ENTER_AUX_IN_48K_PCM_MODE 0xE7
289 #define BTAUDIO3_MMI_MSPK_CENTRAL_EXIT_AUX_IN_PCM_MODE 0xE8
290 #define BTAUDIO3_MMI_MSPK_SWITCH_CHANNEL 0xEC
291 #define BTAUDIO3_MMI_MSPK_POWER_OFF_ALL_SPEAKERS 0xED
292 #define BTAUDIO3_MMI_MSPK_ERASE_CONCERT_MODE_RECORD 0xEF
293 #define BTAUDIO3_MMI_MSPK_ENTER_STEREO_MODE 0xF4
294 #define BTAUDIO3_MMI_MSPK_ENTER_CONCERT_MODE 0xF5
295 #define BTAUDIO3_MMI_MSPK_ADD_THIRD_SPK 0xF6
296 #define BTAUDIO3_MMI_MSPK_SOUND_SYNC 0xF7
297 #define BTAUDIO3_MMI_MSPK_CSB_CONNECTED_MODE_SWITCH 0xF8
298 #define BTAUDIO3_MMI_MSPK_BACK_TO_LAST_MODE 0xF9
299 #define BTAUDIO3_MMI_MSPK_ONE_KEY_CONNECT_WITH_LINK_BACK 0xFA
300 #define BTAUDIO3_MMI_MSPK_ONE_KEY_OP_STEREO_MODE 0xFB
301 #define BTAUDIO3_MMI_MSPK_ONE_KEY_OP_CONCERT_MODE 0xFC
302 
307 #define BTAUDIO3_ACK_STATUS_CMD_COMPLETE 0x00
308 #define BTAUDIO3_ACK_STATUS_CMD_DISALLOW 0x01
309 #define BTAUDIO3_ACK_STATUS_CMD_UNKNOWN 0x02
310 #define BTAUDIO3_ACK_STATUS_CMD_PARAM_ERR 0x03
311 #define BTAUDIO3_ACK_STATUS_CMD_BTM_BUSY 0x04
312 #define BTAUDIO3_ACK_STATUS_CMD_BTM_FULL 0x05
313 
318 #define BTAUDIO3_BTM_STATE_POWER_OFF 0x00
319 #define BTAUDIO3_BTM_STATE_PAIRING_STATE 0x01
320 #define BTAUDIO3_BTM_STATE_POWER_ON 0x02
321 #define BTAUDIO3_BTM_STATE_PAIRING_SUCCESSFULL 0x03
322 #define BTAUDIO3_BTM_STATE_PAIRING_FAILED 0x04
323 #define BTAUDIO3_BTM_STATE_HFHS_LINK_ESTABLISHED 0x05
324 #define BTAUDIO3_BTM_STATE_A2DP_LINK_ESTABLISHED 0x06
325 #define BTAUDIO3_BTM_STATE_HF_LINK_DISCONNECTED 0x07
326 #define BTAUDIO3_BTM_STATE_A2DP_LINK_DISCONNECTED 0x08
327 #define BTAUDIO3_BTM_STATE_SCO_LINK_CONNECTED 0x09
328 #define BTAUDIO3_BTM_STATE_SCO_LINK_DISCONNECTED 0x0A
329 #define BTAUDIO3_BTM_STATE_AVRCP_LINK_ESTABLISHED 0x0B
330 #define BTAUDIO3_BTM_STATE_AVRCP_LINK_DISCONNECTED 0x0C
331 #define BTAUDIO3_BTM_STATE_STANDARD_SPP_CONNECTED 0x0D
332 #define BTAUDIO3_BTM_STATE_STANDARD_SPP_IAP_DISCONNECTED 0x0E
333 #define BTAUDIO3_BTM_STATE_STANDBY_STATE 0x0F
334 #define BTAUDIO3_BTM_STATE_IAP_CONNECTED 0x10
335 #define BTAUDIO3_BTM_STATE_ACL_DISCONNECTED 0x11
336 #define BTAUDIO3_BTM_STATE_MAP_CONNECTED 0x12
337 #define BTAUDIO3_BTM_STATE_MAP_OPERATION_FORBIDDEN 0x13
338 #define BTAUDIO3_BTM_STATE_MAP_DISCONNECTED 0x14
339 #define BTAUDIO3_BTM_STATE_ACL_CONNECTED 0x15
340 #define BTAUDIO3_BTM_STATE_SPP_IAP_DISCONNECTED_NO_PROFILE 0x16
341 #define BTAUDIO3_BTM_STATE_LINK_BACK_ACL 0x17
342 #define BTAUDIO3_BTM_STATE_INQUIRY_STATE 0x18
343 #define BTAUDIO3_BTM_STATE_UNKNOWN_AUDIO_SOURCE 0x80
344 #define BTAUDIO3_BTM_STATE_AUX_IN_AUDIO_SOURCE 0x81
345 #define BTAUDIO3_BTM_STATE_A2DP_AUDIO_SOURCE 0x82
346 
351 #define BTAUDIO3_VOLUME_MASK_A2DP 0x01
352 #define BTAUDIO3_VOLUME_MASK_HF 0x02
353 #define BTAUDIO3_VOLUME_MASK_LINE_IN 0x04
354 #define BTAUDIO3_VOLUME_MASK_PCM 0x08
355 #define BTAUDIO3_VOLUME_MASK_LINE_IN_INPUT 0x10
356 
361 #define BTAUDIO3_START_HEADER 0xAA
362 
368 #define DRV_BUFFER_SIZE 512
369  // btaudio3_cmd
371 
386 #define BTAUDIO3_MAP_MIKROBUS( cfg, mikrobus ) \
387  cfg.tx_pin = MIKROBUS( mikrobus, MIKROBUS_TX ); \
388  cfg.rx_pin = MIKROBUS( mikrobus, MIKROBUS_RX ); \
389  cfg.sm = MIKROBUS( mikrobus, MIKROBUS_AN ); \
390  cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
391  cfg.mfb = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
392  cfg.mod = MIKROBUS( mikrobus, MIKROBUS_INT );
393  // btaudio3_map // btaudio3
396 
401 typedef struct
402 {
403  uint8_t opcode;
404  uint8_t param_buf[ 256 ];
405  uint8_t param_len;
406 
408 
413 typedef struct
414 {
415  // Output pins
416  digital_out_t sm;
417  digital_out_t rst;
418  digital_out_t mfb;
419  digital_out_t mod;
421  // Modules
422  uart_t uart;
424  // Buffers
425  char uart_rx_buffer[ DRV_BUFFER_SIZE ];
426  char uart_tx_buffer[ DRV_BUFFER_SIZE ];
430 
431 } btaudio3_t;
432 
437 typedef struct
438 {
439  // Communication gpio pins
440  pin_name_t rx_pin;
441  pin_name_t tx_pin;
443  // Additional gpio pins
444  pin_name_t sm;
445  pin_name_t rst;
446  pin_name_t mfb;
447  pin_name_t mod;
449  // Static variable
450  uint32_t baud_rate;
452  uart_data_bits_t data_bit;
453  uart_parity_t parity_bit;
454  uart_stop_bits_t stop_bit;
457 
462 typedef enum
463 {
465  BTAUDIO3_ERROR = -1
466 
468 
473 typedef enum
474 {
486 
488 
493 typedef enum
494 {
506 
508 
525 
541 
556 
570 err_t btaudio3_generic_write ( btaudio3_t *ctx, uint8_t *data_buf, uint16_t len );
571 
585 err_t btaudio3_generic_read ( btaudio3_t *ctx, uint8_t *data_buf, uint16_t max_len );
586 
596 void btaudio3_set_mfb_pin ( btaudio3_t *ctx, uint8_t state );
597 
607 void btaudio3_set_rst_pin ( btaudio3_t *ctx, uint8_t state );
608 
618 
628 
638 
648 
658 
668 
682 
696 
706 void btaudio3_wait_for_event ( btaudio3_t *ctx, uint8_t opcode );
707 
718 
732 err_t btaudio3_send_mmi_action ( btaudio3_t *ctx, uint8_t database_index, uint8_t action );
733 
746 
759 
772 
785 
798 err_t btaudio3_set_device_name ( btaudio3_t *ctx, uint8_t *device_name );
799 
814 
828 err_t btaudio3_make_call ( btaudio3_t *ctx, uint8_t database_index, uint8_t *phone_number );
829 
843 err_t btaudio3_volume_up ( btaudio3_t *ctx, uint8_t database_index, uint8_t mask );
844 
858 err_t btaudio3_volume_down ( btaudio3_t *ctx, uint8_t database_index, uint8_t mask );
859 
872 
885 
900 
901 #ifdef __cplusplus
902 }
903 #endif
904 #endif // BTAUDIO3_H
905  // btaudio3
907 
908 // ------------------------------------------------------------------------ END
BTAUDIO3_NEXT_SONG
@ BTAUDIO3_NEXT_SONG
Definition: btaudio3.h:484
btaudio3_return_value_t
btaudio3_return_value_t
BT Audio 3 Click return value data.
Definition: btaudio3.h:463
btaudio3_t::command_packet
btaudio3_packet_t command_packet
Definition: btaudio3.h:428
btaudio3_eq_mode_t
btaudio3_eq_mode_t
BT Audio 3 Click equalizer mode selection values.
Definition: btaudio3.h:494
btaudio3_volume_up
err_t btaudio3_volume_up(btaudio3_t *ctx, uint8_t database_index, uint8_t mask)
BT Audio 3 volume up function.
btaudio3_music_control_t
btaudio3_music_control_t
BT Audio 3 Click music control values.
Definition: btaudio3.h:474
btaudio3_cfg_setup
void btaudio3_cfg_setup(btaudio3_cfg_t *cfg)
BT Audio 3 configuration object setup function.
btaudio3_t::sm
digital_out_t sm
Definition: btaudio3.h:416
btaudio3_generic_read
err_t btaudio3_generic_read(btaudio3_t *ctx, uint8_t *data_buf, uint16_t max_len)
BT Audio 3 data reading function.
btaudio3_default_cfg
err_t btaudio3_default_cfg(btaudio3_t *ctx)
BT Audio 3 default configuration function.
btaudio3_cfg_t
BT Audio 3 Click configuration object.
Definition: btaudio3.h:438
BTAUDIO2_EQ_MODE_CLASSIC
@ BTAUDIO2_EQ_MODE_CLASSIC
Definition: btaudio3.h:499
btaudio3_packet_t::param_len
uint8_t param_len
Definition: btaudio3.h:405
BTAUDIO3_STOP
@ BTAUDIO3_STOP
Definition: btaudio3.h:483
btaudio3_clear_events
void btaudio3_clear_events(btaudio3_t *ctx)
BT Audio 3 clear events function.
BTAUDIO2_EQ_MODE_OFF
@ BTAUDIO2_EQ_MODE_OFF
Definition: btaudio3.h:495
btaudio3_enter_pairing_mode
err_t btaudio3_enter_pairing_mode(btaudio3_t *ctx)
BT Audio 3 enter pairing mode function.
btaudio3_t::event_packet
btaudio3_packet_t event_packet
Definition: btaudio3.h:429
BTAUDIO2_EQ_MODE_USER1
@ BTAUDIO2_EQ_MODE_USER1
Definition: btaudio3.h:505
btaudio3_set_rst_pin
void btaudio3_set_rst_pin(btaudio3_t *ctx, uint8_t state)
BT Audio 3 set RST pin function.
btaudio3_reset_device
void btaudio3_reset_device(btaudio3_t *ctx)
BT Audio 3 reset device function.
btaudio3_send_command_with_ack_check
err_t btaudio3_send_command_with_ack_check(btaudio3_t *ctx)
BT Audio 3 send command with ack check function.
BTAUDIO3_OK
@ BTAUDIO3_OK
Definition: btaudio3.h:464
btaudio3_cfg_t::stop_bit
uart_stop_bits_t stop_bit
Definition: btaudio3.h:454
btaudio3_set_application_mode
void btaudio3_set_application_mode(btaudio3_t *ctx)
BT Audio 3 set application mode function.
btaudio3_set_eq_mode
err_t btaudio3_set_eq_mode(btaudio3_t *ctx, btaudio3_eq_mode_t eq_mode)
BT Audio 3 set equalizer mode function.
BTAUDIO2_EQ_MODE_JAZZ
@ BTAUDIO2_EQ_MODE_JAZZ
Definition: btaudio3.h:501
btaudio3_volume_down
err_t btaudio3_volume_down(btaudio3_t *ctx, uint8_t database_index, uint8_t mask)
BT Audio 3 volume down function.
btaudio3_enable_advertising
err_t btaudio3_enable_advertising(btaudio3_t *ctx)
BT Audio 3 enable advertising function.
btaudio3_power_off_device
err_t btaudio3_power_off_device(btaudio3_t *ctx)
BT Audio 3 power OFF device function.
btaudio3_cfg_t::baud_rate
uint32_t baud_rate
Definition: btaudio3.h:450
BTAUDIO2_EQ_MODE_POP
@ BTAUDIO2_EQ_MODE_POP
Definition: btaudio3.h:502
btaudio3_power_on_device
err_t btaudio3_power_on_device(btaudio3_t *ctx)
BT Audio 3 power ON device function.
btaudio3_cfg_t::parity_bit
uart_parity_t parity_bit
Definition: btaudio3.h:453
btaudio3_generic_write
err_t btaudio3_generic_write(btaudio3_t *ctx, uint8_t *data_buf, uint16_t len)
BT Audio 3 data writing function.
BTAUDIO3_FAST_FORWARD_WITH_REPEAT
@ BTAUDIO3_FAST_FORWARD_WITH_REPEAT
Definition: btaudio3.h:477
btaudio3_t::uart
uart_t uart
Definition: btaudio3.h:422
BTAUDIO3_PAUSE
@ BTAUDIO3_PAUSE
Definition: btaudio3.h:481
BTAUDIO3_REWIND_WITH_REPEAT
@ BTAUDIO3_REWIND_WITH_REPEAT
Definition: btaudio3.h:479
BTAUDIO2_EQ_MODE_DANCE
@ BTAUDIO2_EQ_MODE_DANCE
Definition: btaudio3.h:503
btaudio3_t::rst
digital_out_t rst
Definition: btaudio3.h:417
btaudio3_make_call
err_t btaudio3_make_call(btaudio3_t *ctx, uint8_t database_index, uint8_t *phone_number)
BT Audio 3 make call function.
btaudio3_cfg_t::rst
pin_name_t rst
Definition: btaudio3.h:445
btaudio3_t::mfb
digital_out_t mfb
Definition: btaudio3.h:418
BTAUDIO3_STOP_FAST_FORWARD_OR_REWIND
@ BTAUDIO3_STOP_FAST_FORWARD_OR_REWIND
Definition: btaudio3.h:475
btaudio3_set_mfb_pin
void btaudio3_set_mfb_pin(btaudio3_t *ctx, uint8_t state)
BT Audio 3 set MFB pin function.
btaudio3_soft_mute_output
void btaudio3_soft_mute_output(btaudio3_t *ctx)
BT Audio 3 soft mute output function.
BTAUDIO3_PREVIOUS_SONG
@ BTAUDIO3_PREVIOUS_SONG
Definition: btaudio3.h:485
btaudio3_packet_t
BT Audio 3 Click command/event packet structure object.
Definition: btaudio3.h:402
btaudio3_set_device_name
err_t btaudio3_set_device_name(btaudio3_t *ctx, uint8_t *device_name)
BT Audio 3 set device name function.
btaudio3_t
BT Audio 3 Click context object.
Definition: btaudio3.h:414
btaudio3_packet_t::opcode
uint8_t opcode
Definition: btaudio3.h:403
btaudio3_cfg_t::sm
pin_name_t sm
Definition: btaudio3.h:444
btaudio3_reset_to_default
err_t btaudio3_reset_to_default(btaudio3_t *ctx)
BT Audio 3 reset to default function.
BTAUDIO2_EQ_MODE_BASS
@ BTAUDIO2_EQ_MODE_BASS
Definition: btaudio3.h:497
btaudio3_read_event
err_t btaudio3_read_event(btaudio3_t *ctx)
BT Audio 3 read event function.
btaudio3_cfg_t::mfb
pin_name_t mfb
Definition: btaudio3.h:446
btaudio3_t::mod
digital_out_t mod
Definition: btaudio3.h:419
btaudio3_wait_for_event
void btaudio3_wait_for_event(btaudio3_t *ctx, uint8_t opcode)
BT Audio 3 wait for event function.
btaudio3_disable_advertising
err_t btaudio3_disable_advertising(btaudio3_t *ctx)
BT Audio 3 disable advertising function.
DRV_BUFFER_SIZE
#define DRV_BUFFER_SIZE
BT Audio 3 driver buffer size.
Definition: btaudio3.h:368
BTAUDIO2_EQ_MODE_TREBLE
@ BTAUDIO2_EQ_MODE_TREBLE
Definition: btaudio3.h:498
btaudio3_cfg_t::rx_pin
pin_name_t rx_pin
Definition: btaudio3.h:440
btaudio3_send_mmi_action
err_t btaudio3_send_mmi_action(btaudio3_t *ctx, uint8_t database_index, uint8_t action)
BT Audio 3 send MMI action function.
btaudio3_cfg_t::data_bit
uart_data_bits_t data_bit
Definition: btaudio3.h:452
BTAUDIO2_EQ_MODE_RNB
@ BTAUDIO2_EQ_MODE_RNB
Definition: btaudio3.h:504
btaudio3_music_control
err_t btaudio3_music_control(btaudio3_t *ctx, btaudio3_music_control_t action)
BT Audio 3 music control function.
BTAUDIO3_PLAY_PAUSE_TOGGLE
@ BTAUDIO3_PLAY_PAUSE_TOGGLE
Definition: btaudio3.h:482
BTAUDIO3_FAST_FORWARD
@ BTAUDIO3_FAST_FORWARD
Definition: btaudio3.h:476
btaudio3_cfg_t::mod
pin_name_t mod
Definition: btaudio3.h:447
BTAUDIO2_EQ_MODE_SOFT
@ BTAUDIO2_EQ_MODE_SOFT
Definition: btaudio3.h:496
BTAUDIO3_ERROR
@ BTAUDIO3_ERROR
Definition: btaudio3.h:465
BTAUDIO2_EQ_MODE_ROCK
@ BTAUDIO2_EQ_MODE_ROCK
Definition: btaudio3.h:500
btaudio3_cfg_t::uart_blocking
bool uart_blocking
Definition: btaudio3.h:451
btaudio3_init
err_t btaudio3_init(btaudio3_t *ctx, btaudio3_cfg_t *cfg)
BT Audio 3 initialization function.
BTAUDIO3_REWIND
@ BTAUDIO3_REWIND
Definition: btaudio3.h:478
BTAUDIO3_PLAY
@ BTAUDIO3_PLAY
Definition: btaudio3.h:480
btaudio3_send_command
void btaudio3_send_command(btaudio3_t *ctx)
BT Audio 3 send command function.
btaudio3_soft_unmute_output
void btaudio3_soft_unmute_output(btaudio3_t *ctx)
BT Audio 3 soft unmute output function.
btaudio3_cfg_t::tx_pin
pin_name_t tx_pin
Definition: btaudio3.h:441
btaudio3_set_test_mode
void btaudio3_set_test_mode(btaudio3_t *ctx)
BT Audio 3 set test mode function.