Changes

8,471 bytes added ,  18:48, 24 February 2021
no edit summary
Line 6: Line 6:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || [[#ListAudioOuts]]
+
| 0 || [[#ListAudioOuts|ListAudioOuts]]
 
|-
 
|-
| 1 || [[#OpenAudioOut]]
+
| 1 || [[#OpenAudioOut|OpenAudioOut]]
 
|-
 
|-
| 2 || [3.0.0+] [[#ListAudioOutsAuto]]
+
| 2 || [3.0.0+] [[#ListAudioOutsAuto|ListAudioOutsAuto]]
 
|-
 
|-
| 3 || [3.0.0+] [[#OpenAudioOutAuto]]
+
| 3 || [3.0.0+] [[#OpenAudioOutAuto|OpenAudioOutAuto]]
 
|}
 
|}
    
== ListAudioOuts ==
 
== ListAudioOuts ==
Takes a type-0x6 output buffer.
+
Takes a type-0x6 output buffer containing an array of [[#AudioOutInfo]]. Returns an u32 '''Count'''.
Populates the output buffer with the available audio output devices' names and returns an u32 with the number of device names written.
      
== OpenAudioOut ==
 
== OpenAudioOut ==
Takes a type-0x5 input buffer ('''DeviceNameIn'''), a type-0x6 output buffer ('''DeviceNameOut'''), two u32s '''SampleRate''' (must be 48000) and '''ChannelCount''' (only the higher u16 is used), one [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], a PID and a copy-handle.
+
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 an output [[#AudioOutParameterInternal]].
Returns an [[#IAudioOut]] object and four u32s: the sample rate, channel count, [[#SampleFormat|SampleFormat]], and the initial AudioOutState.
      
== ListAudioOutsAuto ==
 
== ListAudioOutsAuto ==
Line 36: Line 34:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || [[#GetAudioOutState]]
+
| 0 || [[#GetAudioOutState|GetAudioOutState]]
 
|-
 
|-
| 1 || [[#Start]]
+
| 1 || [[#Start|Start]]
 
|-
 
|-
| 2 || [[#Stop]]
+
| 2 || [[#Stop|Stop]]
 
|-
 
|-
| 3 || [[#AppendAudioOutBuffer]]
+
| 3 || [[#AppendAudioOutBuffer|AppendAudioOutBuffer]]
 
|-
 
|-
| 4 || [[#RegisterBufferEvent]]
+
| 4 || [[#RegisterBufferEvent|RegisterBufferEvent]]
 
|-
 
|-
| 5 || [[#GetReleasedAudioOutBuffers]]
+
| 5 || [[#GetReleasedAudioOutBuffers|GetReleasedAudioOutBuffers]]
 
|-
 
|-
| 6 || [[#ContainsAudioOutBuffer]]
+
| 6 || [[#ContainsAudioOutBuffer|ContainsAudioOutBuffer]]
 
|-
 
|-
| 7 || [3.0.0+] [[#AppendAudioOutBufferAuto]]
+
| 7 || [3.0.0+] [[#AppendAudioOutBufferAuto|AppendAudioOutBufferAuto]]
 
|-
 
|-
| 8 || [3.0.0+] [[#GetReleasedAudioOutBuffersAuto]]
+
| 8 || [3.0.0+] [[#GetReleasedAudioOutBuffersAuto|GetReleasedAudioOutBuffersAuto]]
 
|-
 
|-
| 9 || [4.0.0+] [[#GetAudioOutBufferCount]]
+
| 9 || [4.0.0+] [[#GetAudioOutBufferCount|GetAudioOutBufferCount]]
 
|-
 
|-
| 10 || [4.0.0+] [[#GetAudioOutPlayedSampleCount]]
+
| 10 || [4.0.0+] [[#GetAudioOutPlayedSampleCount|GetAudioOutPlayedSampleCount]]
 
|-
 
|-
| 11 || [4.0.0+] [[#FlushAudioOutBuffers]]
+
| 11 || [4.0.0+] [[#FlushAudioOutBuffers|FlushAudioOutBuffers]]
 
|-
 
|-
| 12 || [6.0.0+] [[#SetAudioOutVolume]]
+
| 12 || [6.0.0+] [[#SetAudioOutVolume|SetAudioOutVolume]]
 
|-
 
|-
| 13 || [6.0.0+] [[#GetAudioOutVolume]]
+
| 13 || [6.0.0+] [[#GetAudioOutVolume|GetAudioOutVolume]]
 
|}
 
|}
    
=== GetAudioOutState ===
 
=== GetAudioOutState ===
Returns an u32 '''AudioOutState''' (0=Started, 1=Stopped).
+
No input. Returns an output [[#AudioOutState]].
    
=== Start ===
 
=== Start ===
 +
No input/output.
 +
 
Starts audio playback using data from appended buffers.
 
Starts audio playback using data from appended buffers.
    
=== Stop ===
 
=== Stop ===
 +
No input/output.
 +
 
Stops audio playback. This waits for audio playback to finish before returning.
 
Stops audio playback. This waits for audio playback to finish before returning.
    
=== AppendAudioOutBuffer ===
 
=== AppendAudioOutBuffer ===
Takes a type-0x5 input buffer of [[#AudioOutBuffer|AudioOutBuffer]] and a u64 which acts as a tag for the supplied buffer (official apps use the buffer's address).
+
Takes a type-0x5 input buffer containing an [[#AudioOutBuffer]] and an input u64 '''BufferClientPtr'''. No output.
    
=== RegisterBufferEvent ===
 
=== RegisterBufferEvent ===
Returns an event handle that is signalled when a buffer is released.
+
No input. Returns an output Event handle.
 +
 
 +
The event is signalled when a buffer is released.
    
=== GetReleasedAudioOutBuffers ===
 
=== GetReleasedAudioOutBuffers ===
Takes a type-0x6 output buffer which will be filled with the identifiers from [[#AppendAudioOutBuffer]] of audio buffers that have been released.
+
Takes a type-0x6 output buffer '''AudioBuffer'''. Returns an output u32 '''Count'''.
Returns an u32 '''ReleasedBuffersCount'''.
+
 
 +
'''AudioBuffer''' will be filled with the identifiers from [[#AppendAudioOutBuffer]] of audio buffers that have been released.
    
=== ContainsAudioOutBuffer ===
 
=== ContainsAudioOutBuffer ===
Takes an u64 '''tag''' for the desired buffer. Returns 1 if the buffer was appended and not yet released.
+
Takes an input u64 '''AudioBufferPointer'''. Returns an output bool '''Contains'''.
    
=== AppendAudioOutBufferAuto ===
 
=== AppendAudioOutBufferAuto ===
Same as [[#AppendAudioOutBuffer]] but takes a type-0x21 buffer instead.
+
Same as [[#AppendAudioOutBuffer]], but takes a type-0x21 buffer instead.
    
=== GetReleasedAudioOutBuffersAuto ===
 
=== GetReleasedAudioOutBuffersAuto ===
Same as [[#GetReleasedAudioOutBuffer]] but takes a type-0x22 buffer instead.
+
Same as [[#GetReleasedAudioOutBuffer]], but takes a type-0x22 buffer instead.
    
=== GetAudioOutBufferCount ===
 
=== GetAudioOutBufferCount ===
Returns u32 amount of buffers awaiting playback.
+
No input. Returns an output u32 '''AudioOutBufferCount'''.
    
=== GetAudioOutPlayedSampleCount ===
 
=== GetAudioOutPlayedSampleCount ===
Returns u64 total amount of samples played back.
+
No input. Returns an output u64 '''AudioOutPlayedSampleCount'''.
    
=== FlushAudioOutBuffers ===
 
=== FlushAudioOutBuffers ===
Flushes all pending buffers. Returns 1 if buffers were pending.
+
No input. Returns an output bool '''Pending'''.
    
=== SetAudioOutVolume ===
 
=== SetAudioOutVolume ===
Set float playback volume for this interface.
+
Takes an input float '''AudioOutVolume'''. No output.
    
=== GetAudioOutVolume ===
 
=== GetAudioOutVolume ===
Get float playback volume for this interface. Default is 1.0.
+
No input. Returns an output float '''AudioOutVolume'''.
    
= audin:u =
 
= audin:u =
Line 115: Line 120:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || ListAudioIns
+
| 0 || [[#ListAudioIns|ListAudioIns]]
 
|-
 
|-
| 1 || OpenAudioIn
+
| 1 || [[#OpenAudioIn|OpenAudioIn]]
 
|-
 
|-
| 2 || [3.0.0+] ListAudioInsAuto
+
| 2 || [3.0.0+] [[#ListAudioInsAuto|ListAudioInsAuto]]
 
|-
 
|-
| 3 || [3.0.0+] OpenAudioInAuto
+
| 3 || [3.0.0+] [[#OpenAudioInAuto|OpenAudioInAuto]]
 
|-
 
|-
| 4 || [3.0.0+] ListAudioInsAutoFiltered
+
| 4 || [3.0.0+] [[#ListAudioInsAutoFiltered|ListAudioInsAutoFiltered]]
 
|-
 
|-
| 5 || [5.0.0+] OpenAudioInProtocolSpecified
+
| 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 ==
Line 135: Line 158:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || [[#GetAudioInState]]
+
| 0 || [[#GetAudioInState|GetAudioInState]]
 
|-
 
|-
| 1 || Start
+
| 1 || [[#Start_2|Start]]
 
|-
 
|-
| 2 || Stop
+
| 2 || [[#Stop_2|Stop]]
 
|-
 
|-
| 3 || AppendAudioInBuffer
+
| 3 || [[#AppendAudioInBuffer|AppendAudioInBuffer]]
 
|-
 
|-
| 4 || RegisterBufferEvent
+
| 4 || [[#RegisterBufferEvent_2|RegisterBufferEvent]]
 
|-
 
|-
| 5 || GetReleasedAudioInBuffers
+
| 5 || [[#GetReleasedAudioInBuffers|GetReleasedAudioInBuffers]]
 
|-
 
|-
| 6 || ContainsAudioInBuffer
+
| 6 || [[#ContainsAudioInBuffer|ContainsAudioInBuffer]]
 
|-
 
|-
| 7 || [3.0.0+] AppendUacInBuffer
+
| 7 || [3.0.0+] [[#AppendUacInBuffer|AppendUacInBuffer]]
 
|-
 
|-
| 8 || [3.0.0+] AppendAudioInBufferAuto
+
| 8 || [3.0.0+] [[#AppendAudioInBufferAuto|AppendAudioInBufferAuto]]
 
|-
 
|-
| 9 || [3.0.0+] GetReleasedAudioInBuffersAuto
+
| 9 || [3.0.0+] [[#GetReleasedAudioInBuffersAuto|GetReleasedAudioInBuffersAuto]]
 
|-
 
|-
| 10 || [3.0.0+] AppendUacInBufferAuto
+
| 10 || [3.0.0+] [[#AppendUacInBufferAuto|AppendUacInBufferAuto]]
 
|-
 
|-
| 11 || [4.0.0+] GetAudioInBufferCount
+
| 11 || [4.0.0+] [[#GetAudioInBufferCount|GetAudioInBufferCount]]
 
|-
 
|-
| 12 || [4.0.0+] SetDeviceGain
+
| 12 || [4.0.0+] [[#SetDeviceGain|SetDeviceGain]]
 
|-
 
|-
| 13 || [4.0.0+] GetDeviceGain
+
| 13 || [4.0.0+] [[#GetDeviceGain|GetDeviceGain]]
 
|-
 
|-
| 14 || [6.0.0+] FlushAudioInBuffers
+
| 14 || [6.0.0+] [[#FlushAudioInBuffers|FlushAudioInBuffers]]
 
|}
 
|}
    
=== GetAudioInState ===
 
=== GetAudioInState ===
Returns an u32 '''AudioInState''' (0=Started, 1=Stopped).
+
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 =
 
= audrec:u =
Line 176: Line 245:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || OpenFinalOutputRecorder
+
| 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 ==
 
== IFinalOutputRecorder ==
Line 186: Line 258:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || GetFinalOutputRecorderState
+
| 0 || [[#GetFinalOutputRecorderState|GetFinalOutputRecorderState]]
 
|-
 
|-
| 1 || Start
+
| 1 || [[#Start_3|Start]]
 
|-
 
|-
| 2 || Stop
+
| 2 || [[#Stop_3|Stop]]
 
|-
 
|-
| 3 || AppendFinalOutputRecorderBuffer
+
| 3 || [[#AppendFinalOutputRecorderBuffer|AppendFinalOutputRecorderBuffer]]
 
|-
 
|-
| 4 || RegisterBufferEvent
+
| 4 || [[#RegisterBufferEvent_3|RegisterBufferEvent]]
 
|-
 
|-
| 5 || GetReleasedFinalOutputRecorderBuffers
+
| 5 || [[#GetReleasedFinalOutputRecorderBuffers|GetReleasedFinalOutputRecorderBuffers]]
 
|-
 
|-
| 6 || ContainsFinalOutputRecorderBuffer
+
| 6 || [[#ContainsFinalOutputRecorderBuffer|ContainsFinalOutputRecorderBuffer]]
 
|-
 
|-
| 7 || GetFinalOutputRecorderBufferEndTime
+
| 7 || [[#GetFinalOutputRecorderBufferEndTime|GetFinalOutputRecorderBufferEndTime]]
 
|-
 
|-
| 8 || [3.0.0+] AppendFinalOutputRecorderBufferAuto
+
| 8 || [3.0.0+] [[#AppendFinalOutputRecorderBufferAuto|AppendFinalOutputRecorderBufferAuto]]
 
|-
 
|-
| 9 || [3.0.0+] GetReleasedFinalOutputRecorderBuffersAuto
+
| 9 || [3.0.0+] [[#GetReleasedFinalOutputRecorderBuffersAuto|GetReleasedFinalOutputRecorderBuffersAuto]]
 
|-
 
|-
| 10 || [6.0.0+] FlushFinalOutputRecorderBuffers
+
| 10 || [6.0.0+] [[#FlushFinalOutputRecorderBuffers|FlushFinalOutputRecorderBuffers]]
 
|-
 
|-
| 11 || [9.0.0+] AttachWorkBuffer
+
| 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 =
 
= auddev =
Line 787: Line 899:  
|-
 
|-
 
| 6 || Adpcm
 
| 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
 
|}
 
|}
   Line 794: Line 1,066:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Offset || Size || Description
+
! 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)
 
|-
 
|-
| 0x00 || 8 || Pointer to next buffer (unused)
+
| 0x8
 +
| 0x8
 +
| Pointer to sample buffer
 
|-
 
|-
| 0x08 || 8 || Pointer to sample buffer
+
| 0x10
 +
| 0x8
 +
| Capacity of sample buffer
 
|-
 
|-
| 0x10 || 8 || Capacity of sample buffer
+
| 0x18
 +
| 0x8
 +
| Size of data in the sample buffer
 
|-
 
|-
| 0x18 || 8 || 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
 +
| 0x4
 +
|
 +
|-
 +
| 0x4
 +
| 0x4
 +
|
 +
|-
 +
| 0x8
 +
| 0x4
 +
|
 +
|-
 +
| 0xC
 +
| 0x4
 +
|
 
|-
 
|-
| 0x20 || 8 || Offset of data in the sample buffer (unused/ignored?)
+
| 0x10
 +
| 0x8
 +
|  
 
|}
 
|}
   Line 816: Line 1,234:  
| 0x0
 
| 0x0
 
| 0x4
 
| 0x4
| Sample rate (Hz)
+
| SampleRate
 
|-
 
|-
 
| 0x4
 
| 0x4
 
| 0x4
 
| 0x4
| Number of channels
+
| ChannelCount
 
|-
 
|-
 
| 0x8
 
| 0x8