Audio services: Difference between revisions
No edit summary |
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'''. | ||
== OpenAudioOut == | == OpenAudioOut == | ||
Takes a type-0x5 input buffer | 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]] | |||
== 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 | 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 | Takes a type-0x5 input buffer containing an [[#AudioOutBuffer]] and an input u64 '''BufferClientPtr'''. No output. | ||
=== RegisterBufferEvent === | === RegisterBufferEvent === | ||
Returns an event | No input. Returns an output Event handle. | ||
The event is signalled when a buffer is released. | |||
=== GetReleasedAudioOutBuffers === | === GetReleasedAudioOutBuffers === | ||
Takes a type-0x6 output buffer | 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 === | === ContainsAudioOutBuffer === | ||
Takes an u64 ''' | 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 | No input. Returns an output u32 '''AudioOutBufferCount'''. | ||
=== GetAudioOutPlayedSampleCount === | === GetAudioOutPlayedSampleCount === | ||
Returns u64 | No input. Returns an output u64 '''AudioOutPlayedSampleCount'''. | ||
=== FlushAudioOutBuffers === | === FlushAudioOutBuffers === | ||
No input. Returns an output bool '''Pending'''. | |||
=== SetAudioOutVolume === | === SetAudioOutVolume === | ||
Takes an input float '''AudioOutVolume'''. No output. | |||
=== GetAudioOutVolume === | === GetAudioOutVolume === | ||
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 ''' | 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) | |||
|- | |- | ||
| | | 0x8 | ||
| 0x8 | |||
| Pointer to sample buffer | |||
|- | |- | ||
| | | 0x10 | ||
| 0x8 | |||
| Capacity of sample buffer | |||
|- | |- | ||
| | | 0x18 | ||
| 0x8 | |||
| Size of data in the sample buffer | |||
|- | |- | ||
| 0x18 || | | 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 | |||
| | |||
|- | |- | ||
| | | 0x10 | ||
| 0x8 | |||
| | |||
|} | |} | ||
Line 816: | Line 1,234: | ||
| 0x0 | | 0x0 | ||
| 0x4 | | 0x4 | ||
| | | SampleRate | ||
|- | |- | ||
| 0x4 | | 0x4 | ||
| 0x4 | | 0x4 | ||
| | | ChannelCount | ||
|- | |- | ||
| 0x8 | | 0x8 |