Bluetooth Driver services: Difference between revisions
No edit summary |
No edit summary |
||
Line 329: | Line 329: | ||
[12.0.0+] The Enable vfunc called above for Audio does the following: | [12.0.0+] The Enable vfunc called above for Audio does the following: | ||
* Calls a func which does the following: | * Calls a func which does the following: | ||
** Uses BSA to enable AV. Besides the callback, the only field in the passed struct which is set is <code>features</code>. This is ORRed to set | ** Uses BSA to enable AV. Besides the callback, the only field in the passed struct which is set is <code>features</code>. This is ORRed to set bit0 for "remote control target", which with [13.0.0+] is only done if [[System_Settings|system-setting]] <code>bluetooth_debug!is_av_rc_tg</code> is set to true. | ||
** Error handling + state setup is done. | ** Error handling + state setup is done. | ||
** Uses BSA to register AV twice, with the default input struct. | ** Uses BSA to register AV twice, with the default input struct. | ||
Line 1,053: | Line 1,053: | ||
== CloseAudioControlInput == | == CloseAudioControlInput == | ||
Takes an input [[#Address]], no output. | Takes an input [[#Address]], no output. | ||
This uses the BSA AV API to close the AVRCP connection. | |||
== RegisterAudioControlNotification == | == RegisterAudioControlNotification == | ||
Takes an input [[#Address]] and an u32 [[#AvrcEventType]], no output. | Takes an input [[#Address]] and an u32 [[#AvrcEventType]], no output. | ||
This uses the BSA AV API to send a vendor control command: ctype=0x3, label={counter which is incremented}, length=0x9, data=[0x31, 0x00, 0x00, 0x05, {u8 [[#AvrcEventType]]}, {rest is zeros}]. | |||
This does nothing since BSA requires [[#EnableBluetooth|features]] bit1 and bit3 to be set in order to use this. | |||
== SendAudioControlPassthroughCommand == | == SendAudioControlPassthroughCommand == | ||
Takes an input [[#Address]], an u32 [[#AvrcOperationId]], an u32 [[#AvrcStateType]], no output. | Takes an input [[#Address]], an u32 [[#AvrcOperationId]], an u32 [[#AvrcStateType]], no output. | ||
This uses the BSA AV API to send a remote control command: label={counter which is incremented}, rc_id=[[#AvrcOperationId]], key_state=[[#AvrcStateType]]. | |||
This does nothing since BSA requires [[#EnableBluetooth|features]] bit1 to be set in order to use this. | |||
== SendAudioControlSetAbsoluteVolumeCommand == | == SendAudioControlSetAbsoluteVolumeCommand == | ||
Takes an input [[#Address]] and a s32, no output. | Takes an input [[#Address]] and a s32, no output. | ||
This uses the BSA AV API to send a vendor control command: ctype=0x0, label={counter which is incremented}, length=0x5, data=[0x50, 0x00, 0x00, 0x01, {input s32 value written as an u8}]. | |||
See [[#RegisterAudioControlNotification]] regarding the usage requirement. | |||
== IsManufacturingMode == | == IsManufacturingMode == | ||
Line 2,035: | Line 2,049: | ||
= AvrcOperationId = | = AvrcOperationId = | ||
This is "nn::bluetooth::hal::AvrcOperationId". | This is "nn::bluetooth::hal::AvrcOperationId". This is the same as tBSA_AV_RC. | ||
= AvrcStateType = | = AvrcStateType = | ||
This is "nn::bluetooth::hal::AvrcStateType". | This is "nn::bluetooth::hal::AvrcStateType". This is the same as tBSA_AV_STATE. | ||
= Notes = | = Notes = |