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 |