libnx v4.9.0
Loading...
Searching...
No Matches
btdrv_types.h
Go to the documentation of this file.
1/**
2 * @file btdrv_types.h
3 * @brief Bluetooth driver (btdrv) service types (see btdrv.h for the rest).
4 * @author yellows8, ndeadly
5 * @copyright libnx Authors
6 */
7#pragma once
8#include "../types.h"
9#include "btdrv_ids.h"
10
11/// BluetoothPropertyType [1.0.0-11.0.1]
12typedef enum {
13 BtdrvBluetoothPropertyType_Name = 1, ///< Name. String, max length 0xF8 excluding NUL-terminator.
14 BtdrvBluetoothPropertyType_Address = 2, ///< \ref BtdrvAddress
15 BtdrvBluetoothPropertyType_Unknown3 = 3, ///< Only available with \ref btdrvSetAdapterProperty. Unknown, \ref BtdrvAddress.
16 BtdrvBluetoothPropertyType_ClassOfDevice = 5, ///< 3-bytes, Class of Device.
17 BtdrvBluetoothPropertyType_FeatureSet = 6, ///< 1-byte, FeatureSet. The default is value 0x68.
19
20/// AdapterPropertyType [12.0.0+]
21typedef enum {
22 BtdrvAdapterPropertyType_Address = 0, ///< \ref BtdrvAddress
23 BtdrvAdapterPropertyType_Name = 1, ///< Name. String, max length 0xF8 excluding NUL-terminator.
24 BtdrvAdapterPropertyType_ClassOfDevice = 2, ///< 3-bytes, Class of Device.
25 BtdrvAdapterPropertyType_Unknown3 = 3, ///< Only available with \ref btdrvSetAdapterProperty. Unknown, \ref BtdrvAddress.
27
28/// EventType
29typedef enum {
30 ///< BtdrvEventType_* should be used on [12.0.0+]
31 BtdrvEventType_InquiryDevice = 0, ///< Device found during Inquiry.
32 BtdrvEventType_InquiryStatus = 1, ///< Inquiry status changed.
33 BtdrvEventType_PairingPinCodeRequest = 2, ///< Pairing PIN code request.
34 BtdrvEventType_SspRequest = 3, ///< SSP confirm request / SSP passkey notification.
35 BtdrvEventType_Connection = 4, ///< Connection
36 BtdrvEventType_Tsi = 5, ///< SetTsi (\ref btdrvSetTsi)
37 BtdrvEventType_BurstMode = 6, ///< SetBurstMode (\ref btdrvEnableBurstMode)
38 BtdrvEventType_SetZeroRetransmission = 7, ///< \ref btdrvSetZeroRetransmission
39 BtdrvEventType_PendingConnections = 8, ///< \ref btdrvGetPendingConnections
40 BtdrvEventType_MoveToSecondaryPiconet = 9, ///< \ref btdrvMoveToSecondaryPiconet
41 BtdrvEventType_BluetoothCrash = 10, ///< BluetoothCrash
42
43 ///< BtdrvEventTypeOld_* should be used on [1.0.0-11.0.1]
45 BtdrvEventTypeOld_InquiryDevice = 3, ///< Device found during Inquiry.
46 BtdrvEventTypeOld_InquiryStatus = 4, ///< Inquiry status changed.
47 BtdrvEventTypeOld_PairingPinCodeRequest = 5, ///< Pairing PIN code request.
48 BtdrvEventTypeOld_SspRequest = 6, ///< SSP confirm request / SSP passkey notification.
49 BtdrvEventTypeOld_Connection = 7, ///< Connection
50 BtdrvEventTypeOld_BluetoothCrash = 13, ///< BluetoothCrash
52
53/// BtdrvInquiryStatus
54typedef enum {
55 BtdrvInquiryStatus_Stopped = 0, ///< Inquiry stopped.
56 BtdrvInquiryStatus_Started = 1, ///< Inquiry started.
58
59/// ConnectionEventType
60typedef enum {
61 BtdrvConnectionEventType_Status = 0, ///< BtdrvEventInfo::connection::status
62 BtdrvConnectionEventType_SspConfirmRequest = 1, ///< SSP confirm request.
63 BtdrvConnectionEventType_Suspended = 2, ///< ACL Link is now Suspended.
65
66/// ExtEventType [1.0.0-11.0.1]
67typedef enum {
68 BtdrvExtEventType_SetTsi = 0, ///< SetTsi (\ref btdrvSetTsi)
69 BtdrvExtEventType_ExitTsi = 1, ///< ExitTsi (\ref btdrvSetTsi)
70 BtdrvExtEventType_SetBurstMode = 2, ///< SetBurstMode (\ref btdrvEnableBurstMode)
71 BtdrvExtEventType_ExitBurstMode = 3, ///< ExitBurstMode (\ref btdrvEnableBurstMode)
72 BtdrvExtEventType_SetZeroRetransmission = 4, ///< \ref btdrvSetZeroRetransmission
73 BtdrvExtEventType_PendingConnections = 5, ///< \ref btdrvGetPendingConnections
74 BtdrvExtEventType_MoveToSecondaryPiconet = 6, ///< \ref btdrvMoveToSecondaryPiconet
76
77/// BluetoothHhReportType
78/// Bit0-1 directly control the HID bluetooth transaction report-type value.
79/// Bit2-3: these directly control the Parameter Reserved field for SetReport, for GetReport these control the Parameter Reserved and Size bits.
86
87/// HidEventType
88typedef enum {
89 ///< BtdrvHidEventType_* should be used on [12.0.0+]
90 BtdrvHidEventType_Connection = 0, ///< Connection. Only used with \ref btdrvGetHidEventInfo.
91 BtdrvHidEventType_Data = 1, ///< DATA report on the Interrupt channel.
92 BtdrvHidEventType_SetReport = 2, ///< Response to SET_REPORT.
93 BtdrvHidEventType_GetReport = 3, ///< Response to GET_REPORT.
94
95 ///< BtdrvHidEventTypeOld_* should be used on [1.0.0-11.0.1]
96 BtdrvHidEventTypeOld_Connection = 0, ///< Connection. Only used with \ref btdrvGetHidEventInfo.
97 BtdrvHidEventTypeOld_Data = 4, ///< DATA report on the Interrupt channel.
98 BtdrvHidEventTypeOld_Ext = 7, ///< Response for extensions. Only used with \ref btdrvGetHidEventInfo.
99 BtdrvHidEventTypeOld_SetReport = 8, ///< Response to SET_REPORT.
100 BtdrvHidEventTypeOld_GetReport = 9, ///< Response to GET_REPORT.
102
103/// HidConnectionStatus [12.0.0+]
104typedef enum {
105 ///< BtdrvHidConnectionStatus_* should be used on [12.0.0+]
107 BtdrvHidConnectionStatus_Opened = 1,
109
110 ///< BtdrvHidConnectionStatusOld_* should be used on [1.0.0-11.0.1]
111 BtdrvHidConnectionStatusOld_Opened = 0,
112 BtdrvHidConnectionStatusOld_Closed = 2,
113 BtdrvHidConnectionStatusOld_Failed = 8,
115
116/// This determines the u16 data to write into a CircularBuffer.
117typedef enum {
118 BtdrvFatalReason_Invalid = 0, ///< Only for \ref BtdrvEventInfo: invalid.
119 BtdrvFatalReason_Unknown1 = 1, ///< Can only be triggered by \ref btdrvEmulateBluetoothCrash, not triggered by the sysmodule otherwise.
120 BtdrvFatalReason_CommandTimeout = 2, ///< HCI command timeout.
121 BtdrvFatalReason_HardwareError = 3, ///< HCI event HCI_Hardware_Error occurred.
122 BtdrvFatalReason_Enable = 7, ///< Only for \ref BtdrvEventInfo: triggered after enabling bluetooth, depending on the value of a global state field.
123 BtdrvFatalReason_Audio = 9, ///< [12.0.0+] Only for \ref BtdrvEventInfo: triggered by Audio cmds in some cases.
125
126/// BleEventType
127typedef enum {
128 BtdrvBleEventType_ClientRegistration = 0, ///< GATT client registration.
129 BtdrvBleEventType_ServerRegistration = 1, ///< GATT server registration.
130 BtdrvBleEventType_ConnectionUpdate = 2, ///< Connection update.
131 BtdrvBleEventType_PreferredConnectionParameters = 3, ///< Preferred connection parameters.
132 BtdrvBleEventType_ClientConnection = 4, ///< GATT client connection.
133 BtdrvBleEventType_ServerConnection = 5, ///< GATT server connection.
134 BtdrvBleEventType_ScanResult = 6, ///< Scan result.
135 BtdrvBleEventType_ScanFilter = 7, ///< Scan filter status.
136 BtdrvBleEventType_ClientNotify = 8, ///< GATT client notify.
137 BtdrvBleEventType_ClientCacheSave = 9, ///< GATT client cache save.
138 BtdrvBleEventType_ClientCacheLoad = 10, ///< GATT client cache load.
139 BtdrvBleEventType_ClientConfigureMtu = 11, ///< GATT client configure MTU.
140 BtdrvBleEventType_ServerAddAttribute = 12, ///< GATT server add attribute.
141 BtdrvBleEventType_ServerAttributeOperation = 13, ///< GATT server attribute operation.
143
144/// GattAttributeType
151
152/// GattAttributePermission
153typedef enum {
154 BtdrvGattAttributePermission_Read = BIT(0),
155 BtdrvGattAttributePermission_ReadEncrypted = BIT(1),
156 BtdrvGattAttributePermission_ReadEncryptedMitm = BIT(2),
157 BtdrvGattAttributePermission_Write = BIT(4),
158 BtdrvGattAttributePermission_WriteEncrypted = BIT(5),
159 BtdrvGattAttributePermission_WriteEncryptedMitm = BIT(6),
160 BtdrvGattAttributePermission_WriteSigned = BIT(7),
161 BtdrvGattAttributePermission_WriteSignedMitm = BIT(8),
162
163 BtdrvGattAttributePermission_ReadAllowed = BtdrvGattAttributePermission_Read | BtdrvGattAttributePermission_ReadEncrypted | BtdrvGattAttributePermission_ReadEncryptedMitm,
164 BtdrvGattAttributePermission_ReadAuthRequired = BtdrvGattAttributePermission_ReadEncrypted,
165 BtdrvGattAttributePermission_ReadMitmRequired = BtdrvGattAttributePermission_ReadEncryptedMitm,
166 BtdrvGattAttributePermission_ReadEncryptedRequired = BtdrvGattAttributePermission_ReadEncrypted | BtdrvGattAttributePermission_ReadEncryptedMitm,
167
168 BtdrvGattAttributePermission_WriteAllowed = BtdrvGattAttributePermission_Write | BtdrvGattAttributePermission_WriteEncrypted | BtdrvGattAttributePermission_WriteEncryptedMitm | BtdrvGattAttributePermission_WriteSigned | BtdrvGattAttributePermission_WriteSignedMitm,
169 BtdrvGattAttributePermission_WriteAuthRequired = BtdrvGattAttributePermission_WriteEncrypted | BtdrvGattAttributePermission_WriteSigned,
170 BtdrvGattAttributePermission_WriteMitmRequired = BtdrvGattAttributePermission_WriteEncryptedMitm | BtdrvGattAttributePermission_WriteSignedMitm,
171 BtdrvGattAttributePermission_WriteEncryptedRequired = BtdrvGattAttributePermission_WriteEncrypted | BtdrvGattAttributePermission_WriteEncryptedMitm,
172 BtdrvGattAttributePermission_WriteSignedRequired = BtdrvGattAttributePermission_WriteSigned | BtdrvGattAttributePermission_WriteSignedMitm,
174
175/// GattCharacteristicProperty
176typedef enum {
177 BtdrvGattCharacteristicProperty_Broadcast = BIT(0),
178 BtdrvGattCharacteristicProperty_Read = BIT(1),
179 BtdrvGattCharacteristicProperty_WriteNoResponse = BIT(2),
180 BtdrvGattCharacteristicProperty_Write = BIT(3),
181 BtdrvGattCharacteristicProperty_Notify = BIT(4),
182 BtdrvGattCharacteristicProperty_Indicate = BIT(5),
183 BtdrvGattCharacteristicProperty_Authentication = BIT(6),
184 BtdrvGattCharacteristicProperty_ExtendedProperties = BIT(7),
186
187/// GattAuthReqType
188typedef enum {
189 BtdrvGattAuthReqType_None = 0,
190 BtdrvGattAuthReqType_NoMitm = 1,
191 BtdrvGattAuthReqType_Mitm = 2,
192 BtdrvGattAuthReqType_SignedNoMitm = 3,
193 BtdrvGattAuthReqType_SignedMitm = 4,
195
196/// BtdrvBleAdBit
197typedef enum {
198 BtdrvBleAdBit_DeviceName = BIT(0),
199 BtdrvBleAdBit_Flags = BIT(1),
200 BtdrvBleAdBit_Manufacturer = BIT(2),
201 BtdrvBleAdBit_TxPower = BIT(3),
202 BtdrvBleAdBit_Service32 = BIT(4),
203 BtdrvBleAdBit_IntRange = BIT(5),
204 BtdrvBleAdBit_Service = BIT(6),
205 BtdrvBleAdBit_ServiceSol = BIT(7),
206 BtdrvBleAdBit_ServiceData = BIT(8),
207 BtdrvBleAdBit_SignData = BIT(9),
208 BtdrvBleAdBit_Service128Sol = BIT(10),
209 BtdrvBleAdBit_Appearance = BIT(11),
210 BtdrvBleAdBit_PublicAddress = BIT(12),
211 BtdrvBleAdBit_RandomAddress = BIT(13),
212 BtdrvBleAdBit_Service32Sol = BIT(14),
213 BtdrvBleAdBit_Proprietary = BIT(15),
214 BtdrvBleAdBit_Service128 = BIT(16),
216
217/// BtdrvBleAdFlag
218typedef enum {
219 BtdrvBleAdFlag_None = 0,
220 BtdrvBleAdFlag_LimitedDiscovery = BIT(0),
221 BtdrvBleAdFlag_GeneralDiscovery = BIT(1),
222 BtdrvBleAdFlag_BrEdrNotSupported = BIT(2),
223 BtdrvBleAdFlag_DualModeControllerSupport = BIT(3),
224 BtdrvBleAdFlag_DualModeHostSupport = BIT(4),
226
227/// AudioEventType
228typedef enum {
232
233/// AudioOutState
234typedef enum {
238
239/// AudioCodec
240typedef enum {
241 BtdrvAudioCodec_Pcm = 0, ///< Raw PCM
243
244/// Address
245typedef struct {
246 u8 address[0x6]; ///< Address
248
249/// ClassOfDevice
250typedef struct {
251 u8 class_of_device[0x3]; ///< ClassOfDevice
253
254/// AdapterProperty [1.0.0-11.0.1]
255typedef struct {
256 BtdrvAddress addr; ///< Same as the data for ::BtdrvBluetoothPropertyType_Address.
257 BtdrvClassOfDevice class_of_device; ///< Same as the data for ::BtdrvBluetoothPropertyType_ClassOfDevice.
258 char name[0xF9]; ///< Same as the data for ::BtdrvBluetoothPropertyType_Name (last byte is not initialized).
259 u8 feature_set; ///< Set to hard-coded value 0x68 (same as the data for ::BtdrvBluetoothPropertyType_FeatureSet).
261
262/// AdapterProperty [12.0.0+]
263typedef struct {
264 u8 type; ///< \ref BtdrvAdapterPropertyType
265 u8 size; ///< Data size.
266 u8 data[0x100]; ///< Data (above size), as specified by the type.
268
269/// AdapterPropertySet [12.0.0+]
270typedef struct {
271 BtdrvAddress addr; ///< Same as the data for ::BtdrvBluetoothPropertyType_Address.
272 BtdrvClassOfDevice class_of_device; ///< Same as the data for ::BtdrvBluetoothPropertyType_ClassOfDevice.
273 char name[0xF9]; ///< Same as the data for ::BtdrvBluetoothPropertyType_Name.
275
276/// BluetoothPinCode [1.0.0-11.0.1]
277typedef struct {
278 char code[0x10]; ///< PinCode
280
281/// BtdrvPinCode [12.0.0+]
282typedef struct {
283 char code[0x10]; ///< PinCode
284 u8 length; ///< Length
286
287/// HidData [1.0.0-8.1.1]
288typedef struct {
289 u16 size; ///< Size of data.
290 u8 data[0x280]; ///< Data
292
293/// HidReport [9.0.0+].
294typedef struct {
295 u16 size; ///< Size of data.
296 u8 data[0x2BC]; ///< Data
298
299/// PlrStatistics
300typedef struct {
301 u8 unk_x0[0x84]; ///< Unknown
303
304/// PlrList
305typedef struct {
306 u8 unk_x0[0xA4]; ///< Unknown
308
309/// ChannelMapList
310typedef struct {
311 u8 unk_x0[0x88]; ///< Unknown
313
314/// GattAttributeUuid
315typedef struct {
316 u32 size; ///< UUID size, must be 0x2, 0x4, or 0x10.
317 u8 uuid[0x10]; ///< UUID with the above size.
319
320/// GattId
321typedef struct {
322 u8 instance_id; ///< InstanceId
323 u8 pad[3]; ///< Padding
324 BtdrvGattAttributeUuid uuid; ///< \ref BtdrvGattAttributeUuid
326
327/// GattAttribute
328typedef struct {
329 BtdrvGattId id; ///< \ref BtdrvGattId
330 u16 type; ///< \ref BtdrvGattAttributeType
331 u16 handle;
332 u16 group_end_handle;
333 u8 property; ///< Only used when type is characteristic. \ref BtdrvGattCharacteristicProperty
334 bool is_primary; ///< Only used when type is service
336
337/// LeConnectionParams [5.0.0-8.1.1]
338typedef struct {
339 BtdrvAddress addr; ///< \ref BtdrvAddress
340 u16 min_conn_interval; ///< Minimum connection interval
341 u16 max_conn_interval; ///< Maximum connection interval
342 u16 scan_interval; ///< Scan interval
343 u16 scan_window; ///< Scan window
344 u16 slave_latency; ///< Slave latency
345 u16 supervision_tout; ///< Connection supervision timeout multiplier
346 u8 preference; ///< Unused
347 u8 pad; ///< Padding
349
350/// BleConnectionParameter [9.0.0+]
351typedef struct {
352 u16 min_conn_interval; ///< Minimum connection interval
353 u16 max_conn_interval; ///< Maximum connection interval
354 u16 scan_interval; ///< Scan interval
355 u16 scan_window; ///< Scan window
356 u16 slave_latency; ///< Slave latency
357 u16 supervision_tout; ///< Connection supervision timeout multiplier
359
360/// BtdrvBleAdvertisePacketData
361typedef struct {
362 u32 adv_data_mask; ///< Bitmask of following AD data to be included in advertising packets \ref BtdrvBleAdBit
363 u8 flag; ///< AD flag value to be advertised \ref BtdrvBleAdFlag. Included with BtdrvBleAdBit_Flags
364 u8 manu_data_len; ///< Size of manu_data below
365 u8 manu_data[0x1F]; ///< Manufacturer-specific data to be advertised. Included with BtdrvBleAdBit_Manufacturer
366 u8 pad[1]; ///< Padding
367 u16 appearance_data; ///< Device appearance data to be advertised \ref BtdrvAppearanceType. Included with BtdrvBleAdBit_Appearance
368 u8 num_service; ///< Number of services in uuid_val array below
369 u8 pad2[3]; ///< Padding
370 BtdrvGattAttributeUuid uuid_val[0x6]; ///< Array of 16-bit UUIDs to be advertised \ref BtdrvGattAttributeUuid. Included with BtdrvBleAdBit_Service
371 u8 service_data_len; ///< Size of service_data below
372 u8 pad3[1]; ///< Padding
373 u16 service_data_uuid; ///< 16-bit UUID of service_data below
374 u8 service_data[0x1F]; ///< Service data to be advertised. Included with BtdrvBleAdBit_ServiceData
375 bool is_scan_rsp; ///< Whether this is an inquiry scan response or advertising data
376 u8 tx_power; ///< Inquiry transmit power to be advertised. Included with BtdrvBleAdBit_TxPower
377 u8 pad4[3]; ///< Padding
379
380/// BleAdvertisement
381typedef struct {
382 u8 size; ///< Size of data below.
383 u8 type; ///< \ref BtdrvAdType
384 u8 data[0x1D]; ///< Advertisement data
386
387/// BleAdvertiseFilter
388typedef struct {
389 u8 index; ///< Filter index
390 BtdrvBleAdvertisement adv; ///< \ref BtdrvBleAdvertisement
391 u8 mask[0x1D]; ///< Mask for advertisement data above
392 u8 mask_size; ///< Size of mask above.
394
395/// BleAdvertisePacketParameter
396typedef struct {
397 u16 company_id;
398 u8 pattern_data[6];
400
401/// BleScanResult
402typedef struct {
403 u8 unk_x0; ///< Unknown
404 BtdrvAddress addr; ///< \ref BtdrvAddress
405 u8 unk_x7[0x139]; ///< Unknown
406 s32 count; ///< Unknown
407 s32 unk_x144; ///< Unknown
409
410/// BleConnectionInfo
411typedef struct {
412 u32 connection_handle; ///< ConnectionHandle, 0xFFFFFFFF ([5.0.0-5.0.2] 0xFFFF) is invalid.
413 BtdrvAddress addr; ///< \ref BtdrvAddress
414 u8 pad[2]; ///< Padding
416
417/// LeEventInfo
418typedef struct {
419 u32 unk_x0; ///< Unknown
420 u32 unk_x4; ///< Unknown
421 u8 unk_x8; ///< Unknown
422 u8 pad[3]; ///< Padding
423 BtdrvGattAttributeUuid uuid0; ///< \ref BtdrvGattAttributeUuid
424 BtdrvGattAttributeUuid uuid1; ///< \ref BtdrvGattAttributeUuid
425 BtdrvGattAttributeUuid uuid2; ///< \ref BtdrvGattAttributeUuid
426 u16 size; ///< Size of the below data.
427 u8 data[0x3B6]; ///< Data.
429
430/// BleClientGattOperationInfo
431typedef struct {
432 u8 unk_x0; ///< Converted from BtdrvLeEventInfo::unk_x0.
433 u8 pad[3]; ///< Padding
434 u32 unk_x4; ///< BtdrvLeEventInfo::unk_x4
435 u8 unk_x8; ///< BtdrvLeEventInfo::unk_x8
436 u8 pad2[3]; ///< Padding
437 BtdrvGattAttributeUuid uuid0; ///< BtdrvLeEventInfo::uuid0
438 BtdrvGattAttributeUuid uuid1; ///< BtdrvLeEventInfo::uuid1
439 BtdrvGattAttributeUuid uuid2; ///< BtdrvLeEventInfo::uuid2
440 u64 size; ///< BtdrvLeEventInfo::size
441 u8 data[0x200]; ///< BtdrvLeEventInfo::data
443
444/// PcmParameter
445typedef struct {
446 u32 unk_x0; ///< Must be 0-3. Controls number of channels: 0 = mono, non-zero = stereo.
447 s32 sample_rate; ///< Sample rate. Must be one of the following: 16000, 32000, 44100, 48000.
448 u32 bits_per_sample; ///< Bits per sample. Must be 8 or 16.
450
451/// AudioControlButtonState
452typedef struct {
453 u8 unk_x0[0x10]; ///< Unknown
455
Bluetooth SIG assigned number definitions (see https://www.bluetooth.com/specifications/assigned-numb...
BtdrvHidConnectionStatus
HidConnectionStatus [12.0.0+].
Definition btdrv_types.h:104
@ BtdrvHidConnectionStatus_Failed
BtdrvHidConnectionStatusOld_* should be used on [1.0.0-11.0.1].
Definition btdrv_types.h:108
@ BtdrvHidConnectionStatus_Closed
BtdrvHidConnectionStatus_* should be used on [12.0.0+].
Definition btdrv_types.h:106
BtdrvAudioCodec
AudioCodec.
Definition btdrv_types.h:240
@ BtdrvAudioCodec_Pcm
Raw PCM.
Definition btdrv_types.h:241
BtdrvBleAdBit
BtdrvBleAdBit.
Definition btdrv_types.h:197
BtdrvGattAttributeType
GattAttributeType.
Definition btdrv_types.h:145
@ BtdrvGattAttributeType_Descriptor
Descriptor.
Definition btdrv_types.h:148
@ BtdrvGattAttributeType_Service
Service.
Definition btdrv_types.h:149
@ BtdrvGattAttributeType_Characteristic
Characteristic.
Definition btdrv_types.h:147
@ BtdrvGattAttributeType_IncludedService
Included service.
Definition btdrv_types.h:146
BtdrvConnectionEventType
ConnectionEventType.
Definition btdrv_types.h:60
@ BtdrvConnectionEventType_SspConfirmRequest
SSP confirm request.
Definition btdrv_types.h:62
@ BtdrvConnectionEventType_Status
BtdrvEventInfo::connection::status.
Definition btdrv_types.h:61
@ BtdrvConnectionEventType_Suspended
ACL Link is now Suspended.
Definition btdrv_types.h:63
BtdrvAudioEventType
AudioEventType.
Definition btdrv_types.h:228
@ BtdrvAudioEventType_Connection
Connection.
Definition btdrv_types.h:230
@ BtdrvAudioEventType_None
None.
Definition btdrv_types.h:229
BtdrvAudioOutState
AudioOutState.
Definition btdrv_types.h:234
@ BtdrvAudioOutState_Stopped
Stopped.
Definition btdrv_types.h:235
@ BtdrvAudioOutState_Started
Started.
Definition btdrv_types.h:236
BtdrvGattCharacteristicProperty
GattCharacteristicProperty.
Definition btdrv_types.h:176
BtdrvAdapterPropertyType
AdapterPropertyType [12.0.0+].
Definition btdrv_types.h:21
@ BtdrvAdapterPropertyType_Address
BtdrvAddress
Definition btdrv_types.h:22
@ BtdrvAdapterPropertyType_ClassOfDevice
3-bytes, Class of Device.
Definition btdrv_types.h:24
@ BtdrvAdapterPropertyType_Unknown3
Only available with btdrvSetAdapterProperty. Unknown, BtdrvAddress.
Definition btdrv_types.h:25
@ BtdrvAdapterPropertyType_Name
Name. String, max length 0xF8 excluding NUL-terminator.
Definition btdrv_types.h:23
BtdrvFatalReason
This determines the u16 data to write into a CircularBuffer.
Definition btdrv_types.h:117
@ BtdrvFatalReason_Invalid
Only for BtdrvEventInfo: invalid.
Definition btdrv_types.h:118
@ BtdrvFatalReason_CommandTimeout
HCI command timeout.
Definition btdrv_types.h:120
@ BtdrvFatalReason_Audio
[12.0.0+] Only for BtdrvEventInfo: triggered by Audio cmds in some cases.
Definition btdrv_types.h:123
@ BtdrvFatalReason_HardwareError
HCI event HCI_Hardware_Error occurred.
Definition btdrv_types.h:121
@ BtdrvFatalReason_Enable
Only for BtdrvEventInfo: triggered after enabling bluetooth, depending on the value of a global state...
Definition btdrv_types.h:122
@ BtdrvFatalReason_Unknown1
Can only be triggered by btdrvEmulateBluetoothCrash, not triggered by the sysmodule otherwise.
Definition btdrv_types.h:119
BtdrvGattAttributePermission
GattAttributePermission.
Definition btdrv_types.h:153
BtdrvHidEventType
HidEventType.
Definition btdrv_types.h:88
@ BtdrvHidEventTypeOld_Ext
Response for extensions. Only used with btdrvGetHidEventInfo.
Definition btdrv_types.h:98
@ BtdrvHidEventType_Connection
BtdrvHidEventType_* should be used on [12.0.0+].
Definition btdrv_types.h:90
@ BtdrvHidEventTypeOld_SetReport
Response to SET_REPORT.
Definition btdrv_types.h:99
@ BtdrvHidEventType_Data
DATA report on the Interrupt channel.
Definition btdrv_types.h:91
@ BtdrvHidEventType_GetReport
Response to GET_REPORT.
Definition btdrv_types.h:93
@ BtdrvHidEventTypeOld_GetReport
Response to GET_REPORT.
Definition btdrv_types.h:100
@ BtdrvHidEventTypeOld_Data
DATA report on the Interrupt channel.
Definition btdrv_types.h:97
@ BtdrvHidEventTypeOld_Connection
Connection. Only used with btdrvGetHidEventInfo.
Definition btdrv_types.h:96
@ BtdrvHidEventType_SetReport
Response to SET_REPORT.
Definition btdrv_types.h:92
BtdrvBleAdFlag
BtdrvBleAdFlag.
Definition btdrv_types.h:218
BtdrvInquiryStatus
BtdrvInquiryStatus.
Definition btdrv_types.h:54
@ BtdrvInquiryStatus_Started
Inquiry started.
Definition btdrv_types.h:56
@ BtdrvInquiryStatus_Stopped
Inquiry stopped.
Definition btdrv_types.h:55
BtdrvExtEventType
ExtEventType [1.0.0-11.0.1].
Definition btdrv_types.h:67
@ BtdrvExtEventType_PendingConnections
btdrvGetPendingConnections
Definition btdrv_types.h:73
@ BtdrvExtEventType_SetBurstMode
SetBurstMode (btdrvEnableBurstMode)
Definition btdrv_types.h:70
@ BtdrvExtEventType_MoveToSecondaryPiconet
btdrvMoveToSecondaryPiconet
Definition btdrv_types.h:74
@ BtdrvExtEventType_SetTsi
SetTsi (btdrvSetTsi)
Definition btdrv_types.h:68
@ BtdrvExtEventType_ExitBurstMode
ExitBurstMode (btdrvEnableBurstMode)
Definition btdrv_types.h:71
@ BtdrvExtEventType_SetZeroRetransmission
btdrvSetZeroRetransmission
Definition btdrv_types.h:72
@ BtdrvExtEventType_ExitTsi
ExitTsi (btdrvSetTsi)
Definition btdrv_types.h:69
BtdrvGattAuthReqType
GattAuthReqType.
Definition btdrv_types.h:188
BtdrvBleEventType
BleEventType.
Definition btdrv_types.h:127
@ BtdrvBleEventType_ClientRegistration
GATT client registration.
Definition btdrv_types.h:128
@ BtdrvBleEventType_ServerRegistration
GATT server registration.
Definition btdrv_types.h:129
@ BtdrvBleEventType_PreferredConnectionParameters
Preferred connection parameters.
Definition btdrv_types.h:131
@ BtdrvBleEventType_ClientCacheLoad
GATT client cache load.
Definition btdrv_types.h:138
@ BtdrvBleEventType_ServerConnection
GATT server connection.
Definition btdrv_types.h:133
@ BtdrvBleEventType_ScanResult
Scan result.
Definition btdrv_types.h:134
@ BtdrvBleEventType_ServerAddAttribute
GATT server add attribute.
Definition btdrv_types.h:140
@ BtdrvBleEventType_ClientCacheSave
GATT client cache save.
Definition btdrv_types.h:137
@ BtdrvBleEventType_ClientConnection
GATT client connection.
Definition btdrv_types.h:132
@ BtdrvBleEventType_ConnectionUpdate
Connection update.
Definition btdrv_types.h:130
@ BtdrvBleEventType_ClientNotify
GATT client notify.
Definition btdrv_types.h:136
@ BtdrvBleEventType_ClientConfigureMtu
GATT client configure MTU.
Definition btdrv_types.h:139
@ BtdrvBleEventType_ServerAttributeOperation
GATT server attribute operation.
Definition btdrv_types.h:141
@ BtdrvBleEventType_ScanFilter
Scan filter status.
Definition btdrv_types.h:135
BtdrvEventType
EventType.
Definition btdrv_types.h:29
@ BtdrvEventTypeOld_BluetoothCrash
BluetoothCrash.
Definition btdrv_types.h:50
@ BtdrvEventType_SetZeroRetransmission
btdrvSetZeroRetransmission
Definition btdrv_types.h:38
@ BtdrvEventType_MoveToSecondaryPiconet
btdrvMoveToSecondaryPiconet
Definition btdrv_types.h:40
@ BtdrvEventType_BluetoothCrash
BluetoothCrash.
Definition btdrv_types.h:41
@ BtdrvEventType_InquiryDevice
BtdrvEventType_* should be used on [12.0.0+].
Definition btdrv_types.h:31
@ BtdrvEventType_SspRequest
SSP confirm request / SSP passkey notification.
Definition btdrv_types.h:34
@ BtdrvEventTypeOld_SspRequest
SSP confirm request / SSP passkey notification.
Definition btdrv_types.h:48
@ BtdrvEventTypeOld_PairingPinCodeRequest
Pairing PIN code request.
Definition btdrv_types.h:47
@ BtdrvEventType_PendingConnections
btdrvGetPendingConnections
Definition btdrv_types.h:39
@ BtdrvEventTypeOld_Connection
Connection.
Definition btdrv_types.h:49
@ BtdrvEventType_PairingPinCodeRequest
Pairing PIN code request.
Definition btdrv_types.h:33
@ BtdrvEventType_Tsi
SetTsi (btdrvSetTsi)
Definition btdrv_types.h:36
@ BtdrvEventTypeOld_Unknown0
Unused.
Definition btdrv_types.h:44
@ BtdrvEventTypeOld_InquiryDevice
Device found during Inquiry.
Definition btdrv_types.h:45
@ BtdrvEventType_Connection
Connection.
Definition btdrv_types.h:35
@ BtdrvEventTypeOld_InquiryStatus
Inquiry status changed.
Definition btdrv_types.h:46
@ BtdrvEventType_BurstMode
SetBurstMode (btdrvEnableBurstMode)
Definition btdrv_types.h:37
@ BtdrvEventType_InquiryStatus
Inquiry status changed.
Definition btdrv_types.h:32
BtdrvBluetoothPropertyType
BluetoothPropertyType [1.0.0-11.0.1].
Definition btdrv_types.h:12
@ BtdrvBluetoothPropertyType_FeatureSet
1-byte, FeatureSet. The default is value 0x68.
Definition btdrv_types.h:17
@ BtdrvBluetoothPropertyType_Address
BtdrvAddress
Definition btdrv_types.h:14
@ BtdrvBluetoothPropertyType_Name
Name. String, max length 0xF8 excluding NUL-terminator.
Definition btdrv_types.h:13
@ BtdrvBluetoothPropertyType_ClassOfDevice
3-bytes, Class of Device.
Definition btdrv_types.h:16
@ BtdrvBluetoothPropertyType_Unknown3
Only available with btdrvSetAdapterProperty. Unknown, BtdrvAddress.
Definition btdrv_types.h:15
BtdrvBluetoothHhReportType
BluetoothHhReportType Bit0-1 directly control the HID bluetooth transaction report-type value.
Definition btdrv_types.h:80
@ BtdrvBluetoothHhReportType_Other
Other.
Definition btdrv_types.h:81
@ BtdrvBluetoothHhReportType_Input
Input.
Definition btdrv_types.h:82
@ BtdrvBluetoothHhReportType_Output
Output.
Definition btdrv_types.h:83
@ BtdrvBluetoothHhReportType_Feature
Feature.
Definition btdrv_types.h:84
AdapterProperty [1.0.0-11.0.1].
Definition btdrv_types.h:255
u8 feature_set
Set to hard-coded value 0x68 (same as the data for BtdrvBluetoothPropertyType_FeatureSet).
Definition btdrv_types.h:259
BtdrvAddress addr
Same as the data for BtdrvBluetoothPropertyType_Address.
Definition btdrv_types.h:256
BtdrvClassOfDevice class_of_device
Same as the data for BtdrvBluetoothPropertyType_ClassOfDevice.
Definition btdrv_types.h:257
AdapterPropertySet [12.0.0+].
Definition btdrv_types.h:270
BtdrvClassOfDevice class_of_device
Same as the data for BtdrvBluetoothPropertyType_ClassOfDevice.
Definition btdrv_types.h:272
BtdrvAddress addr
Same as the data for BtdrvBluetoothPropertyType_Address.
Definition btdrv_types.h:271
AdapterProperty [12.0.0+].
Definition btdrv_types.h:263
u8 size
Data size.
Definition btdrv_types.h:265
u8 type
BtdrvAdapterPropertyType
Definition btdrv_types.h:264
Address.
Definition btdrv_types.h:245
AudioControlButtonState.
Definition btdrv_types.h:452
BleAdvertiseFilter.
Definition btdrv_types.h:388
u8 mask_size
Size of mask above.
Definition btdrv_types.h:392
u8 index
Filter index.
Definition btdrv_types.h:389
BtdrvBleAdvertisement adv
BtdrvBleAdvertisement
Definition btdrv_types.h:390
BtdrvBleAdvertisePacketData.
Definition btdrv_types.h:361
u8 num_service
Number of services in uuid_val array below.
Definition btdrv_types.h:368
u8 flag
AD flag value to be advertised BtdrvBleAdFlag. Included with BtdrvBleAdBit_Flags.
Definition btdrv_types.h:363
u16 service_data_uuid
16-bit UUID of service_data below
Definition btdrv_types.h:373
u32 adv_data_mask
Bitmask of following AD data to be included in advertising packets BtdrvBleAdBit.
Definition btdrv_types.h:362
u16 appearance_data
Device appearance data to be advertised BtdrvAppearanceType. Included with BtdrvBleAdBit_Appearance.
Definition btdrv_types.h:367
bool is_scan_rsp
Whether this is an inquiry scan response or advertising data.
Definition btdrv_types.h:375
u8 service_data_len
Size of service_data below.
Definition btdrv_types.h:371
u8 manu_data_len
Size of manu_data below.
Definition btdrv_types.h:364
u8 tx_power
Inquiry transmit power to be advertised. Included with BtdrvBleAdBit_TxPower.
Definition btdrv_types.h:376
BleAdvertisePacketParameter.
Definition btdrv_types.h:396
BleAdvertisement.
Definition btdrv_types.h:381
u8 size
Size of data below.
Definition btdrv_types.h:382
u8 type
BtdrvAdType
Definition btdrv_types.h:383
BleClientGattOperationInfo.
Definition btdrv_types.h:431
u32 unk_x4
BtdrvLeEventInfo::unk_x4.
Definition btdrv_types.h:434
u64 size
BtdrvLeEventInfo::size.
Definition btdrv_types.h:440
BtdrvGattAttributeUuid uuid2
BtdrvLeEventInfo::uuid2.
Definition btdrv_types.h:439
BtdrvGattAttributeUuid uuid1
BtdrvLeEventInfo::uuid1.
Definition btdrv_types.h:438
u8 unk_x8
BtdrvLeEventInfo::unk_x8.
Definition btdrv_types.h:435
BtdrvGattAttributeUuid uuid0
BtdrvLeEventInfo::uuid0.
Definition btdrv_types.h:437
u8 unk_x0
Converted from BtdrvLeEventInfo::unk_x0.
Definition btdrv_types.h:432
BleConnectionInfo.
Definition btdrv_types.h:411
BtdrvAddress addr
BtdrvAddress
Definition btdrv_types.h:413
u32 connection_handle
ConnectionHandle, 0xFFFFFFFF ([5.0.0-5.0.2] 0xFFFF) is invalid.
Definition btdrv_types.h:412
BleConnectionParameter [9.0.0+].
Definition btdrv_types.h:351
u16 min_conn_interval
Minimum connection interval.
Definition btdrv_types.h:352
u16 slave_latency
Slave latency.
Definition btdrv_types.h:356
u16 max_conn_interval
Maximum connection interval.
Definition btdrv_types.h:353
u16 supervision_tout
Connection supervision timeout multiplier.
Definition btdrv_types.h:357
u16 scan_interval
Scan interval.
Definition btdrv_types.h:354
u16 scan_window
Scan window.
Definition btdrv_types.h:355
BleScanResult.
Definition btdrv_types.h:402
s32 unk_x144
Unknown.
Definition btdrv_types.h:407
u8 unk_x0
Unknown.
Definition btdrv_types.h:403
BtdrvAddress addr
BtdrvAddress
Definition btdrv_types.h:404
s32 count
Unknown.
Definition btdrv_types.h:406
BluetoothPinCode [1.0.0-11.0.1].
Definition btdrv_types.h:277
ChannelMapList.
Definition btdrv_types.h:310
ClassOfDevice.
Definition btdrv_types.h:250
GattAttributeUuid.
Definition btdrv_types.h:315
u32 size
UUID size, must be 0x2, 0x4, or 0x10.
Definition btdrv_types.h:316
GattAttribute.
Definition btdrv_types.h:328
u8 property
Only used when type is characteristic. BtdrvGattCharacteristicProperty.
Definition btdrv_types.h:333
u16 type
BtdrvGattAttributeType
Definition btdrv_types.h:330
bool is_primary
Only used when type is service.
Definition btdrv_types.h:334
BtdrvGattId id
BtdrvGattId
Definition btdrv_types.h:329
GattId.
Definition btdrv_types.h:321
BtdrvGattAttributeUuid uuid
BtdrvGattAttributeUuid
Definition btdrv_types.h:324
u8 instance_id
InstanceId.
Definition btdrv_types.h:322
HidData [1.0.0-8.1.1].
Definition btdrv_types.h:288
u16 size
Size of data.
Definition btdrv_types.h:289
HidReport [9.0.0+].
Definition btdrv_types.h:294
u16 size
Size of data.
Definition btdrv_types.h:295
LeConnectionParams [5.0.0-8.1.1].
Definition btdrv_types.h:338
u16 min_conn_interval
Minimum connection interval.
Definition btdrv_types.h:340
u8 preference
Unused.
Definition btdrv_types.h:346
u16 scan_window
Scan window.
Definition btdrv_types.h:343
BtdrvAddress addr
BtdrvAddress
Definition btdrv_types.h:339
u16 slave_latency
Slave latency.
Definition btdrv_types.h:344
u16 max_conn_interval
Maximum connection interval.
Definition btdrv_types.h:341
u8 pad
Padding.
Definition btdrv_types.h:347
u16 supervision_tout
Connection supervision timeout multiplier.
Definition btdrv_types.h:345
u16 scan_interval
Scan interval.
Definition btdrv_types.h:342
LeEventInfo.
Definition btdrv_types.h:418
u8 unk_x8
Unknown.
Definition btdrv_types.h:421
BtdrvGattAttributeUuid uuid1
BtdrvGattAttributeUuid
Definition btdrv_types.h:424
u32 unk_x4
Unknown.
Definition btdrv_types.h:420
BtdrvGattAttributeUuid uuid2
BtdrvGattAttributeUuid
Definition btdrv_types.h:425
u16 size
Size of the below data.
Definition btdrv_types.h:426
u32 unk_x0
Unknown.
Definition btdrv_types.h:419
BtdrvGattAttributeUuid uuid0
BtdrvGattAttributeUuid
Definition btdrv_types.h:423
PcmParameter.
Definition btdrv_types.h:445
u32 unk_x0
Must be 0-3. Controls number of channels: 0 = mono, non-zero = stereo.
Definition btdrv_types.h:446
s32 sample_rate
Sample rate. Must be one of the following: 16000, 32000, 44100, 48000.
Definition btdrv_types.h:447
u32 bits_per_sample
Bits per sample. Must be 8 or 16.
Definition btdrv_types.h:448
BtdrvPinCode [12.0.0+].
Definition btdrv_types.h:282
u8 length
Length.
Definition btdrv_types.h:284
PlrList.
Definition btdrv_types.h:305
PlrStatistics.
Definition btdrv_types.h:300
#define BIT(n)
Creates a bitmask from a bit number.
Definition types.h:54
uint64_t u64
64-bit unsigned integer.
Definition types.h:22
uint8_t u8
8-bit unsigned integer.
Definition types.h:19
uint16_t u16
16-bit unsigned integer.
Definition types.h:20
int32_t s32
32-bit signed integer.
Definition types.h:27
uint32_t u32
32-bit unsigned integer.
Definition types.h:21