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''' (high u16 can't be 0, official apps pass 0xCAFE0000), one u64 '''ClientPID''', a PID and a copy-handle. | + | 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, 0x00=Started 0x01=Stopped (u32) | |
| | | |
| = 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]]. (u64) | |
| | | |
| == RequestResumeForDebug == | | == RequestResumeForDebug == |
| + | Takes an u64 [[AM_services#AppletResourceUserId|AppletResourceUserId]]. |
| | | |
− | Takes an [[AM_services#AppletResourceUserId|AppletResourceUserId]]. (u64)
| + | = 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]] |