gap.h (7aa35f6a68be293b189765703d55a2983fa71909) gap.h (2a6c0f8203a6e80b026f1d5508f53de0dbb70501)
1/*
2 * Copyright (C) 2014 BlueKitchen GmbH
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright

--- 192 unchanged lines hidden (view full) ---

201 uint8_t rtn;
202 uint8_t phy;
203 uint8_t packing;
204 uint8_t framing;
205 uint8_t encryption;
206 uint8_t broadcast_code[16];
207} le_audio_big_params_t;
208
1/*
2 * Copyright (C) 2014 BlueKitchen GmbH
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright

--- 192 unchanged lines hidden (view full) ---

201 uint8_t rtn;
202 uint8_t phy;
203 uint8_t packing;
204 uint8_t framing;
205 uint8_t encryption;
206 uint8_t broadcast_code[16];
207} le_audio_big_params_t;
208
209typedef struct {
210 uint8_t big_handle;
211 uint8_t sync_handle;
212 uint8_t encryption;
213 uint8_t broadcast_code[16];
214 uint8_t mse;
215 uint16_t big_sync_timeout_10ms;
216 uint8_t num_bis;
217 hci_con_handle_t bis_indices[MAX_NR_BIS];
218} le_audio_big_sync_params_t;
219
209typedef enum {
210 LE_AUDIO_BIG_STATE_CREATE,
211 LE_AUDIO_BIG_STATE_W4_ESTABLISHED,
220typedef enum {
221 LE_AUDIO_BIG_STATE_CREATE,
222 LE_AUDIO_BIG_STATE_W4_ESTABLISHED,
212 LE_AUDIO_BIG_STATE_W4_ESTABLISHED_THEN_TERMINATE,
213 LE_AUDIO_BIG_STATE_SETUP_ISO_PATH,
214 LE_AUDIO_BIG_STATE_W4_SETUP_ISO_PATH,
215 LE_AUDIO_BIG_STATE_W4_SETUP_ISO_PATH_THEN_TERMINATE,
223 LE_AUDIO_BIG_STATE_SETUP_ISO_PATH,
224 LE_AUDIO_BIG_STATE_W4_SETUP_ISO_PATH,
225 LE_AUDIO_BIG_STATE_W4_SETUP_ISO_PATH_THEN_TERMINATE,
216 LE_AUDIO_BIG_STATE_ACTIVE,
217 LE_AUDIO_BIG_STATE_SETUP_ISO_PATHS_FAILED,
226 LE_AUDIO_BIG_STATE_SETUP_ISO_PATHS_FAILED,
218 LE_AUDIO_BIG_STATE_W4_TERMINATED_AFTER_SETUP_FAILED,
227 LE_AUDIO_BIG_STATE_ACTIVE,
219 LE_AUDIO_BIG_STATE_TERMINATE,
228 LE_AUDIO_BIG_STATE_TERMINATE,
229 LE_AUDIO_BIG_STATE_W4_TERMINATED_AFTER_SETUP_FAILED,
220 LE_AUDIO_BIG_STATE_W4_TERMINATED,
221} le_audio_big_state_t;
222
223typedef struct {
224 btstack_linked_item_t item;
225 uint8_t big_handle;
226 le_audio_big_state_t state;
227 union {
228 uint8_t next_bis;
229 uint8_t status;
230 } state_vars;
231 uint8_t num_bis;
232 hci_con_handle_t bis_con_handles[MAX_NR_BIS];
233 const le_audio_big_params_t * params;
234} le_audio_big_t;
235
230 LE_AUDIO_BIG_STATE_W4_TERMINATED,
231} le_audio_big_state_t;
232
233typedef struct {
234 btstack_linked_item_t item;
235 uint8_t big_handle;
236 le_audio_big_state_t state;
237 union {
238 uint8_t next_bis;
239 uint8_t status;
240 } state_vars;
241 uint8_t num_bis;
242 hci_con_handle_t bis_con_handles[MAX_NR_BIS];
243 const le_audio_big_params_t * params;
244} le_audio_big_t;
245
246typedef struct {
247 btstack_linked_item_t item;
248 uint8_t big_handle;
249 le_audio_big_state_t state;
250 union {
251 uint8_t next_bis;
252 uint8_t status;
253 } state_vars;
254 uint8_t num_bis;
255 hci_con_handle_t bis_con_handles[MAX_NR_BIS];
256 const le_audio_big_sync_params_t * params;
257} le_audio_big_sync_t;
258
236/* API_START */
237
238// Classic + LE
239
240/**
241 * @brief Read RSSI
242 * @param con_handle
243 * @events: GAP_EVENT_RSSI_MEASUREMENT

--- 430 unchanged lines hidden (view full) ---

674 * @return status
675 */
676uint8_t gap_periodic_advertising_stop(uint8_t advertising_handle);
677
678/**
679 * @brief Remove advertising set from Controller
680 * @param advertising_handle
681 * @return status
259/* API_START */
260
261// Classic + LE
262
263/**
264 * @brief Read RSSI
265 * @param con_handle
266 * @events: GAP_EVENT_RSSI_MEASUREMENT

--- 430 unchanged lines hidden (view full) ---

697 * @return status
698 */
699uint8_t gap_periodic_advertising_stop(uint8_t advertising_handle);
700
701/**
702 * @brief Remove advertising set from Controller
703 * @param advertising_handle
704 * @return status
682 * @events: GAP_SUBEVENT_ADVERTISING_SET_REMOVED
705 * @events GAP_SUBEVENT_ADVERTISING_SET_REMOVED
683 */
684uint8_t gap_extended_advertising_remove(uint8_t advertising_handle);
685
686/**
687 * @brief Create Broadcast Isochronous Group (BIG)
688 * @param storage to use by stack, needs to stay valid until adv set is removed with gap_big_terminate
689 * @param big_params
690 * @return status
706 */
707uint8_t gap_extended_advertising_remove(uint8_t advertising_handle);
708
709/**
710 * @brief Create Broadcast Isochronous Group (BIG)
711 * @param storage to use by stack, needs to stay valid until adv set is removed with gap_big_terminate
712 * @param big_params
713 * @return status
714 * @events GAP_SUBEVENT_BIG_CREATED unless interrupted by call to gap_big_terminate
691 */
692uint8_t gap_big_create(le_audio_big_t * storage, le_audio_big_params_t * big_params);
693
694/**
695 * @brief Terminate Broadcast Isochronous Group (BIG)
696 * @param big_handle
697 * @return status
715 */
716uint8_t gap_big_create(le_audio_big_t * storage, le_audio_big_params_t * big_params);
717
718/**
719 * @brief Terminate Broadcast Isochronous Group (BIG)
720 * @param big_handle
721 * @return status
722 * @events: GAP_SUBEVENT_BIG_TERMINATED
698 */
699uint8_t gap_big_terminate(uint8_t big_handle);
700
701/**
723 */
724uint8_t gap_big_terminate(uint8_t big_handle);
725
726/**
727 * @brief Synchronize to Broadcast Isochronous Group (BIG)
728 * @param storage to use by stack, needs to stay valid until adv set is removed with gap_big_terminate
729 * @param big_sync_params
730 * @return status
731 * @events GAP_SUBEVENT_BIG_SYNC_CREATED unless interrupted by call to gap_big_sync_terminate
732 */
733uint8_t gap_big_sync_create(le_audio_big_sync_t * storage, le_audio_big_sync_params_t * big_sync_params);
734
735/**
736 * @brief Stop synchronizing to Broadcast Isochronous Group (BIG). Triggers GAP_SUBEVENT_BIG_SYNC_STOPPED
737 * @note Also used to stop synchronizing before BIG Sync was established
738 * @param big_handle
739 * @return status
740 * @events GAP_SUBEVENT_BIG_SYNC_STOPPED
741 */
742uint8_t gap_big_sync_terminate(uint8_t big_handle);
743
744/**
702 * @brief Set connection parameters for outgoing connections
703 * @param conn_scan_interval (unit: 0.625 msec), default: 60 ms
704 * @param conn_scan_window (unit: 0.625 msec), default: 30 ms
705 * @param conn_interval_min (unit: 1.25ms), default: 10 ms
706 * @param conn_interval_max (unit: 1.25ms), default: 30 ms
707 * @param conn_latency, default: 4
708 * @param supervision_timeout (unit: 10ms), default: 720 ms
709 * @param min_ce_length (unit: 0.625ms), default: 10 ms

--- 510 unchanged lines hidden ---
745 * @brief Set connection parameters for outgoing connections
746 * @param conn_scan_interval (unit: 0.625 msec), default: 60 ms
747 * @param conn_scan_window (unit: 0.625 msec), default: 30 ms
748 * @param conn_interval_min (unit: 1.25ms), default: 10 ms
749 * @param conn_interval_max (unit: 1.25ms), default: 30 ms
750 * @param conn_latency, default: 4
751 * @param supervision_timeout (unit: 10ms), default: 720 ms
752 * @param min_ce_length (unit: 0.625ms), default: 10 ms

--- 510 unchanged lines hidden ---