Line 98: |
Line 98: |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x00 || 8 || Pointer to next buffer | + | | 0x00 || 8 || Pointer to next buffer (unused) |
| |- | | |- |
| | 0x08 || 8 || Pointer to sample buffer | | | 0x08 || 8 || Pointer to sample buffer |
Line 288: |
Line 288: |
| Returns the upper limit of the rendering time in percent. (u32) | | Returns the upper limit of the rendering time in percent. (u32) |
| | | |
− | = audout:a, audin:a, audrec:a, audren:a = | + | = audout:a = |
− | This is "nn::audio::detail::IAudioOutManagerForApplet", "nn::audio::detail::IAudioInManagerForApplet", "nn::audio::detail::IFinalOutputRecorderManagerForApplet", "nn::audio::detail::IAudioRendererManagerForApplet". | + | This is "nn::audio::detail::IAudioOutManagerForApplet". |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 295: |
Line 295: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || RequestSuspend | + | | 0 || RequestSuspendAudioOuts |
| |- | | |- |
− | | 1 || RequestResume | + | | 1 || RequestResumeAudioOuts |
| + | |- |
| + | | 2 || GetAudioOutsProcessMasterVolume |
| + | |- |
| + | | 3 || SetAudioOutsProcessMasterVolume |
| + | |} |
| + | |
| + | = audin:a = |
| + | This is "nn::audio::detail::IAudioInManagerForApplet". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || RequestSuspendAudioIns |
| + | |- |
| + | | 1 || RequestResumeAudioIns |
| + | |- |
| + | | 2 || GetAudioInsProcessMasterVolume |
| + | |- |
| + | | 3 || SetAudioInsProcessMasterVolume |
| + | |} |
| + | |
| + | = audrec:a = |
| + | This is "nn::audio::detail::IFinalOutputRecorderManagerForApplet". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || RequestSuspendFinalOutputRecorders |
| + | |- |
| + | | 1 || RequestResumeFinalOutputRecorders |
| + | |} |
| + | |
| + | = audren:a = |
| + | This is "nn::audio::detail::IAudioRendererManagerForApplet". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || RequestSuspendAudioRenderers |
| + | |- |
| + | | 1 || RequestResumeAudioRenderers |
| + | |- |
| + | | 2 || GetAudioRenderersProcessMasterVolume |
| + | |- |
| + | | 3 || SetAudioRenderersProcessMasterVolume |
| + | |- |
| + | | 4 || RegisterAppletResourceUserId |
| + | |- |
| + | | 5 || UnregisterAppletResourceUserId |
| |} | | |} |
| | | |
Line 462: |
Line 514: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || [[#OpenHardwareOpusDecoder]] | + | | 0 || [[#Initialize]] |
| |- | | |- |
− | | 1 || [[#GetHardwareOpusDecoderWorkBufferSize]] | + | | 1 || [[#GetWorkBufferSize]] |
| |- | | |- |
− | | 2 || [3.0.0+] OpenHardwareOpusDecoderEx | + | | 2 || [3.0.0+] InitializeEx |
| |- | | |- |
− | | 3 || [3.0.0+] GetHardwareOpusDecoderWorkBufferSizeEx | + | | 3 || [3.0.0+] GetWorkBufferSizeEx |
| |} | | |} |
| | | |
− | == OpenHardwareOpusDecoder == | + | == Initialize == |
− | Takes two u32s '''SampleRate''' and '''ChannelCount''' packed as an u64, an u32 '''WorkBufferSize''' and a TransferMemory handle. Returns an [[#IHardwareOpusDecoder]] object. The TransferMemory is created by the user-process with permissions=0. | + | Takes two u32s '''SampleRate''' and '''ChannelCount''' packed as an u64, an u32 '''WorkBufferSize''' and a TransferMemory handle for '''WorkBuffer'''. Returns an [[#IHardwareOpusDecoder]] object. The TransferMemory is created by the user-process with permissions=0. |
| | | |
− | == GetHardwareOpusDecoderWorkBufferSize == | + | == GetWorkBufferSize== |
| Takes two u32s '''SampleRate''' and '''ChannelCount''' packed as an u64. Returns the required size for the decoder's work buffer. | | Takes two u32s '''SampleRate''' and '''ChannelCount''' packed as an u64. Returns the required size for the decoder's work buffer. |
| | | |
Line 484: |
Line 536: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || [[#Decode]] | + | | 0 || [[#DecodeInterleaved]] |
| |- | | |- |
− | | 1 || [[#SendDecoderContext]] | + | | 1 || [[#SetContext]] |
| |- | | |- |
− | | 2 || [3.0.0+] DecodeEx | + | | 2 || [3.0.0+] DecodeInterleavedEx |
| |- | | |- |
− | | 3 || [3.0.0+] SendDecoderContextEx | + | | 3 || [3.0.0+] SetContextEx |
| |- | | |- |
| | 4 || [4.0.0+] | | | 4 || [4.0.0+] |
Line 497: |
Line 549: |
| |} | | |} |
| | | |
− | === Decode === | + | === DecodeInterleaved === |
| 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'''. | | 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 === | + | === SetContext === |
| Takes a type-5 input buffer ('''DecoderContextIn'''). Sends the unknown context data to the hardware decoder. | | Takes a type-5 input buffer ('''DecoderContextIn'''). Sends the unknown context data to the hardware decoder. |
| | | |
| = auddebug = | | = auddebug = |
| + | This is "nn::audio::detail::IAudioDebugManager". |
| + | |
| This service doesn't exist in retail units. | | This service doesn't exist in retail units. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || |
| + | |- |
| + | | 1 || |
| + | |- |
| + | | 2 || |
| + | |- |
| + | | 3 || |
| + | |} |
| | | |
| [[Category:Services]] | | [[Category:Services]] |