gap.h (30199e24c811081e34846cfb3b6c82e682b38b47) gap.h (7aa35f6a68be293b189765703d55a2983fa71909)
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

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

49
50#include "btstack_defines.h"
51#include "btstack_util.h"
52
53#ifdef ENABLE_CLASSIC
54#include "classic/btstack_link_key_db.h"
55#endif
56
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

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

49
50#include "btstack_defines.h"
51#include "btstack_util.h"
52
53#ifdef ENABLE_CLASSIC
54#include "classic/btstack_link_key_db.h"
55#endif
56
57// BIG has up to 2 BIS (stereo)
58#ifndef MAX_NR_BIS
59#define MAX_NR_BIS 2
60#endif
61
57typedef enum {
58
59 // MITM protection not required
60 // No encryption required
61 // No user interaction required
62 LEVEL_0 = 0,
63
64 // MITM protection not required

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

177 uint16_t enable_timeout;
178 uint8_t advertising_handle;
179 uint8_t enable_max_scan_events;
180 bool periodic_include_adi;
181 uint8_t state;
182 uint8_t tasks;
183} le_advertising_set_t;
184
62typedef enum {
63
64 // MITM protection not required
65 // No encryption required
66 // No user interaction required
67 LEVEL_0 = 0,
68
69 // MITM protection not required

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

182 uint16_t enable_timeout;
183 uint8_t advertising_handle;
184 uint8_t enable_max_scan_events;
185 bool periodic_include_adi;
186 uint8_t state;
187 uint8_t tasks;
188} le_advertising_set_t;
189
190// Isochronous Streams
191
192// -- Broadcast Isochronous Group BIG
193
194typedef struct {
195 uint8_t big_handle;
196 uint8_t advertising_handle;
197 uint8_t num_bis;
198 uint32_t sdu_interval_us;
199 uint16_t max_sdu;
200 uint16_t max_transport_latency_ms;
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 enum {
210 LE_AUDIO_BIG_STATE_CREATE,
211 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,
216 LE_AUDIO_BIG_STATE_ACTIVE,
217 LE_AUDIO_BIG_STATE_SETUP_ISO_PATHS_FAILED,
218 LE_AUDIO_BIG_STATE_W4_TERMINATED_AFTER_SETUP_FAILED,
219 LE_AUDIO_BIG_STATE_TERMINATE,
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
185/* API_START */
186
187// Classic + LE
188
189/**
190 * @brief Read RSSI
191 * @param con_handle
192 * @events: GAP_EVENT_RSSI_MEASUREMENT

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

628 * @brief Remove advertising set from Controller
629 * @param advertising_handle
630 * @return status
631 * @events: GAP_SUBEVENT_ADVERTISING_SET_REMOVED
632 */
633uint8_t gap_extended_advertising_remove(uint8_t advertising_handle);
634
635/**
236/* API_START */
237
238// Classic + LE
239
240/**
241 * @brief Read RSSI
242 * @param con_handle
243 * @events: GAP_EVENT_RSSI_MEASUREMENT

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

679 * @brief Remove advertising set from Controller
680 * @param advertising_handle
681 * @return status
682 * @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
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
698 */
699uint8_t gap_big_terminate(uint8_t big_handle);
700
701/**
636 * @brief Set connection parameters for outgoing connections
637 * @param conn_scan_interval (unit: 0.625 msec), default: 60 ms
638 * @param conn_scan_window (unit: 0.625 msec), default: 30 ms
639 * @param conn_interval_min (unit: 1.25ms), default: 10 ms
640 * @param conn_interval_max (unit: 1.25ms), default: 30 ms
641 * @param conn_latency, default: 4
642 * @param supervision_timeout (unit: 10ms), default: 720 ms
643 * @param min_ce_length (unit: 0.625ms), default: 10 ms

--- 510 unchanged lines hidden ---
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 ---