BTM services: Difference between revisions
No edit summary |
|||
Line 152: | Line 152: | ||
| 68 || [13.0.0+] | | 68 || [13.0.0+] | ||
|- | |- | ||
| 69 || [13.0.0+] | | 69 || [13.0.0+] AcquireAudioDeviceConnectionEvent | ||
|- | |- | ||
| 70 || [13.0.0+] | | 70 || [13.0.0+] GetConnectedAudioDevices | ||
|- | |- | ||
| 71 || [13.0.0+] | | 71 || [13.0.0+] | ||
Line 160: | Line 160: | ||
| 72 || [13.0.0+] | | 72 || [13.0.0+] | ||
|- | |- | ||
| 73 || [13.0.0+] | | 73 || [13.0.0+] RequestAudioDeviceConnectionRejection | ||
|- | |- | ||
| 74 || [13.0.0+] | | 74 || [13.0.0+] CancelAudioDeviceConnectionRejection | ||
|- | |- | ||
| 75 || [13.0.0+] | | 75 || [13.0.0+] GetPairedAudioDevices | ||
|- | |- | ||
| 76 || [13.1.0+] | | 76 || [13.1.0+] | ||
Line 172: | Line 172: | ||
| 101 || [13.0.0+] | | 101 || [13.0.0+] | ||
|- | |- | ||
| 110 || [13.0.0+] | | 110 || [13.0.0+] GetShortenedDeviceInfo | ||
|- | |- | ||
| 111 || [13.0.0+] | | 111 || [13.0.0+] | ||
Line 182: | Line 182: | ||
| 114 || [14.0.0+] | | 114 || [14.0.0+] | ||
|- | |- | ||
| 115 || [14.0.0+] | | 115 || [14.0.0+] GetShortenedDeviceCondition | ||
|- | |- | ||
| 116 || [15.0.0+] | | 116 || [15.0.0+] | ||
Line 190: | Line 190: | ||
== GetState == | == GetState == | ||
No input | No input. Returns an output [[#BtmState]]. | ||
== GetHostDeviceProperty == | == GetHostDeviceProperty == | ||
No input | No input. Returns an output [[#HostDeviceProperty]]. | ||
[13.0.0+] Takes a type-0x1A output buffer containing a [[#HostDeviceProperty]] | [13.0.0+] Takes a type-0x1A output buffer containing a [[#HostDeviceProperty]]. No output. | ||
This gets the previously initialized [[#HostDeviceProperty]]. | This gets the previously initialized [[#HostDeviceProperty]]. | ||
== AcquireDeviceConditionEvent == | == AcquireDeviceConditionEvent == | ||
No input | No input. Returns an output Event handle with EventClearMode=1. | ||
[3.0.0+] Now returns an additional output bool. | [3.0.0+] Now returns an additional output bool. | ||
== GetDeviceCondition == | == GetDeviceCondition == | ||
Takes a type-0x1A output buffer containing a | Takes a type-0x1A output buffer containing a [[#DeviceConditionList]]. No output. | ||
[13.0.0+] Takes an input u32 [[#Profile]], a type-0xA output buffer containing an array of | [13.0.0+] Takes an input u32 [[#Profile]], a type-0xA output buffer containing an array of [[#DeviceCondition]], returns a s32 for total output entries. When [[#Profile]] is non-zero, entries are only returned with a matching [[#Profile]]. | ||
== SetBurstMode == | == SetBurstMode == | ||
Takes an input [[#BdAddress|BdAddress]] and a bool | Takes an input [[#BdAddress|BdAddress]] and a bool. No output. | ||
== SetSlotMode == | == SetSlotMode == | ||
Takes a type-0x19 input buffer containing a [[#DeviceSlotModeList]] | Takes a type-0x19 input buffer containing a [[#DeviceSlotModeList]]. No output. | ||
Sends a request which is then handled as follows: | Sends a request which is then handled as follows: | ||
Line 238: | Line 238: | ||
== SetBluetoothMode == | == SetBluetoothMode == | ||
Takes an input [[#BluetoothMode]] | Takes an input [[#BluetoothMode]]. No output. | ||
== SetWlanMode == | == SetWlanMode == | ||
Takes an input [[#WlanMode]] | Takes an input [[#WlanMode]]. No output. | ||
== AcquireDeviceInfoEvent == | == AcquireDeviceInfoEvent == | ||
No input | No input. Returns an output Event handle with EventClearMode=1. | ||
[3.0.0+] Now returns an additional output bool. | [3.0.0+] Now returns an additional output bool. | ||
== GetDeviceInfo == | == GetDeviceInfo == | ||
Takes a type-0x1A output buffer containing a [[#DeviceInfoList]]. | Takes a type-0x1A output buffer containing a [[#DeviceInfoList]]. No output. | ||
[13.0.0+] Takes an input u32 [[#Profile]], a type-0xA output buffer containing an array of [[#DeviceInfo]], returns a s32 for total output entries. When [[#Profile]] is non-zero, entries are only returned with a matching [[#Profile]]. | [13.0.0+] Takes an input u32 [[#Profile]], a type-0xA output buffer containing an array of [[#DeviceInfo]], returns a s32 for total output entries. When [[#Profile]] is non-zero, entries are only returned with a matching [[#Profile]]. | ||
== AddDeviceInfo == | == AddDeviceInfo == | ||
Takes an input [[#DeviceInfo]] | Takes an input [[#DeviceInfo]]. No output. | ||
[13.0.0+] Takes a type-0x19 input buffer containing a [[#DeviceInfo]], no output. | [13.0.0+] Takes a type-0x19 input buffer containing a [[#DeviceInfo]], no output. | ||
== RemoveDeviceInfo == | == RemoveDeviceInfo == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
== IncreaseDeviceInfoOrder == | == IncreaseDeviceInfoOrder == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
== LlrNotify == | == LlrNotify == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
[9.0.0+] Takes an input [[#BdAddress|BdAddress]] and a s32, no output. | [9.0.0+] Takes an input [[#BdAddress|BdAddress]] and a s32, no output. | ||
Line 276: | Line 276: | ||
== HidDisconnect == | == HidDisconnect == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
== HidSetRetransmissionMode == | == HidSetRetransmissionMode == | ||
Takes an input [[#BdAddress|BdAddress]] and a type-0x19 input buffer containing a [[#ZeroRetransmissionList]] | Takes an input [[#BdAddress|BdAddress]] and a type-0x19 input buffer containing a [[#ZeroRetransmissionList]]. No output. | ||
== AcquireAwakeReqEvent == | == AcquireAwakeReqEvent == | ||
No input | No input. Returns an output Event handle with EventClearMode=1. | ||
[3.0.0+] Now returns an additional output bool. | [3.0.0+] Now returns an additional output bool. | ||
== AcquireLlrStateEvent == | == AcquireLlrStateEvent == | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
== IsLlrStarted == | == IsLlrStarted == | ||
No input | No input. Returns an output bool. | ||
== EnableSlotSaving == | == EnableSlotSaving == | ||
Takes an input bool | Takes an input bool. No output. | ||
== ProtectDeviceInfo == | == ProtectDeviceInfo == | ||
Takes an input [[#BdAddress|BdAddress]] and a bool | Takes an input [[#BdAddress|BdAddress]] and a bool. No output. | ||
== AcquireBleScanEvent == | == AcquireBleScanEvent == | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
== GetBleScanParameterGeneral == | == GetBleScanParameterGeneral == | ||
Takes an input u16 ParameterId | Takes an input u16 ParameterId. Returns a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. | ||
The u16 must be value 0x1 or 0xFFFF. | The u16 must be value 0x1 or 0xFFFF. | ||
Line 313: | Line 313: | ||
== GetBleScanParameterSmartDevice == | == GetBleScanParameterSmartDevice == | ||
Takes an input u16 ParameterId | Takes an input u16 ParameterId. Returns a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]]. | ||
The u16 must be value 0x2. The first 4-bytes of output is always 0 since it's not set. | The u16 must be value 0x2. The first 4-bytes of output is always 0 since it's not set. | ||
== StartBleScanForGeneral == | == StartBleScanForGeneral == | ||
Takes a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] | Takes a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. No output. | ||
This eventually uses [[Bluetooth_Driver_services#AddBleScanFilterCondition|AddBleScanFilterCondition]], where the the passed BleAdvertiseFilter is generated from the input BleAdvertisePacketParameter. | This eventually uses [[Bluetooth_Driver_services#AddBleScanFilterCondition|AddBleScanFilterCondition]], where the the passed BleAdvertiseFilter is generated from the input BleAdvertisePacketParameter. | ||
Line 328: | Line 328: | ||
== GetBleScanResultsForGeneral == | == GetBleScanResultsForGeneral == | ||
Takes a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]] | Takes a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]]. Returns an output u8 total_out. | ||
The max array entries is 10. | The max array entries is 10. | ||
== StartBleScanForPaired == | == StartBleScanForPaired == | ||
Takes a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] | Takes a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. No output. | ||
This eventually uses [[Bluetooth_Driver_services#AddBleScanFilterCondition|AddBleScanFilterCondition]], where the the passed BleAdvertiseFilter is generated from the input BleAdvertisePacketParameter. | This eventually uses [[Bluetooth_Driver_services#AddBleScanFilterCondition|AddBleScanFilterCondition]], where the the passed BleAdvertiseFilter is generated from the input BleAdvertisePacketParameter. | ||
Line 343: | Line 343: | ||
== StartBleScanForSmartDevice == | == StartBleScanForSmartDevice == | ||
Takes a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]] | Takes a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]]. No output. | ||
This eventually uses [[Bluetooth_Driver_services#AddBleScanFilterCondition|AddBleScanFilterCondition]], where the the passed BleAdvertiseFilter is generated from the input GattAttributeUuid. | This eventually uses [[Bluetooth_Driver_services#AddBleScanFilterCondition|AddBleScanFilterCondition]], where the the passed BleAdvertiseFilter is generated from the input GattAttributeUuid. | ||
Line 355: | Line 355: | ||
== GetBleScanResultsForSmartDevice == | == GetBleScanResultsForSmartDevice == | ||
Takes a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]] | Takes a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]]. Returns an output u8 total_out. | ||
The max array entries is 10. | The max array entries is 10. | ||
== AcquireBleConnectionEvent == | == AcquireBleConnectionEvent == | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
== BleConnect == | == BleConnect == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
An error is thrown if the [[#BdAddress|BdAddress]] is already connected (listed in the [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]] from [[#BleGetConnectionState]]). An error is thrown if 4 [[#BleGetConnectionState|devices]] are already connected. | An error is thrown if the [[#BdAddress|BdAddress]] is already connected (listed in the [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]] from [[#BleGetConnectionState]]). An error is thrown if 4 [[#BleGetConnectionState|devices]] are already connected. | ||
== BleOverrideConnection == | == BleOverrideConnection == | ||
Takes an input u32 | Takes an input u32 ConnectionHandle. No output. | ||
The u32 is the same as the param for [[#BleDisconnect]]. | The u32 is the same as the param for [[#BleDisconnect]]. | ||
== BleDisconnect == | == BleDisconnect == | ||
Takes an input u32 ConnectionHandle | Takes an input u32 ConnectionHandle. No output. | ||
The u32 must match a ConnectionHandle in a [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]] from [[#BleGetConnectionState]]. [5.1.0+] 0xFFFFFFFF is invalid. | The u32 must match a ConnectionHandle in a [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]] from [[#BleGetConnectionState]]. [5.1.0+] 0xFFFFFFFF is invalid. | ||
== BleGetConnectionState == | == BleGetConnectionState == | ||
Takes a type-0xA output buffer containing an array of [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]] | Takes a type-0xA output buffer containing an array of [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]]. Returns an output u8 total_out. | ||
Other cmds which use this internally use arraycount=4. | Other cmds which use this internally use arraycount=4. | ||
Line 386: | Line 386: | ||
== AcquireBlePairingEvent == | == AcquireBlePairingEvent == | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
== BlePairDevice == | == BlePairDevice == | ||
Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] and an u32 | Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] and an input u32 ConnectionHandle. No output. | ||
The u32 is the same as the param for [[#BleDisconnect]]. | The u32 is the same as the param for [[#BleDisconnect]]. | ||
== BleUnpairDeviceOnBoth == | == BleUnpairDeviceOnBoth == | ||
Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] | Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] an input u32 ConnectionHandle. No output. | ||
The u32 is the same as the param for [[#BleDisconnect]]. | The u32 is the same as the param for [[#BleDisconnect]]. | ||
== BleUnpairDevice == | == BleUnpairDevice == | ||
Takes an input [[#BdAddress|BdAddress]] and a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] | Takes an input [[#BdAddress|BdAddress]] and a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. No output. | ||
== BleGetPairedAddresses == | == BleGetPairedAddresses == | ||
Takes a type-0xA output buffer containing an array of [[#BdAddress|BdAddress]], a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] | Takes a type-0xA output buffer containing an array of [[#BdAddress|BdAddress]], a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. Returns an output u8 total_out. | ||
The max array entries is 10. | The max array entries is 10. | ||
== AcquireBleServiceDiscoveryEvent == | == AcquireBleServiceDiscoveryEvent == | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
== GetGattServices == | == GetGattServices == | ||
Takes a type-0x6 output buffer containing an array of [[#GattService]] | Takes a type-0x6 output buffer containing an array of [[#GattService]] and an input u32 ConnectionHandle. Returns an output u8 total_out. | ||
The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | ||
== GetGattService == | == GetGattService == | ||
Takes a type-0x1A output buffer containing a [[#GattService]], an u32 | Takes a type-0x1A output buffer containing a [[#GattService]], an input u32 ConnectionHandle and a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]]. Returns an output bool. | ||
The u32 is the same as the param for [[#BleDisconnect]]. The output bool indicates whether a [[#GattService]] was returned. | The u32 is the same as the param for [[#BleDisconnect]]. The output bool indicates whether a [[#GattService]] was returned. | ||
Line 422: | Line 422: | ||
== GetGattIncludedServices == | == GetGattIncludedServices == | ||
Takes a type-0x6 output buffer containing an array of [[#GattService]], an u16 ServiceHandle | Takes a type-0x6 output buffer containing an array of [[#GattService]], an u16 ServiceHandle and an input u32 ConnectionHandle. Returns an output u8. | ||
The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | ||
Line 431: | Line 431: | ||
== GetBelongingService == | == GetBelongingService == | ||
Takes a type-0x1A output buffer containing a [[#GattService]], an u16 AttributeHandle | Takes a type-0x1A output buffer containing a [[#GattService]], an u16 AttributeHandle and an input u32 ConnectionHandle. Returns an output bool. | ||
The u32 is the same as the param for [[#BleDisconnect]]. The output bool indicates whether a [[#GattService]] was returned. | The u32 is the same as the param for [[#BleDisconnect]]. The output bool indicates whether a [[#GattService]] was returned. | ||
Line 438: | Line 438: | ||
== GetGattCharacteristics == | == GetGattCharacteristics == | ||
Takes a type-0x6 output buffer containing an array of [[#GattCharacteristic]], an u16 ServiceHandle | Takes a type-0x6 output buffer containing an array of [[#GattCharacteristic]], an u16 ServiceHandle and an input u32 ConnectionHandle. Returns an output u8 total_out. | ||
The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | ||
Line 445: | Line 445: | ||
== GetGattDescriptors == | == GetGattDescriptors == | ||
Takes a type-0x6 output buffer containing an array of [[#GattDescriptor]], an u16 CharHandle | Takes a type-0x6 output buffer containing an array of [[#GattDescriptor]], an u16 CharHandle and an input u32 ConnectionHandle. Returns an output u8 total_out. | ||
The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | ||
Line 452: | Line 452: | ||
== AcquireBleMtuConfigEvent == | == AcquireBleMtuConfigEvent == | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
== ConfigureBleMtu == | == ConfigureBleMtu == | ||
Takes an u16 mtu | Takes an u16 mtu and an input u32 ConnectionHandle. No output. | ||
The u32 is the same as the param for [[#BleDisconnect]]. | The u32 is the same as the param for [[#BleDisconnect]]. | ||
== GetBleMtu == | == GetBleMtu == | ||
Takes an u32 | Takes an input u32 ConnectionHandle. Returns an output u16 mtu. | ||
The u32 is the same as the param for [[#BleDisconnect]]. | The u32 is the same as the param for [[#BleDisconnect]]. | ||
== RegisterBleGattDataPath == | == RegisterBleGattDataPath == | ||
Takes a [[#BleDataPath]] | Takes a [[#BleDataPath]]. No output. | ||
== UnregisterBleGattDataPath == | == UnregisterBleGattDataPath == | ||
Takes a [[#BleDataPath]] | Takes a [[#BleDataPath]]. No output. | ||
== RegisterAppletResourceUserId == | == RegisterAppletResourceUserId == | ||
Takes an input u32 and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes an input u32 and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
== UnregisterAppletResourceUserId == | == UnregisterAppletResourceUserId == | ||
Takes an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
== SetAppletResourceUserId == | == SetAppletResourceUserId == | ||
Takes an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
== Cmd60 == | == Cmd60 == | ||
No input | No input. Returns an output Event handle with EventClearMode=1. | ||
== Cmd61 == | == Cmd61 == | ||
Takes a 0x44-byte input struct | Takes a 0x44-byte input struct. No output. | ||
Sends a request which is then handled as follows: | Sends a request which is then handled as follows: | ||
Line 519: | Line 519: | ||
== Cmd62 == | == Cmd62 == | ||
Takes an input bool | Takes an input bool. No output. | ||
Sends a request which is handled as follows: writes the flag into state if needed. | Sends a request which is handled as follows: writes the flag into state if needed. | ||
== Cmd63 == | == Cmd63 == | ||
No input | No input. Returns an output bool. | ||
This gets the flag used by [[#Cmd62]]. | This gets the flag used by [[#Cmd62]]. | ||
Line 584: | Line 584: | ||
== AcquireDiscoveryEvent == | == AcquireDiscoveryEvent == | ||
No input | No input. Returns output an Event handle with EventClearMode=1. | ||
[3.0.0+] Now returns an additional output bool. | [3.0.0+] Now returns an additional output bool. | ||
Line 595: | Line 595: | ||
== GetDeviceProperty == | == GetDeviceProperty == | ||
Takes a type-0x1A output buffer containing a [[#DevicePropertyList]]. | Takes a type-0x1A output buffer containing a [[#DevicePropertyList]]. No output. | ||
== CreateBond == | == CreateBond == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
== CancelBond == | == CancelBond == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
== SetTsiMode == | == SetTsiMode == | ||
Takes an input [[#BdAddress|BdAddress]] and a [[#TsiMode]] | Takes an input [[#BdAddress|BdAddress]] and a [[#TsiMode]]. No output. | ||
Sends a request which is handled as follows: uses [[Bluetooth_Driver_services#SetTsi|SetTsi]] directly with the specified params. | Sends a request which is handled as follows: uses [[Bluetooth_Driver_services#SetTsi|SetTsi]] directly with the specified params. | ||
== GeneralTest == | == GeneralTest == | ||
Takes an input s32 | Takes an input s32. No output. | ||
== HidConnect == | == HidConnect == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
== GeneralGet == | == GeneralGet == | ||
Takes an input u32 and a type-0x1A output buffer containing a 0x11-byte struct. | Takes an input u32 and a type-0x1A output buffer containing a 0x11-byte struct. No output. | ||
== GetGattClientDisconnectionReason == | == GetGattClientDisconnectionReason == | ||
Takes an input [[#BdAddress|BdAddress]] and an u32 | Takes an input [[#BdAddress|BdAddress]] and an u32. Returns an output bool and u16. | ||
The bool indicates whether the cmd is successful. | The bool indicates whether the cmd is successful. | ||
== GetBleConnectionParameter == | == GetBleConnectionParameter == | ||
Takes an input u32 | Takes an input u32. Returns an output bool and 3 u16s. | ||
The bool indicates whether the cmd is successful, the output u16s are only set when this bool is set. | The bool indicates whether the cmd is successful, the output u16s are only set when this bool is set. | ||
== GetBleConnectionParameterRequest == | == GetBleConnectionParameterRequest == | ||
Takes an input u32 | Takes an input u32. Returns an output bool and 4 u16s. | ||
The bool indicates whether the cmd is successful, the output u16s are only set when this bool is set. | The bool indicates whether the cmd is successful, the output u16s are only set when this bool is set. | ||
Line 645: | Line 645: | ||
== GetCore == | == GetCore == | ||
No input | No input. Returns an output [[#IBtmSystemCore]]. | ||
== IBtmSystemCore == | == IBtmSystemCore == | ||
Line 713: | Line 713: | ||
=== GetPairedGamepadCount === | === GetPairedGamepadCount === | ||
No input | No input. Returns an output u8. | ||
=== EnableRadio === | === EnableRadio === | ||
Line 722: | Line 722: | ||
=== IsRadioEnabled === | === IsRadioEnabled === | ||
No input | No input. Returns an output bool. | ||
=== AcquireRadioEvent === | === AcquireRadioEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
=== AcquireGamepadPairingEvent === | === AcquireGamepadPairingEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
=== IsGamepadPairingStarted === | === IsGamepadPairingStarted === | ||
No input | No input. Returns an output bool. | ||
= btm:u = | = btm:u = | ||
Line 748: | Line 748: | ||
== GetCore == | == GetCore == | ||
No input | No input. Returns an output [[#IBtmUserCore]]. | ||
== IBtmUserCore == | == IBtmUserCore == | ||
Line 823: | Line 823: | ||
=== AcquireBleScanEvent === | === AcquireBleScanEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
This is similar to the [[#AcquireBleScanEvent|btm]] cmd. | This is similar to the [[#AcquireBleScanEvent|btm]] cmd. | ||
=== GetBleScanFilterParameter === | === GetBleScanFilterParameter === | ||
Takes an input u16 | Takes an input u16. Returns a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. | ||
This is the same as [[#GetBleScanParameterGeneral]]. | This is the same as [[#GetBleScanParameterGeneral]]. | ||
=== GetBleScanFilterParameter2 === | === GetBleScanFilterParameter2 === | ||
Takes an input u16 | Takes an input u16. Returns a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]]. | ||
This is the same as [[#GetBleScanParameterSmartDevice]]. | This is the same as [[#GetBleScanParameterSmartDevice]]. | ||
=== StartBleScanForGeneral === | === StartBleScanForGeneral === | ||
Takes a PID, a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#StartBleScanForGeneral|btm]] cmd. | This is similar to the [[#StartBleScanForGeneral|btm]] cmd. | ||
Line 848: | Line 848: | ||
=== GetBleScanResultsForGeneral === | === GetBleScanResultsForGeneral === | ||
Takes a PID, a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u8 total_out. | ||
This is similar to the [[#GetBleScanResultsForGeneral|btm]] cmd. | This is similar to the [[#GetBleScanResultsForGeneral|btm]] cmd. | ||
=== StartBleScanForPaired === | === StartBleScanForPaired === | ||
Takes a PID, a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#StartBleScanForPaired|btm]] cmd. | This is similar to the [[#StartBleScanForPaired|btm]] cmd. | ||
Line 863: | Line 863: | ||
=== StartBleScanForSmartDevice === | === StartBleScanForSmartDevice === | ||
Takes a PID, a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#StartBleScanForSmartDevice|btm]] cmd. | This is similar to the [[#StartBleScanForSmartDevice|btm]] cmd. | ||
Line 873: | Line 873: | ||
=== GetBleScanResultsForSmartDevice === | === GetBleScanResultsForSmartDevice === | ||
Takes a PID, a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u8 total_out. | ||
This is similar to the [[#GetBleScanResultsForSmartDevice|btm]] cmd. | This is similar to the [[#GetBleScanResultsForSmartDevice|btm]] cmd. | ||
=== AcquireBleConnectionEvent === | === AcquireBleConnectionEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
This is similar to the [[#AcquireBleConnectionEvent|btm]] cmd. | This is similar to the [[#AcquireBleConnectionEvent|btm]] cmd. | ||
=== BleConnect === | === BleConnect === | ||
Takes a PID, an [[#BdAddress|BdAddress]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, an [[#BdAddress|BdAddress]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#BleConnect|btm]] cmd. | This is similar to the [[#BleConnect|btm]] cmd. | ||
=== BleDisconnect === | === BleDisconnect === | ||
Takes an input u32 | Takes an input u32. No output. | ||
This is similar to the [[#BleDisconnect|btm]] cmd. | This is similar to the [[#BleDisconnect|btm]] cmd. | ||
=== BleGetConnectionState === | === BleGetConnectionState === | ||
Takes a PID, a type-0xA output buffer containing an array of [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0xA output buffer containing an array of [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u8 total_out. | ||
This is similar to the [[#BleGetConnectionState|btm]] cmd. | This is similar to the [[#BleGetConnectionState|btm]] cmd. | ||
=== AcquireBlePairingEvent === | === AcquireBlePairingEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
This is similar to the [[#AcquireBlePairingEvent|btm]] cmd. | This is similar to the [[#AcquireBlePairingEvent|btm]] cmd. | ||
=== BlePairDevice === | === BlePairDevice === | ||
Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] and an u32 | Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] and an u32. No output. | ||
This is similar to the [[#BlePairDevice|btm]] cmd. | This is similar to the [[#BlePairDevice|btm]] cmd. | ||
=== BleUnPairDevice === | === BleUnPairDevice === | ||
Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] and an u32 | Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] and an u32. No output. | ||
This is similar to the [[#BleUnpairDeviceOnBoth|btm]] cmd. | This is similar to the [[#BleUnpairDeviceOnBoth|btm]] cmd. | ||
=== BleUnPairDevice2 === | === BleUnPairDevice2 === | ||
Takes an input [[#BdAddress|BdAddress]] and a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] | Takes an input [[#BdAddress|BdAddress]] and a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. No output. | ||
This is similar to the [[#BleUnPairDevice|btm]] cmd. | This is similar to the [[#BleUnPairDevice|btm]] cmd. | ||
=== BleGetPairedDevices === | === BleGetPairedDevices === | ||
Takes a type-0xA output buffer containing an array of [[#BdAddress|BdAddress]], a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] | Takes a type-0xA output buffer containing an array of [[#BdAddress|BdAddress]], a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. Returns an output u8 total_out. | ||
This is the same as the [[#BleGetPairedAddresses|btm]] cmd. | This is the same as the [[#BleGetPairedAddresses|btm]] cmd. | ||
=== AcquireBleServiceDiscoveryEvent === | === AcquireBleServiceDiscoveryEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
This is similar to the [[#AcquireBleServiceDiscoveryEvent|btm]] cmd. | This is similar to the [[#AcquireBleServiceDiscoveryEvent|btm]] cmd. | ||
Line 930: | Line 930: | ||
=== GetGattServices === | === GetGattServices === | ||
Takes a PID, a type-0x6 output buffer containing an array of [[#GattService]], an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0x6 output buffer containing an array of [[#GattService]], an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u8 total_out. | ||
This is similar to the [[#GetGattServices|btm]] cmd. | This is similar to the [[#GetGattServices|btm]] cmd. | ||
=== GetGattService === | === GetGattService === | ||
Takes a PID, a type-0x1A output buffer containing a [[#GattService]], an u32, a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0x1A output buffer containing a [[#GattService]], an u32, a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output bool. | ||
This is similar to the [[#GetGattService|btm]] cmd. | This is similar to the [[#GetGattService|btm]] cmd. | ||
=== GetGattIncludedServices === | === GetGattIncludedServices === | ||
Takes a PID, a type-0x6 output buffer containing an array of [[#GattService]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0x6 output buffer containing an array of [[#GattService]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u8. | ||
This is similar to the [[#GetGattIncludedServices|btm]] cmd. | This is similar to the [[#GetGattIncludedServices|btm]] cmd. | ||
Line 947: | Line 947: | ||
=== GetBelongingGattService === | === GetBelongingGattService === | ||
Takes a PID, a type-0x1A output buffer containing a [[#GattService]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0x1A output buffer containing a [[#GattService]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output bool. | ||
This is similar to the [[#GetBelongingService|btm]] cmd. | This is similar to the [[#GetBelongingService|btm]] cmd. | ||
=== GetGattCharacteristics === | === GetGattCharacteristics === | ||
Takes a PID, a type-0x6 output buffer containing an array of [[#GattCharacteristic]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0x6 output buffer containing an array of [[#GattCharacteristic]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u8 total_out. | ||
This is similar to the [[#GetGattCharacteristics|btm]] cmd. | This is similar to the [[#GetGattCharacteristics|btm]] cmd. | ||
=== GetGattDescriptors === | === GetGattDescriptors === | ||
Takes a PID, a type-0x6 output buffer containing an array of [[#GattDescriptor]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0x6 output buffer containing an array of [[#GattDescriptor]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u8 total_out. | ||
This is similar to the [[#GetGattDescriptors|btm]] cmd. | This is similar to the [[#GetGattDescriptors|btm]] cmd. | ||
=== AcquireBleMtuConfigEvent === | === AcquireBleMtuConfigEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
This is similar to the [[#AcquireBleMtuConfigEvent|btm]] cmd. | This is similar to the [[#AcquireBleMtuConfigEvent|btm]] cmd. | ||
=== ConfigureBleMtu === | === ConfigureBleMtu === | ||
Takes a PID, an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#ConfigureBleMtu|btm]] cmd. | This is similar to the [[#ConfigureBleMtu|btm]] cmd. | ||
Line 974: | Line 974: | ||
=== GetBleMtu === | === GetBleMtu === | ||
Takes a PID, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u16. | ||
This is similar to the [[#GetBleMtu|btm]] cmd. | This is similar to the [[#GetBleMtu|btm]] cmd. | ||
=== RegisterBleGattDataPath === | === RegisterBleGattDataPath === | ||
Takes a PID, a [[#BleDataPath]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a [[#BleDataPath]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#RegisterBleGattDataPath|btm]] cmd. | This is similar to the [[#RegisterBleGattDataPath|btm]] cmd. | ||
=== UnregisterBleGattDataPath === | === UnregisterBleGattDataPath === | ||
Takes a PID, a [[#BleDataPath]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a [[#BleDataPath]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#UnregisterBleGattDataPath|btm]] cmd. | This is similar to the [[#UnregisterBleGattDataPath|btm]] cmd. | ||
Line 1,094: | Line 1,094: | ||
|- | |- | ||
| 2 || 6 | | 2 || 6 | ||
|- | |||
| 3 || Active | |||
|} | |||
= SniffMode = | |||
This is "nn::btm::SniffMode". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || 5ms | |||
|- | |||
| 1 || 10ms | |||
|- | |||
| 2 || 15ms | |||
|- | |- | ||
| 3 || Active | | 3 || Active | ||
Line 1,108: | Line 1,124: | ||
|- | |- | ||
| 1 || Hid | | 1 || Hid | ||
|- | |||
| 2 || [13.0.0+] Audio | |||
|} | |} | ||
Line 1,122: | Line 1,140: | ||
|- | |- | ||
| 0x2 || 0x2 || Pid | | 0x2 || 0x2 || Pid | ||
|} | |||
= HidDeviceCondition = | |||
This is "nn::btm::HidDeviceCondition". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x4 || [[#SniffMode|SniffMode]] | |||
|- | |||
| 0x4 || 0x4 || [[#SlotMode|SlotMode]] | |||
|- | |||
| 0x8 || 0x1 || IsBurstMode | |||
|- | |||
| 0x9 || 0x11 || [[#ZeroRetransmissionList|ZeroRetransmissionList]] | |||
|- | |||
| 0x1A || 0x2 || Vid | |||
|- | |||
| 0x1C || 0x2 || Pid | |||
|} | |} | ||
Line 1,142: | Line 1,182: | ||
|- | |- | ||
| 0x29 || 0x1 || FeatureSet | | 0x29 || 0x1 || FeatureSet | ||
|- | |||
| 0x2A || 0xD9 || [13.0.0+] | |||
|} | |} | ||
= DeviceSlotMode = | = DeviceSlotMode = | ||
This is "nn::btm::DeviceSlotMode" | This is "nn::btm::DeviceSlotMode". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,174: | Line 1,216: | ||
|- | |- | ||
| 0x4 || 0xC * 8 || Array of [[#DeviceSlotMode|DeviceSlotMode]] | | 0x4 || 0xC * 8 || Array of [[#DeviceSlotMode|DeviceSlotMode]] | ||
|} | |||
= DeviceCondition = | |||
This is "nn::btm::DeviceCondition". This is a 0x6C-byte struct. | |||
[13.0.0+] This is a 0x148-byte struct. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x6 || [[#BdAddress|BdAddress]] | |||
|- | |||
| 0x6 || 0x2 || Reserved | |||
|- | |||
| 0x8 || 0x4 || [[#Profile|Profile]] | |||
|- | |||
| 0xC || 0x20 || [[#BdName|BdName]] | |||
|- | |||
| 0x2C || 0x20 || Empty (Profile = None) or [[#HidDeviceCondition|HidDeviceCondition]] (Profile = Hid) | |||
|- | |||
| 0x4C || 0x20 || Reserved | |||
|- | |||
| 0x6C || 0xDC || [13.0.0+] | |||
|} | |||
= DeviceConditionList = | |||
This is "nn::btm::DeviceConditionList". This is a 0x36C-byte struct. | |||
[13.0.0+] This is a 0xA4C-byte struct. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x4 || [[#BluetoothMode|BluetoothMode]] | |||
|- | |||
| 0x4 || 0x4 || [[#WlanMode|WlanMode]] | |||
|- | |||
| 0x8 || 0x1 || IsSlotSavingForPairing | |||
|- | |||
| 0x9 || 0x1 || DeviceCount | |||
|- | |||
| 0xA || 0x2 || Reserved | |||
|- | |||
| 0xC || 0x148 * 8 ([1.0.0-12.1.0] 0x6C * 8) || Array of [[#DeviceCondition|DeviceCondition]] | |||
|} | |} | ||
Line 1,202: | Line 1,294: | ||
|- | |- | ||
| 0x44 || 0x1C || Reserved | | 0x44 || 0x1C || Reserved | ||
|- | |||
| 0x60 || 0xDC || [13.0.0+] | |||
|} | |} | ||
= DeviceInfoList = | = DeviceInfoList = | ||
This is "nn::btm::DeviceInfoList". This is a 0x3C4-byte struct. | This is "nn::btm::DeviceInfoList". This is a 0x3C4-byte struct. | ||
[13.0.0+] This is a 0xC5C-byte struct. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,217: | Line 1,313: | ||
| 0x1 || 0x3 || Reserved | | 0x1 || 0x3 || Reserved | ||
|- | |- | ||
| 0x4 || | | 0x4 || 0x13C * 10 ([1.0.0-12.1.0] 0x60 * 10) || Array of [[#DeviceInfo|DeviceInfo]] | ||
|} | |} | ||