Bluetooth Driver services: Difference between revisions

No edit summary
No edit summary
Line 7: Line 7:


This has max_sessions 30. IPC handling is done by the main-thread.
This has max_sessions 30. IPC handling is done by the main-thread.
As of 10.x these services only support using Hid and BLE devices, other devices such as audio are not usable.


[11.0.0+] sdknso moved various functions/etc from "nn::bluetooth::" into "nn::bluetooth::hal::". This includes all functions exposing btdrv. These btdrv functions now automatically initialize the service if needed, the dedicated initialization function is now a stub since calling it is no longer needed. The internal "nn::bluetooth::user::" functions implementing [[#bt]] were moved to "nn::bluetooth::hal::user::", these are called by the the user-facing "nn::bluetooth::" functions.
[11.0.0+] sdknso moved various functions/etc from "nn::bluetooth::" into "nn::bluetooth::hal::". This includes all functions exposing btdrv. These btdrv functions now automatically initialize the service if needed, the dedicated initialization function is now a stub since calling it is no longer needed. The internal "nn::bluetooth::user::" functions implementing [[#bt]] were moved to "nn::bluetooth::hal::user::", these are called by the the user-facing "nn::bluetooth::" functions.
Line 955: Line 953:


== StartAudioOut ==
== StartAudioOut ==
Takes an input u32, a [[#PcmParameter]], a nn::TimeSpan, returns an output nn::TimeSpan and u64.


== StopAudioOut ==
== StopAudioOut ==
Takes an input u32, no output.


== GetAudioOutState ==
== GetAudioOutState ==
Takes an input u32, returns an output [[#AudioOutState]].


== GetAudioOutFeedingCodec ==
== GetAudioOutFeedingCodec ==
Takes an input u32, returns an output [[#AudioCodec]].


== GetAudioOutFeedingParameter ==
== GetAudioOutFeedingParameter ==
Takes an input u32, returns an output [[#PcmParameter]].


== AcquireAudioOutBufferAvailableEvent ==
== AcquireAudioOutBufferAvailableEvent ==
Takes an input u32, returns an output Event handle.
sdknso uses an user-specified EventClearMode.


== SendAudioData ==
== SendAudioData ==
Takes an input u32, a type-0x9 input buffer, returns an output u64.


== AcquireAudioControlInputStateChangedEvent ==
== AcquireAudioControlInputStateChangedEvent ==
No input, returns an output Event handle.
sdknso uses an user-specified EventClearMode.


== GetAudioControlInputState ==
== GetAudioControlInputState ==
Takes a type-0xA output buffer containing an array of [[#AudioControlButtonState]], returns an output s32.


== AcquireAudioConnectionStateChangedEvent ==
== AcquireAudioConnectionStateChangedEvent ==
No input, returns an output Event handle.
sdknso uses an user-specified EventClearMode.


== GetConnectedAudioDevice ==
== GetConnectedAudioDevice ==
Takes a type-0xA output buffer containing an array of [[#Address]], returns an output s32.


== IsManufacturingMode ==
== IsManufacturingMode ==
Line 1,619: Line 1,634:
| 0x50 || {above size} || Same as [[#LeEventInfo]]+0x4A.
| 0x50 || {above size} || Same as [[#LeEventInfo]]+0x4A.
|}
|}
= AudioEventType =
This is "nn::bluetooth::hal::AudioEventType". This is an u32 enum.
= PcmParameter =
This is "nn::bluetooth::system::PcmParameter". This is a 0xC-byte struct with 4-byte alignment.
= AudioOutState =
This is "nn::bluetooth::system::AudioOutState". This is an u32 enum.
= AudioCodec =
This is "nn::bluetooth::system::AudioCodec". This is an u32 enum.
= AudioControlButtonState =
This is "nn::bluetooth::system::AudioControlButtonState". This is a 0x10-byte struct.


= Notes =
= Notes =