Changes

Jump to navigation Jump to search
no edit summary
Line 1: Line 1:  
= audout:u =
 
= audout:u =
 +
This is "nn::audio::detail::IAudioOutManager".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
 
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || ListAudioOuts
+
| 0 || [[#ListAudioOuts|ListAudioOuts]]
 
|-
 
|-
| 1 || [[#OpenAudioOut]]
+
| 1 || [[#OpenAudioOut|OpenAudioOut]]
 +
|-
 +
| 2 || [3.0.0+] [[#ListAudioOutsAuto|ListAudioOutsAuto]]
 +
|-
 +
| 3 || [3.0.0+] [[#OpenAudioOutAuto|OpenAudioOutAuto]]
 
|}
 
|}
 +
 +
== ListAudioOuts ==
 +
Takes a type-0x6 output buffer containing an array of [[#AudioOutInfo]]. Returns an u32 '''Count'''.
    
== OpenAudioOut ==
 
== OpenAudioOut ==
Takes two u64s (an interface ID and a PID placeholder?), a PID, a process handle, and the name of the interface you want to connect to. Returns an [[#IAudioOut]] object.
+
Takes a PID-descriptor, a type-0x5 input buffer '''NameIn''', a type-0x6 output buffer '''NameOut''', an input [[#AudioOutParameter]], an input Process handle and an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an [[#IAudioOut]] and an output [[#AudioOutParameterInternal]].
 +
 
 +
== ListAudioOutsAuto ==
 +
Same as [[#ListAudioOuts]], but takes a type-0x22 output buffer instead.
 +
 
 +
== OpenAudioOutAuto ==
 +
Same as [[#OpenAudioOut]], but takes a type-0x21 input buffer and a type-0x22 output buffer instead.
    
== IAudioOut ==
 
== IAudioOut ==
 +
This is "nn::audio::detail::IAudioOut".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
 
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || [[#GetAudioOutState]]
+
| 0 || [[#GetAudioOutState|GetAudioOutState]]
 
|-
 
|-
| 1 || StartAudioOut
+
| 1 || [[#Start|Start]]
 
|-
 
|-
| 2 || StopAudioOut
+
| 2 || [[#Stop|Stop]]
 
|-
 
|-
| 3 || AppendAudioOutBuffer
+
| 3 || [[#AppendAudioOutBuffer|AppendAudioOutBuffer]]
 
|-
 
|-
| 4 || RegisterBufferEvent
+
| 4 || [[#RegisterBufferEvent|RegisterBufferEvent]]
 
|-
 
|-
| 5 || GetReleasedAudioOutBuffer
+
| 5 || [[#GetReleasedAudioOutBuffers|GetReleasedAudioOutBuffers]]
 
|-
 
|-
| 6 || ContainsAudioOutBuffer
+
| 6 || [[#ContainsAudioOutBuffer|ContainsAudioOutBuffer]]
 +
|-
 +
| 7 || [3.0.0+] [[#AppendAudioOutBufferAuto|AppendAudioOutBufferAuto]]
 +
|-
 +
| 8 || [3.0.0+] [[#GetReleasedAudioOutBuffersAuto|GetReleasedAudioOutBuffersAuto]]
 +
|-
 +
| 9 || [4.0.0+] [[#GetAudioOutBufferCount|GetAudioOutBufferCount]]
 +
|-
 +
| 10 || [4.0.0+] [[#GetAudioOutPlayedSampleCount|GetAudioOutPlayedSampleCount]]
 +
|-
 +
| 11 || [4.0.0+] [[#FlushAudioOutBuffers|FlushAudioOutBuffers]]
 +
|-
 +
| 12 || [6.0.0+] [[#SetAudioOutVolume|SetAudioOutVolume]]
 +
|-
 +
| 13 || [6.0.0+] [[#GetAudioOutVolume|GetAudioOutVolume]]
 
|}
 
|}
    
=== GetAudioOutState ===
 
=== GetAudioOutState ===
 +
No input. Returns an output [[#AudioOutState]].
   −
Returns a AudioOutState, 0x00=Started 0x01=Stopped
+
=== Start ===
 +
No input/output.
 +
 
 +
Starts audio playback using data from appended buffers.
 +
 
 +
=== Stop ===
 +
No input/output.
 +
 
 +
Stops audio playback. This waits for audio playback to finish before returning.
 +
 
 +
=== AppendAudioOutBuffer ===
 +
Takes a type-0x5 input buffer containing an [[#AudioOutBuffer]] and an input u64 '''BufferClientPtr'''. No output.
 +
 
 +
=== RegisterBufferEvent ===
 +
No input. Returns an output Event handle.
 +
 
 +
The event is signalled when a buffer is released.
 +
 
 +
=== GetReleasedAudioOutBuffers ===
 +
Takes a type-0x6 output buffer '''AudioBuffer'''. Returns an output u32 '''Count'''.
 +
 
 +
'''AudioBuffer''' will be filled with the identifiers from [[#AppendAudioOutBuffer]] of audio buffers that have been released.
 +
 
 +
=== ContainsAudioOutBuffer ===
 +
Takes an input u64 '''AudioBufferPointer'''. Returns an output bool '''Contains'''.
 +
 
 +
=== AppendAudioOutBufferAuto ===
 +
Same as [[#AppendAudioOutBuffer]], but takes a type-0x21 buffer instead.
 +
 
 +
=== GetReleasedAudioOutBuffersAuto ===
 +
Same as [[#GetReleasedAudioOutBuffer]], but takes a type-0x22 buffer instead.
 +
 
 +
=== GetAudioOutBufferCount ===
 +
No input. Returns an output u32 '''AudioOutBufferCount'''.
 +
 
 +
=== GetAudioOutPlayedSampleCount ===
 +
No input. Returns an output u64 '''AudioOutPlayedSampleCount'''.
 +
 
 +
=== FlushAudioOutBuffers ===
 +
No input. Returns an output bool '''Pending'''.
 +
 
 +
=== SetAudioOutVolume ===
 +
Takes an input float '''AudioOutVolume'''. No output.
 +
 
 +
=== GetAudioOutVolume ===
 +
No input. Returns an output float '''AudioOutVolume'''.
    
= audin:u =
 
= audin:u =
 +
This is "nn::audio::detail::IAudioInManager".
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 42: Line 120:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || ListAudioIns
+
| 0 || [[#ListAudioIns|ListAudioIns]]
 
|-
 
|-
| 1 || OpenAudioIn
+
| 1 || [[#OpenAudioIn|OpenAudioIn]]
 +
|-
 +
| 2 || [3.0.0+] [[#ListAudioInsAuto|ListAudioInsAuto]]
 +
|-
 +
| 3 || [3.0.0+] [[#OpenAudioInAuto|OpenAudioInAuto]]
 +
|-
 +
| 4 || [3.0.0+] [[#ListAudioInsAutoFiltered|ListAudioInsAutoFiltered]]
 +
|-
 +
| 5 || [5.0.0+] [[#OpenAudioInProtocolSpecified|OpenAudioInProtocolSpecified]]
 
|}
 
|}
 +
 +
== ListAudioIns ==
 +
Takes a type-0x6 output buffer containing an array of [[#AudioInInfo]]. Returns an u32 '''Count'''.
 +
 +
== OpenAudioIn ==
 +
Takes a PID-descriptor, a type-0x5 input buffer '''NameIn''', a type-0x6 output buffer '''NameOut''', an input [[#AudioInParameter]], an input Process handle and an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an [[#IAudioIn]] and an an output [[#AudioInParameterInternal]].
 +
 +
== ListAudioInsAuto ==
 +
Same as [[#ListAudioIns]], but takes a type-0x22 output buffer instead.
 +
 +
== OpenAudioInAuto ==
 +
Same as [[#OpenAudioIn]], but takes a type-0x21 input buffer and a type-0x22 output buffer instead.
 +
 +
== ListAudioInsAutoFiltered ==
 +
Same as [[#ListAudioInsAuto]].
 +
 +
== OpenAudioInProtocolSpecified ==
 +
Same as [[#OpenAudioIn]], but takes an additional input u64 '''Protocol'''.
    
== IAudioIn ==
 
== IAudioIn ==
 +
This is "nn::audio::detail::IAudioIn".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
 
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || [[#GetAudioInState]]
+
| 0 || [[#GetAudioInState|GetAudioInState]]
 +
|-
 +
| 1 || [[#Start_2|Start]]
 +
|-
 +
| 2 || [[#Stop_2|Stop]]
 
|-
 
|-
| 1 || StartAudioIn
+
| 3 || [[#AppendAudioInBuffer|AppendAudioInBuffer]]
 
|-
 
|-
| 2 || StopAudioIn
+
| 4 || [[#RegisterBufferEvent_2|RegisterBufferEvent]]
 
|-
 
|-
| 3 || AppendAudioInBuffer
+
| 5 || [[#GetReleasedAudioInBuffers|GetReleasedAudioInBuffers]]
 
|-
 
|-
| 4 || RegisterBufferEvent
+
| 6 || [[#ContainsAudioInBuffer|ContainsAudioInBuffer]]
 
|-
 
|-
| 5 || GetReleasedAudioInBuffer
+
| 7 || [3.0.0+] [[#AppendUacInBuffer|AppendUacInBuffer]]
 
|-
 
|-
| 6 || ContainsAudioInBuffer
+
| 8 || [3.0.0+] [[#AppendAudioInBufferAuto|AppendAudioInBufferAuto]]
 +
|-
 +
| 9 || [3.0.0+] [[#GetReleasedAudioInBuffersAuto|GetReleasedAudioInBuffersAuto]]
 +
|-
 +
| 10 || [3.0.0+] [[#AppendUacInBufferAuto|AppendUacInBufferAuto]]
 +
|-
 +
| 11 || [4.0.0+] [[#GetAudioInBufferCount|GetAudioInBufferCount]]
 +
|-
 +
| 12 || [4.0.0+] [[#SetDeviceGain|SetDeviceGain]]
 +
|-
 +
| 13 || [4.0.0+] [[#GetDeviceGain|GetDeviceGain]]
 +
|-
 +
| 14 || [6.0.0+] [[#FlushAudioInBuffers|FlushAudioInBuffers]]
 
|}
 
|}
    
=== GetAudioInState ===
 
=== GetAudioInState ===
 +
No input. Returns an output [[#AudioInState]].
 +
 +
=== Start ===
 +
No input/output.
 +
 +
=== Stop ===
 +
No input/output.
 +
 +
=== AppendAudioInBuffer ===
 +
Takes a type-0x5 input buffer containing an [[#AudioInBuffer]] and an input u64 '''BufferClientPtr'''. No output.
 +
 +
=== RegisterBufferEvent ===
 +
No input. Returns an output Event handle.
 +
 +
The event is signalled when a buffer is released.
 +
 +
=== GetReleasedAudioInBuffers ===
 +
Takes a type-0x6 output buffer '''AudioBuffer'''. Returns an output u32 '''Count'''.
 +
 +
'''AudioBuffer''' will be filled with the identifiers from [[#AppendAudioInBuffer]] of audio buffers that have been released.
 +
 +
=== ContainsAudioInBuffer ===
 +
Takes an input u64 '''AudioBufferPointer'''. Returns an output bool '''Contains'''.
 +
 +
=== AppendUacInBuffer ===
 +
Takes a type-0x5 input buffer containing an '''UacInBuffer''', an input u64 '''BufferClientPtr''' and an input Event handle. No output.
 +
 +
=== AppendAudioInBufferAuto ===
 +
Same as [[#AppendAudioInBuffer]], but takes a type-0x21 buffer instead.
 +
 +
=== GetReleasedAudioInBuffersAuto ===
 +
Same as [[#GetReleasedAudioInBuffer]], but takes a type-0x22 buffer instead.
 +
 +
=== AppendUacInBufferAuto ===
 +
Same as [[#AppendUacInBuffer]], but takes a type-0x21 buffer instead.
 +
 +
=== GetAudioInBufferCount ===
 +
No input. Returns an output u32 '''AudioInBufferCount'''.
 +
 +
=== SetDeviceGain ===
 +
Takes an input float '''DeviceGain'''. No output.
 +
 +
=== GetDeviceGain ===
 +
No input. Returns an output float '''DeviceGain'''.
 +
 +
=== FlushAudioInBuffers ===
 +
No input. Returns an output bool '''Pending'''.
 +
 +
= audrec:u =
 +
This is "nn::audio::detail::IFinalOutputRecorderManager".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || [[#OpenFinalOutputRecorder]]
 +
|}
 +
 +
== OpenFinalOutputRecorder ==
 +
Takes an input [[#FinalOutputRecorderParameter]], an input Process handle and an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an [[#IFinalOutputRecorder]] and an output [[#FinalOutputRecorderParameterInternal]].
 +
 +
== IFinalOutputRecorder ==
 +
This is "nn::audio::detail::IFinalOutputRecorder".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || [[#GetFinalOutputRecorderState|GetFinalOutputRecorderState]]
 +
|-
 +
| 1 || [[#Start_3|Start]]
 +
|-
 +
| 2 || [[#Stop_3|Stop]]
 +
|-
 +
| 3 || [[#AppendFinalOutputRecorderBuffer|AppendFinalOutputRecorderBuffer]]
 +
|-
 +
| 4 || [[#RegisterBufferEvent_3|RegisterBufferEvent]]
 +
|-
 +
| 5 || [[#GetReleasedFinalOutputRecorderBuffers|GetReleasedFinalOutputRecorderBuffers]]
 +
|-
 +
| 6 || [[#ContainsFinalOutputRecorderBuffer|ContainsFinalOutputRecorderBuffer]]
 +
|-
 +
| 7 || [[#GetFinalOutputRecorderBufferEndTime|GetFinalOutputRecorderBufferEndTime]]
 +
|-
 +
| 8 || [3.0.0+] [[#AppendFinalOutputRecorderBufferAuto|AppendFinalOutputRecorderBufferAuto]]
 +
|-
 +
| 9 || [3.0.0+] [[#GetReleasedFinalOutputRecorderBuffersAuto|GetReleasedFinalOutputRecorderBuffersAuto]]
 +
|-
 +
| 10 || [6.0.0+] [[#FlushFinalOutputRecorderBuffers|FlushFinalOutputRecorderBuffers]]
 +
|-
 +
| 11 || [9.0.0+] [[#AttachWorkBuffer|AttachWorkBuffer]]
 +
|}
 +
 +
=== GetFinalOutputRecorderState ===
 +
No input. Returns an output [[#FinalOutputRecorderState]].
 +
 +
=== Start ===
 +
No input/output.
 +
 +
=== Stop ===
 +
No input/output.
 +
 +
=== AppendFinalOutputRecorderBuffer ===
 +
Takes a type-0x5 input buffer containing an [[#FinalOutputRecorderBuffer]] and an input u64 '''BufferClientPtr'''. No output.
 +
 +
=== RegisterBufferEvent ===
 +
No input. Returns an output Event handle.
 +
 +
The event is signalled when a buffer is released.
 +
 +
=== GetReleasedFinalOutputRecorderBuffers ===
 +
Takes a type-0x6 output buffer '''FinalOutputRecorderBuffer'''. Returns two output u64s '''Count''' and '''Released'''.
 +
 +
'''FinalOutputRecorderBuffer''' will be filled with the identifiers from [[#AppendFinalOutputRecorderBuffer]] of recorder buffers that have been released.
 +
 +
=== ContainsFinalOutputRecorderBuffer ===
 +
Takes an input u64 '''FinalOutputRecorderBufferPointer'''. Returns an output bool '''Contains'''.
 +
 +
=== GetFinalOutputRecorderBufferEndTime ===
 +
Takes an input u64 '''FinalOutputRecorderBufferPointer'''. Returns an output u64 '''Released'''.
 +
 +
=== AppendFinalOutputRecorderBufferAuto ===
 +
Same as [[#AppendFinalOutputRecorderBuffer]], but takes a type-0x21 buffer instead.
 +
 +
=== GetReleasedFinalOutputRecorderBuffersAuto ===
 +
Same as [[#GetReleasedFinalOutputRecorderBuffers]], but takes a type-0x22 buffer instead.
 +
 +
=== FlushFinalOutputRecorderBuffers ===
 +
No input. Returns an output bool '''Pending'''.
 +
 +
=== AttachWorkBuffer ===
 +
Takes an input [[#FinalOutputRecorderWorkBufferParameterInternal]]. No output.
 +
 +
= auddev =
 +
This is "nn::audio::detail::IAudioSnoopManager".
 +
 +
This was added with [6.0.0+].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || [17.0.0+] GetDspStatistics ([6.0.0-16.1.0] EnableDspUsageMeasurement)
 +
|-
 +
| 1 || [6.0.0-16.1.0] DisableDspUsageMeasurement
 +
|-
 +
| 6 || [6.0.0-16.1.0] GetDspUsage
 +
|}
 +
 +
= audren:u =
 +
This is "nn::audio::detail::IAudioRendererManager".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || OpenAudioRenderer
 +
|-
 +
| 1 || GetWorkBufferSize
 +
|-
 +
| 2 || [[#GetAudioDeviceService]]
 +
|-
 +
| 3 || [3.0.0+] OpenAudioRendererForManualExecution
 +
|-
 +
| 4 || [4.0.0+] GetAudioDeviceServiceWithRevisionInfo
 +
|}
 +
 +
=== GetAudioDeviceService ===
 +
Takes an input u64 [[AM_services#AppletResourceUserId|AppletResourceUserId]], returns an output [[#IAudioDevice]].
 +
 +
== IAudioRenderer ==
 +
This is "nn::audio::detail::IAudioRenderer".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || [[#GetSampleRate]]
 +
|-
 +
| 1 || [[#GetSampleCount]]
 +
|-
 +
| 2 || [[#GetMixBufferCount]]
 +
|-
 +
| 3 || [[#GetState]]
 +
|-
 +
| 4 || RequestUpdate
 +
|-
 +
| 5 || Start
 +
|-
 +
| 6 || Stop
 +
|-
 +
| 7 || QuerySystemEvent
 +
|-
 +
| 8 || [[#SetRenderingTimeLimit]]
 +
|-
 +
| 9 || [[#GetRenderingTimeLimit]]
 +
|-
 +
| 10 || [3.0.0+] RequestUpdateAuto
 +
|-
 +
| 11 || [3.0.0+] ExecuteAudioRendererRendering
 +
|-
 +
| 12 || [15.0.0+] SetVoiceDropParameter
 +
|-
 +
| 13 || [15.0.0+] GetVoiceDropParameter
 +
|}
 +
 +
=== GetSampleRate ===
 +
No input. Returns an u32 '''SampleRate'''.
 +
 +
=== GetSampleCount ===
 +
No input. Returns an u32 '''SampleCount'''.
 +
 +
=== GetMixBufferCount ===
 +
No input. Returns an u32 '''MixBufferCount'''.
 +
 +
=== GetState ===
 +
No input. Returns an u32 '''State''' (0=Started, 1=Stopped).
 +
 +
=== SetRenderingTimeLimit ===
 +
Takes an u32 '''RenderingTimeLimit'''. No output.
 +
 +
=== GetRenderingTimeLimit ===
 +
No input. Returns an u32 '''RenderingTimeLimit'''.
 +
 +
== IAudioDevice ==
 +
This is "nn::audio::detail::IAudioDevice".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || [[#ListAudioDeviceName]]
 +
|-
 +
| 1 || [[#SetAudioDeviceOutputVolume]]
 +
|-
 +
| 2 || [[#GetAudioDeviceOutputVolume]]
 +
|-
 +
| 3 || GetActiveAudioDeviceName
 +
|-
 +
| 4 || QueryAudioDeviceSystemEvent
 +
|-
 +
| 5 || GetActiveChannelCount
 +
|-
 +
| 6 || [3.0.0+] [[#ListAudioDeviceNameAuto]]
 +
|-
 +
| 7 || [3.0.0+] [[#SetAudioDeviceOutputVolumeAuto]]
 +
|-
 +
| 8 || [3.0.0+] [[#GetAudioDeviceOutputVolumeAuto]]
 +
|-
 +
| 10 || [3.0.0+] GetActiveAudioDeviceNameAuto
 +
|-
 +
| 11 || [3.0.0+] QueryAudioDeviceInputEvent
 +
|-
 +
| 12 || [3.0.0+] QueryAudioDeviceOutputEvent
 +
|-
 +
| 13 || [13.0.0+] [[#GetActiveAudioOutputDeviceName]] ([5.0.0-12.1.0] [[#GetAudioSystemMasterVolumeSetting]])
 +
|-
 +
| 14 || [13.0.0+] ListAudioOutputDeviceName
 +
|-
 +
| 15 || [17.0.0+] AcquireAudioInputDeviceNotification
 +
|-
 +
| 16 || [17.0.0+] ReleaseAudioInputDeviceNotification
 +
|-
 +
| 17 || [17.0.0+] AcquireAudioOutputDeviceNotification
 +
|-
 +
| 18 || [17.0.0+] ReleaseAudioOutputDeviceNotification
 +
|-
 +
| 19 || [18.0.0+] SetAudioDeviceOutputVolumeAutoTuneEnabled
 +
|-
 +
| 20 || [18.0.0+] IsAudioDeviceOutputVolumeAutoTuneEnabled
 +
|}
 +
 +
=== ListAudioDeviceName ===
 +
Takes a type-0x6 output buffer containing an array of '''DeviceName'''. Returns an output s32 for total number of output entries.
 +
 +
=== SetAudioDeviceOutputVolume ===
 +
Takes a type-0x5 input buffer containing the '''DeviceName''' and a float. No output.
 +
 +
=== GetAudioDeviceOutputVolume ===
 +
Takes a type-0x5 input buffer containing the '''DeviceName'''. Returns an output float.
 +
 +
=== ListAudioDeviceNameAuto ===
 +
Takes a type-0x22 output buffer containing an array of '''DeviceName'''. Returns an output s32 for total number of output entries.
 +
 +
=== SetAudioDeviceOutputVolumeAuto ===
 +
Takes a type-0x21 input buffer containing the '''DeviceName''' and a float. No output.
 +
 +
=== GetAudioDeviceOutputVolumeAuto ===
 +
Takes a type-0x21 input buffer containing the '''DeviceName'''. Returns an output float.
   −
Returns a AudioInState, 0x00=Started 0x01=Stopped
+
=== GetAudioSystemMasterVolumeSetting ===
 +
Takes a type-0x5 input buffer, returns 4-bytes of output.
 +
 
 +
=== GetActiveAudioOutputDeviceName ===
 +
Takes a type-0x6 output buffer, returns no output.
 +
 
 +
= audout:a =
 +
This is "nn::audio::detail::IAudioOutManagerForApplet".
 +
 
 +
This was removed with [11.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || RequestSuspend
 +
|-
 +
| 1 || RequestResume
 +
|-
 +
| 2 || GetProcessMasterVolume
 +
|-
 +
| 3 || SetProcessMasterVolume
 +
|-
 +
| 4 || [4.0.0+] GetProcessRecordVolume
 +
|-
 +
| 5 || [4.0.0+] SetProcessRecordVolume
 +
|}
 +
 
 +
[4.0.0+] RequestSuspend/RequestResume no longer returns an output handle.
 +
 
 +
= audin:a =
 +
This is "nn::audio::detail::IAudioInManagerForApplet".
 +
 
 +
This was removed with [11.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || RequestSuspend
 +
|-
 +
| 1 || RequestResume
 +
|-
 +
| 2 || GetProcessMasterVolume
 +
|-
 +
| 3 || SetProcessMasterVolume
 +
|}
 +
 
 +
[4.0.0+] RequestSuspend/RequestResume no longer returns an output handle.
 +
 
 +
= audrec:a =
 +
This is "nn::audio::detail::IFinalOutputRecorderManagerForApplet".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || RequestSuspend
 +
|-
 +
| 1 || RequestResume
 +
|}
 +
 
 +
[4.0.0+] RequestSuspend/RequestResume no longer returns an output handle.
 +
 
 +
= audren:a =
 +
This is "nn::audio::detail::IAudioRendererManagerForApplet".
 +
 
 +
This was removed with [11.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || RequestSuspend
 +
|-
 +
| 1 || RequestResume
 +
|-
 +
| 2 || GetProcessMasterVolume
 +
|-
 +
| 3 || SetProcessMasterVolume
 +
|-
 +
| 4 || RegisterAppletResourceUserId
 +
|-
 +
| 5 || UnregisterAppletResourceUserId
 +
|-
 +
| 6 || [4.0.0+] GetProcessRecordVolume
 +
|-
 +
| 7 || [4.0.0+] SetProcessRecordVolume
 +
|}
 +
 
 +
[4.0.0+] RequestSuspend/RequestResume no longer returns an output handle.
 +
 
 +
= audout:d, audin:d, audrec:d, audren:d =
 +
This is "nn::audio::detail::IAudioOutManagerForDebugger", "nn::audio::detail::IAudioInManagerForDebugger", "nn::audio::detail::IFinalOutputRecorderManagerForDebugger", "nn::audio::detail::IAudioRendererManagerForDebugger".
 +
 
 +
These were removed with [11.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || [[#RequestSuspend]]
 +
|-
 +
| 1 || [[#RequestResume]]
 +
|}
 +
 
 +
== RequestSuspend ==
 +
Takes an u64 [[AM_services#AppletResourceUserId|AppletResourceUserId]].
 +
 
 +
== RequestResume ==
 +
Takes an u64 [[AM_services#AppletResourceUserId|AppletResourceUserId]].
 +
 
 +
= audctl =
 +
This is "nn::audioctrl::detail::IAudioController".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetTargetVolume
 +
|-
 +
| 1 || SetTargetVolume
 +
|-
 +
| 2 || GetTargetVolumeMin
 +
|-
 +
| 3 || GetTargetVolumeMax
 +
|-
 +
| 4 || IsTargetMute
 +
|-
 +
| 5 || SetTargetMute
 +
|-
 +
| 6 || [1.0.0-17.0.1] IsTargetConnected
 +
|-
 +
| 7 || SetDefaultTarget
 +
|-
 +
| 8 || GetDefaultTarget
 +
|-
 +
| 9 || GetAudioOutputMode
 +
|-
 +
| 10 || SetAudioOutputMode
 +
|-
 +
| 11 || [1.0.0-13.2.1] SetForceMutePolicy
 +
|-
 +
| 12 || [1.0.0-13.2.1] GetForceMutePolicy
 +
|-
 +
| 13 || GetOutputModeSetting
 +
|-
 +
| 14 || SetOutputModeSetting
 +
|-
 +
| 15 || SetOutputTarget
 +
|-
 +
| 16 || SetInputTargetForceEnabled
 +
|-
 +
| 17 || [3.0.0+] SetHeadphoneOutputLevelMode
 +
|-
 +
| 18 || [3.0.0+] GetHeadphoneOutputLevelMode
 +
|-
 +
| 19 || [17.0.0+] SetForceMonauralOutputModeEnabled ([3.0.0-13.2.1] AcquireAudioVolumeUpdateEventForPlayReport)
 +
|-
 +
| 20 || [17.0.0+] IsForceMonauralOutputModeEnabled ([3.0.0-13.2.1] AcquireAudioOutputDeviceUpdateEventForPlayReport)
 +
|-
 +
| 21 || [3.0.0-13.2.1] GetAudioOutputTargetForPlayReport
 +
|-
 +
| 22 || [3.0.0+] NotifyHeadphoneVolumeWarningDisplayedEvent
 +
|-
 +
| 23 || [4.0.0+] SetSystemOutputMasterVolume
 +
|-
 +
| 24 || [4.0.0+] GetSystemOutputMasterVolume
 +
|-
 +
| 25 || [4.0.0-13.2.1] [[#GetAudioVolumeDataForPlayReport]]
 +
|-
 +
| 26 || [4.0.0-14.1.2] [[#UpdateHeadphoneSettings]]
 +
|-
 +
| 27 || [7.0.0-16.1.0] SetVolumeMappingTableForDev
 +
|-
 +
| 28 || [10.0.0-13.2.1] GetAudioOutputChannelCountForPlayReport
 +
|-
 +
| 29 || [10.0.0-13.2.1] BindAudioOutputChannelCountUpdateEventForPlayReport
 +
|-
 +
| 30 || [13.0.0+] SetSpeakerAutoMuteEnabled
 +
|-
 +
| 31 || [13.0.0+] IsSpeakerAutoMuteEnabled
 +
|-
 +
| 32 || [13.0.0+] GetActiveOutputTarget
 +
|-
 +
| 33 || [13.0.0+] GetTargetDeviceInfo
 +
|-
 +
| 34 || [13.0.0+] AcquireTargetNotification
 +
|-
 +
| 35 || [14.0.0-14.1.2] SetHearingProtectionSafeguardTimerRemainingTimeForDebug
 +
|-
 +
| 36 || [14.0.0-14.1.2] GetHearingProtectionSafeguardTimerRemainingTimeForDebug
 +
|-
 +
| 37 || [14.0.0-14.1.2] SetHearingProtectionSafeguardEnabled
 +
|-
 +
| 38 || [14.0.0-14.1.2] IsHearingProtectionSafeguardEnabled
 +
|-
 +
| 39 || [14.0.0-14.1.2] IsHearingProtectionSafeguardMonitoringOutputForDebug
 +
|-
 +
| 40 || [14.0.0+] [[#GetSystemInformationForDebug]]
 +
|-
 +
| 41 || [15.0.0+] SetVolumeButtonLongPressTime
 +
|-
 +
| 42 || [15.0.0+] SetNativeVolumeForDebug
 +
|-
 +
| 10000 || [13.0.0+] NotifyAudioOutputTargetForPlayReport
 +
|-
 +
| 10001 || [13.0.0+] NotifyAudioOutputChannelCountForPlayReport
 +
|-
 +
| 10002 || [13.0.0+] NotifyUnsupportedUsbOutputDeviceAttachedForPlayReport
 +
|-
 +
| 10100 || [14.0.0+] GetAudioVolumeDataForPlayReport
 +
|-
 +
| 10101 || [14.0.0+] BindAudioVolumeUpdateEventForPlayReport
 +
|-
 +
| 10102 || [14.0.0+] BindAudioOutputTargetUpdateEventForPlayReport
 +
|-
 +
| 10103 || [14.0.0+] GetAudioOutputTargetForPlayReport
 +
|-
 +
| 10104 || [14.0.0+] GetAudioOutputChannelCountForPlayReport
 +
|-
 +
| 10105 || [14.0.0+] BindAudioOutputChannelCountUpdateEventForPlayReport
 +
|-
 +
| 10106 || [14.0.0+] GetDefaultAudioOutputTargetForPlayReport
 +
|-
 +
| 50000 || [15.0.0+] SetAnalogInputBoostGainForPrototyping
 +
|}
 +
 
 +
== GetAudioVolumeDataForPlayReport ==
 +
No input, returns a total of 7-bytes of output.
 +
 
 +
[13.0.0+] No input, returns a total of 9-bytes of output.
 +
 
 +
== UpdateHeadphoneSettings ==
 +
Takes one input bool. No output.
 +
NS calls this with the result of [[Parental_Control_services#IParentalControlService|IParentalControlService::IsRestrictionEnabled]].
 +
 
 +
== GetSystemInformationForDebug ==
 +
Takes a type-0x1A output buffer.
 +
 
 +
[15.0.0+] Now takes a type-0x16 output buffer.
 +
 
 +
[18.0.0+] Originally the output buffer was a binary structure, now it's just a string.
    
= codecctl =
 
= codecctl =
 +
This is "nn::audio::detail::ICodecController".
 +
 +
This service no longer exists in [3.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 77: Line 733:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || InitializeCodecController
+
| 0 || [[#Initialize]]
 +
|-
 +
| 1 || [[#Finalize]]
 +
|-
 +
| 2 || [[#Sleep]]
 +
|-
 +
| 3 || [[#Wake]]
 +
|-
 +
| 4 || [[#SetVolume]]
 +
|-
 +
| 5 || [[#GetVolumeMax]]
 +
|-
 +
| 6 || [[#GetVolumeMin]]
 +
|-
 +
| 7 || [[#SetActiveTarget]]
 +
|-
 +
| 8 || [[#GetActiveTarget]]
 
|-
 
|-
| 1 || FinalizeCodecController
+
| 9 || [[#BindHeadphoneMicJackInterrupt]]
 +
|-
 +
| 10 || [[#IsHeadphoneMicJackInserted]]
 +
|-
 +
| 11 || [[#ClearHeadphoneMicJackInterrupt]]
 +
|-
 +
| 12 || [[#IsRequested]]
 +
|}
 +
 
 +
== Initialize ==
 +
No input/output.
 +
 
 +
== Finalize ==
 +
No input/output.
 +
 
 +
== Sleep ==
 +
No input/output.
 +
 
 +
== Wake ==
 +
No input/output.
 +
 
 +
== SetVolume ==
 +
Takes an u32 '''Volume'''. No output.
 +
 
 +
== GetVolumeMax ==
 +
No input. Returns an u32 '''VolumeMax'''.
 +
 
 +
== GetVolumeMin ==
 +
No input. Returns an u32 '''VolumeMin'''.
 +
 
 +
== SetActiveTarget ==
 +
Takes an u32 '''Target'''. No output.
 +
 
 +
== GetActiveTarget ==
 +
No input. Returns an u32 '''Target'''.
 +
 
 +
== BindHeadphoneMicJackInterrupt ==
 +
No input. Returns an event handle.
 +
 
 +
== IsHeadphoneMicJackInserted ==
 +
No input. Returns a bool.
 +
 
 +
== ClearHeadphoneMicJackInterrupt ==
 +
No input/output.
 +
 
 +
== IsRequested ==
 +
No input. Returns a bool.
 +
 
 +
= hwopus =
 +
This is "nn::codec::detail::IHardwareOpusDecoderManager".
 +
 
 +
{| class="wikitable" border="1"
 
|-
 
|-
| 2 || SleepCodecController
+
! Cmd || Name
 
|-
 
|-
| 3 || WakeCodecController
+
| 0 || [[#OpenHardwareOpusDecoder]]
 
|-
 
|-
| 4 || [[#SetCodecVolume]]
+
| 1 || [[#GetWorkBufferSize]]
 
|-
 
|-
| 5 || GetCodecVolumeMax
+
| 2 || [3.0.0+] [[#OpenHardwareOpusDecoderForMultiStream]]
 
|-
 
|-
| 6 || GetCodecVolumeMin
+
| 3 || [3.0.0+] [[#GetWorkBufferSizeForMultiStream]]
 
|-
 
|-
| 7 || SetCodecActiveTarget
+
| 4 || [12.0.0+] OpenHardwareOpusDecoderEx
 
|-
 
|-
| 8 || Unknown
+
| 5 || [12.0.0+] GetWorkBufferSizeEx
 
|-
 
|-
| 9 || BindCodecHeadphoneMicJackInterrupt
+
| 6 || [12.0.0+] OpenHardwareOpusDecoderForMultiStreamEx
 
|-
 
|-
| 10 || IsCodecHeadphoneMicJackInserted
+
| 7 || [12.0.0+] GetWorkBufferSizeForMultiStreamEx
 
|-
 
|-
| 11 || ClearCodecHeadphoneMicJackInterrupt
+
| 8 || [16.0.0+] GetWorkBufferSizeExEx
 
|-
 
|-
| 12 || IsCodecDeviceRequested
+
| 9 || [16.0.0+] GetWorkBufferSizeForMultiStreamExEx
 
|}
 
|}
   −
== SetCodecVolume ==
+
Official sw can use either software libopus, or hwopus (libopus running on the ADSP) via "nn::codec::HardwareOpus*" (separate from the former).
   −
Takes a Volume (uint32)
+
== OpenHardwareOpusDecoder ==
 +
Takes two s32s '''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.
 +
 
 +
== GetWorkBufferSize ==
 +
Takes two s32s '''SampleRate''' and '''ChannelCount''' packed as an u64. Returns the u32 required size for the decoder's work buffer. Official user-processes align the output size to page-alignment.
 +
 
 +
== OpenHardwareOpusDecoderForMultiStream ==
 +
Takes a type-0x19 input buffer, an u32 '''WorkBufferSize''' and a TransferMemory handle for '''WorkBuffer'''. Returns an [[#IHardwareOpusDecoder]] object. The TransferMemory is created by the user-process with permissions=0.
 +
 
 +
The input buffer is a [[#OpusMultiStreamParameters]] struct. The user-process initializes this struct the same way as [[#GetWorkBufferSizeForMultiStream]], except that an u8-array specified by the user is copied to +0x10 with size '''ChannelCount''', when '''ChannelCount''' above 0.
 +
 
 +
== GetWorkBufferSizeForMultiStream ==
 +
Takes a type-0x19 input buffer. Returns the u32 required size for the decoder's work buffer. Official user-processes align the output size to page-alignment.
 +
 
 +
The input buffer is a [[#OpusMultiStreamParameters]] struct.
 +
 
 +
== OpenHardwareOpusDecoderEx ==
 +
Takes a struct [[#OpusParametersEx]] and a u32 '''WorkBufferSize''' and a TransferMemory handle for '''WorkBuffer'''. Returns an [[#IHardwareOpusDecoder]] object. The TransferMemory is created by the user-process with permissions=0.
 +
 
 +
When ''UseLargeFrameSize'' in the parameter struct is 1 a larger output buffer that can store 120ms opus frames is used vs the default of 40ms.
 +
 
 +
== GetWorkBufferSizeEx ==
 +
Takes a struct [[#OpusParametersEx]]. Returns the u32 required size for the decoder's work buffer. Official user-processes align the output size to page-alignment.
 +
 
 +
== OpenHardwareOpusDecoderForMultiStreamEx ==
 +
Takes a type-0x19 input buffer, an u32 '''WorkBufferSize''' and a TransferMemory handle for '''WorkBuffer'''. Returns an [[#IHardwareOpusDecoder]] object. The TransferMemory is created by the user-process with permissions=0.
 +
 
 +
The input buffer is a [[#OpusMultiStreamParametersEx]] struct. When ''UseLargeFrameSize'' is 1 a larger output buffer that can store 120ms opus frames is used vs the default of 40ms.
 +
 
 +
== GetWorkBufferSizeForMultiStreamEx ==
 +
Takes a type-0x19 input buffer. Returns the u32 required size for the decoder's work buffer. Official user-processes align the output size to page-alignment.
 +
 
 +
The input buffer is a [[#OpusMultiStreamParametersEx]] struct.
 +
 
 +
== IHardwareOpusDecoder ==
 +
This is "nn::codec::detail::IHardwareOpusDecoder".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || [4.0.0+] [[#DecodeInterleavedOld]] ([1.0.0-3.0.2] DecodeInterleaved)
 +
|-
 +
| 1 || [[#SetContext]]
 +
|-
 +
| 2 || [4.0.0+] [[#DecodeInterleavedForMultiStreamOld]] ([3.0.0-3.0.2] DecodeInterleavedForMultiStream)
 +
|-
 +
| 3 || [3.0.0+] [[#SetContextForMultiStream]]
 +
|-
 +
| 4 || [6.0.0+] [[#DecodeInterleavedWithPerfOld]] ([4.0.0-5.1.0] DecodeInterleavedWithPerf)
 +
|-
 +
| 5 || [6.0.0+] [[#DecodeInterleavedForMultiStreamWithPerfOld]] ([4.0.0-5.1.0] DecodeInterleavedForMultiStreamWithPerf)
 +
|-
 +
| 6 || [6.0.0+] DecodeInterleavedWithPerfAndResetOld ([6.0.0-6.2.0] DecodeInterleaved)
 +
|-
 +
| 7 || [6.0.0+] DecodeInterleavedForMultiStreamWithPerfAndResetOld ([6.0.0-6.2.0] DecodeInterleavedForMultiStream)
 +
|-
 +
| 8 || [7.0.0+] [[#DecodeInterleaved]]
 +
|-
 +
| 9 || [7.0.0+] [[#DecodeInterleavedForMultiStream]]
 +
|}
 +
 
 +
=== DecodeInterleavedOld ===
 +
Takes a type-0x5 input buffer ('''OpusDataIn''') and a type-0x6 output buffer ('''PcmDataOut'''). Decodes the Opus source data to PCM and returns output s32 '''DecodedDataSize''' and s32 '''DecodedSampleCount'''.
 +
 
 +
Calls the same func as [[#DecodeInterleaved]] internally with flag=0 and out_u64_ptr=NULL.
 +
 
 +
=== SetContext ===
 +
Takes a type-0x5 input buffer ('''DecoderContextIn'''). Sends the unknown context data to the hardware decoder. The input buffer is unused.
 +
 
 +
=== DecodeInterleavedForMultiStreamOld ===
 +
Takes a type-0x5 input buffer ('''OpusDataIn''') and a type-0x6 output buffer ('''PcmDataOut'''). Decodes the Opus source data to PCM and returns output s32 '''DecodedDataSize''' and s32 '''DecodedSampleCount'''.
 +
 
 +
Calls the same func as [[#DecodeInterleavedForMultiStream]] internally with flag=0 and out_u64_ptr=NULL.
 +
 
 +
=== SetContextForMultiStream ===
 +
Takes a type-0x5 input buffer ('''DecoderContextIn'''). Sends the unknown context data to the hardware decoder.
 +
 
 +
=== DecodeInterleavedWithPerfOld ===
 +
Takes a type-0x5 input buffer ('''OpusDataIn''') and a type-0x46 output buffer ('''PcmDataOut'''). Decodes the Opus source data to PCM and returns output s32 '''DecodedDataSize''', s32 '''DecodedSampleCount''', and an u64.
 +
 
 +
The output u64 is ignored by official user-processes.
 +
 
 +
Calls the same func as [[#DecodeInterleaved]] internally with flag=0.
 +
 
 +
=== DecodeInterleavedForMultiStreamWithPerfOld ===
 +
Takes a type-0x5 input buffer ('''OpusDataIn''') and a type-0x46 output buffer ('''PcmDataOut'''). Decodes the Opus source data to PCM and returns output s32 '''DecodedDataSize''', s32 '''DecodedSampleCount''', and an u64.
 +
 
 +
The output u64 is ignored by official user-processes.
 +
 
 +
Calls the same func as [[#DecodeInterleavedForMultiStream]] internally with flag=0.
 +
 
 +
=== DecodeInterleaved ===
 +
Takes an input u8 bool flag, a type-0x5 input buffer ('''OpusDataIn''') and a type-0x46 output buffer ('''PcmDataOut'''). Decodes the Opus source data to PCM and returns output s32 '''DecodedDataSize''', s32 '''DecodedSampleCount''', and an u64.
 +
 
 +
The bool flag indicates whether or not a reset of the decoder context is being requested.
 +
 
 +
=== DecodeInterleavedForMultiStream ===
 +
Takes an input u8 bool flag, a type-0x5 input buffer ('''OpusDataIn''') and a type-0x46 output buffer ('''PcmDataOut'''). Decodes the Opus source data to PCM and returns output s32 '''DecodedDataSize''', s32 '''DecodedSampleCount''', and an u64.
 +
 
 +
The bool flag indicates whether or not a reset of the decoder context is being requested.
 +
 
 +
= auddebug =
 +
This is "nn::audio::detail::IAudioDebugManager".
 +
 
 +
This service doesn't exist in retail units.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || ProfilerStart
 +
|-
 +
| 1 || ProfilerStop
 +
|-
 +
| 2 || CpuProfilerStart
 +
|-
 +
| 3 || CpuProfilerStop
 +
|}
 +
 
 +
= aud:a =
 +
This is "nn::audio::detail::IAudioSystemManagerForApplet".
 +
 
 +
This was added with [11.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || RegisterAppletResourceUserId
 +
|-
 +
| 1 || UnregisterAppletResourceUserId
 +
|-
 +
| 2 || RequestSuspendAudio
 +
|-
 +
| 3 || RequestResumeAudio
 +
|-
 +
| 4 || GetAudioOutputProcessMasterVolume
 +
|-
 +
| 5 || SetAudioOutputProcessMasterVolume
 +
|-
 +
| 6 || GetAudioInputProcessMasterVolume
 +
|-
 +
| 7 || SetAudioInputProcessMasterVolume
 +
|-
 +
| 8 || GetAudioOutputProcessRecordVolume
 +
|-
 +
| 9 || SetAudioOutputProcessRecordVolume
 +
|-
 +
| 10 || [18.0.0+] GetAppletStateSummaries
 +
|}
 +
 
 +
= aud:d =
 +
This is "nn::audio::detail::IAudioSystemManagerForDebugger".
 +
 
 +
This was added with [11.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || RequestSuspendAudioForDebug
 +
|-
 +
| 1 || RequestResumeAudioForDebug
 +
|}
 +
 
 +
= SampleFormat =
 +
This is "nn::audio::SampleFormat".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value || Name
 +
|-
 +
| 0 || Invalid
 +
|-
 +
| 1 || PcmInt8
 +
|-
 +
| 2 || PcmInt16
 +
|-
 +
| 3 || PcmInt24
 +
|-
 +
| 4 || PcmInt32
 +
|-
 +
| 5 || PcmFloat
 +
|-
 +
| 6 || Adpcm
 +
|}
 +
 
 +
= AudioOutState =
 +
This is "nn::audio::AudioOutState".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value || Name
 +
|-
 +
| 0 || Started
 +
|-
 +
| 1 || Stopped
 +
|}
 +
 
 +
= AudioInState =
 +
This is "nn::audio::AudioInState".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value || Name
 +
|-
 +
| 0 || Started
 +
|-
 +
| 1 || Stopped
 +
|}
 +
 
 +
= FinalOutputRecorderState =
 +
This is "nn::audio::FinalOutputRecorderState".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value || Name
 +
|-
 +
| 0 || Started
 +
|-
 +
| 1 || Stopped
 +
|}
 +
 
 +
= AudioOutInfo =
 +
This is "nn::audio::AudioOutInfo".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x100
 +
| Name
 +
|}
 +
 
 +
= AudioInInfo =
 +
This is "nn::audio::AudioInInfo".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x100
 +
| Name
 +
|}
 +
 
 +
= AudioOutParameter =
 +
This is "nn::audio::AudioOutParameter".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| SampleRate
 +
|-
 +
| 0x4
 +
| 0x2
 +
| ChannelCount
 +
|-
 +
| 0x6
 +
| 0x2
 +
| Reserved
 +
|}
 +
 
 +
= AudioInParameter =
 +
This is "nn::audio::AudioInParameter".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| SampleRate
 +
|-
 +
| 0x4
 +
| 0x2
 +
| ChannelCount
 +
|-
 +
| 0x6
 +
| 0x2
 +
| Reserved
 +
|}
 +
 
 +
= AudioOutParameterInternal =
 +
This is "nn::audio::detail::AudioOutParameterInternal".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| SampleRate
 +
|-
 +
| 0x4
 +
| 0x4
 +
| ChannelCount
 +
|-
 +
| 0x8
 +
| 0x4
 +
| SampleFormat
 +
|-
 +
| 0xC
 +
| 0x4
 +
| State
 +
|}
 +
 
 +
= AudioInParameterInternal =
 +
This is "nn::audio::detail::AudioInParameterInternal".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| SampleRate
 +
|-
 +
| 0x4
 +
| 0x4
 +
| ChannelCount
 +
|-
 +
| 0x8
 +
| 0x4
 +
| SampleFormat
 +
|-
 +
| 0xC
 +
| 0x4
 +
| State
 +
|}
 +
 
 +
= AudioOutBuffer =
 +
This is "nn::audio::AudioOutBuffer".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Pointer to next buffer (unused)
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Pointer to sample buffer
 +
|-
 +
| 0x10
 +
| 0x8
 +
| Capacity of sample buffer
 +
|-
 +
| 0x18
 +
| 0x8
 +
| Size of data in the sample buffer
 +
|-
 +
| 0x20
 +
| 0x8
 +
| Offset of data in the sample buffer (unused/ignored?)
 +
|}
 +
 
 +
= AudioInBuffer =
 +
This is "nn::audio::AudioInBuffer".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Pointer to next buffer (unused)
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Pointer to sample buffer
 +
|-
 +
| 0x10
 +
| 0x8
 +
| Capacity of sample buffer
 +
|-
 +
| 0x18
 +
| 0x8
 +
| Size of data in the sample buffer
 +
|-
 +
| 0x20
 +
| 0x8
 +
| Offset of data in the sample buffer (unused/ignored?)
 +
|}
 +
 
 +
= FinalOutputRecorderBuffer =
 +
This is "nn::audio::FinalOutputRecorderBuffer".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Released
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Pointer to next buffer (unused)
 +
|-
 +
| 0x10
 +
| 0x8
 +
| Pointer to sample buffer
 +
|-
 +
| 0x18
 +
| 0x8
 +
| Capacity of sample buffer
 +
|-
 +
| 0x20
 +
| 0x8
 +
| Size of data in the sample buffer
 +
|-
 +
| 0x28
 +
| 0x8
 +
| Offset of data in the sample buffer (unused/ignored?)
 +
|}
 +
 
 +
= FinalOutputRecorderParameter =
 +
This is "nn::audio::FinalOutputRecorderParameter".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| SampleRate
 +
|}
 +
 
 +
= FinalOutputRecorderParameterInternal =
 +
This is "nn::audio::detail::FinalOutputRecorderParameterInternal".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| SampleRate
 +
|-
 +
| 0x4
 +
| 0x4
 +
| ChannelCount
 +
|-
 +
| 0x8
 +
| 0x4
 +
| SampleFormat
 +
|-
 +
| 0xC
 +
| 0x4
 +
| State
 +
|}
 +
 
 +
= FinalOutputRecorderWorkBufferParameterInternal =
 +
This is "nn::audio::detail::FinalOutputRecorderWorkBufferParameterInternal".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
|
 +
|-
 +
| 0x8
 +
| 0x8
 +
|
 +
|-
 +
| 0x10
 +
| 0x8
 +
|
 +
|}
 +
 
 +
= OpusParametersEx =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| SampleRate
 +
|-
 +
| 0x4
 +
| 0x4
 +
| ChannelCount
 +
|-
 +
| 0x8
 +
| 0x4
 +
| UseLargeFrameSize
 +
|-
 +
| 0xC
 +
| 0x4
 +
| Padding
 +
|}
 +
 
 +
= OpusMultiStreamParameters =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| SampleRate
 +
|-
 +
| 0x4
 +
| 0x4
 +
| ChannelCount
 +
|-
 +
| 0x8
 +
| 0x4
 +
| Number of streams
 +
|-
 +
| 0xC
 +
| 0x4
 +
| Number of stereo streams
 +
|-
 +
| 0x10
 +
| 0x100
 +
| u8 array of channel mappings
 +
|}
 +
 
 +
= OpusMultiStreamParametersEx =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| SampleRate
 +
|-
 +
| 0x4
 +
| 0x4
 +
| ChannelCount
 +
|-
 +
| 0x8
 +
| 0x4
 +
| Number of streams
 +
|-
 +
| 0xC
 +
| 0x4
 +
| Number of stereo streams
 +
|-
 +
| 0x10
 +
| 0x4
 +
| UseLargeFrameSize
 +
|-
 +
| 0x14
 +
| 0x4
 +
| Padding
 +
|-
 +
| 0x18
 +
| 0x100
 +
| u8 array of channel mappings
 +
|}
    
[[Category:Services]]
 
[[Category:Services]]

Navigation menu