Audio services: Difference between revisions
No edit summary |
|||
Line 20: | Line 20: | ||
== OpenAudioOut == | == OpenAudioOut == | ||
Takes a type-5 input buffer ('''DeviceNameIn'''), a type-6 output buffer ('''DeviceNameOut'''), two u32s '''SampleRate''' (must be 48000) and '''ChannelCount''' ( | Takes a type-5 input buffer ('''DeviceNameIn'''), a type-6 output buffer ('''DeviceNameOut'''), two u32s '''SampleRate''' (must be 48000) and '''ChannelCount''' (only the higher u16 is used), one u64 '''ClientPID''', a PID and a copy-handle. | ||
Returns an [[#IAudioOut]] object and four u32s: the sample rate, channel count, [[#PCM_format|PCM format]], and the initial AudioOutState. | Returns an [[#IAudioOut]] object and four u32s: the sample rate, channel count, [[#PCM_format|PCM format]], and the initial AudioOutState. | ||
Line 180: | Line 180: | ||
=== GetAudioInState === | === GetAudioInState === | ||
Returns an u32 '''AudioInState''' (0x00=Started, 0x01=Stopped). | |||
Returns an AudioInState | |||
= audrec:u = | = audrec:u = | ||
Line 234: | Line 233: | ||
| 2 || GetAudioRenderersProcessMasterVolume | | 2 || GetAudioRenderersProcessMasterVolume | ||
|- | |- | ||
| 3 || SetAudioRenderersProcessMasterVolume | | 3 || [3.0.0+] SetAudioRenderersProcessMasterVolume | ||
|- | |||
| 4 || [4.0.0+] | |||
|} | |} | ||
Line 263: | Line 264: | ||
|- | |- | ||
| 9 || [[#GetAudioRendererRenderingTimeLimit]] | | 9 || [[#GetAudioRendererRenderingTimeLimit]] | ||
|- | |||
| 10 || [3.0.0+] RequestUpdateAudioRendererEx | |||
|- | |||
| 11 || [3.0.0+] | |||
|} | |} | ||
Line 308: | Line 313: | ||
== RequestSuspendForDebug == | == RequestSuspendForDebug == | ||
Takes an u64 [[AM_services#AppletResourceUserId|AppletResourceUserId]]. | |||
Takes an [[AM_services#AppletResourceUserId|AppletResourceUserId]]. | |||
== RequestResumeForDebug == | == RequestResumeForDebug == | ||
Takes an u64 [[AM_services#AppletResourceUserId|AppletResourceUserId]]. | |||
= audctl = | |||
This is "nn::audioctrl::detail::IAudioController". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || | |||
|- | |||
| 1 || | |||
|- | |||
| 2 || | |||
|- | |||
| 3 || | |||
|- | |||
| 4 || | |||
|- | |||
| 5 || | |||
|- | |||
| 6 || | |||
|- | |||
| 7 || | |||
|- | |||
| 8 || | |||
|- | |||
| 9 || | |||
|- | |||
| 10 || | |||
|- | |||
| 11 || | |||
|- | |||
| 12 || | |||
|- | |||
| 13 || | |||
|- | |||
| 14 || | |||
|- | |||
| 15 || | |||
|- | |||
| 16 || | |||
|- | |||
| 17 || [3.0.0+] | |||
|- | |||
| 18 || [3.0.0+] | |||
|- | |||
| 19 || [3.0.0+] | |||
|- | |||
| 20 || [3.0.0+] | |||
|- | |||
| 21 || [3.0.0+] | |||
|- | |||
| 22 || [3.0.0+] | |||
|- | |||
| 23 || [4.0.0+] | |||
|- | |||
| 24 || [4.0.0+] | |||
|- | |||
| 25 || [4.0.0+] | |||
|- | |||
| 26 || [4.0.0+] | |||
|} | |||
= codecctl = | = codecctl = | ||
Line 389: | Line 454: | ||
== IsCodecDeviceRequested == | == IsCodecDeviceRequested == | ||
Returns a bool. | Returns a bool. | ||
= hwopus = | |||
This is "nn::codec::detail::IHardwareOpusDecoderManager". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || [[#OpenHardwareOpusDecoder]] | |||
|- | |||
| 1 || [[#GetHardwareOpusDecoderWorkBufferSize]] | |||
|- | |||
| 2 || [3.0.0+] OpenHardwareOpusDecoderEx | |||
|- | |||
| 3 || [3.0.0+] GetHardwareOpusDecoderWorkBufferSizeEx | |||
|} | |||
== OpenHardwareOpusDecoder == | |||
Takes two u32s '''SampleRate''' and '''ChannelCount''' packed as an u64, an u32 '''WorkBufferSize''' and an unknown handle. Returns an [[#IHardwareOpusDecoder]] object. | |||
== GetHardwareOpusDecoderWorkBufferSize == | |||
Takes two u32s '''SampleRate''' and '''ChannelCount''' packed as an u64. Returns the required size for the decoder's work buffer. | |||
== IHardwareOpusDecoder == | |||
This is "nn::codec::detail::IHardwareOpusDecoder". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || [[#Decode]] | |||
|- | |||
| 1 || [[#SendDecoderContext]] | |||
|- | |||
| 2 || [3.0.0+] DecodeEx | |||
|- | |||
| 3 || [3.0.0+] SendDecoderContextEx | |||
|- | |||
| 4 || [4.0.0+] | |||
|- | |||
| 5 || [4.0.0+] | |||
|} | |||
=== Decode === | |||
Takes a type-5 input buffer ('''OpusDataIn''') and a type-6 output buffer ('''PcmDataOut'''). Decodes the Opus source data to PCM and returns two u32s '''DecodedSampleCount''' and '''DecodedDataSize'''. | |||
=== SendDecoderContext === | |||
Takes a type-5 input buffer ('''DecoderContextIn'''). Sends the unknown context data to the hardware decoder. | |||
= auddebug = | |||
This service doesn't exist in retail units. | |||
[[Category:Services]] | [[Category:Services]] |