diff options
| author | liamwhite <liamwhite@users.noreply.github.com> | 2022-07-23 15:20:39 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-23 15:20:39 -0400 |
| commit | 97729fd8e9c2f8cabc626ab03a666c9428e01c5e (patch) | |
| tree | f6a2f3b6c71b51a646d1502c01a4f6be92a3ed26 /src/audio_core/renderer/command/sink/device.h | |
| parent | 6c4e48dac40d5a9b7b9a8077d14b814df6032fd4 (diff) | |
| parent | 458da8a94877677f086f06cdeecf959ec4283a33 (diff) | |
Merge pull request #8545 from Kelebek1/Audio
Project Andio
Diffstat (limited to 'src/audio_core/renderer/command/sink/device.h')
| -rw-r--r-- | src/audio_core/renderer/command/sink/device.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/audio_core/renderer/command/sink/device.h b/src/audio_core/renderer/command/sink/device.h new file mode 100644 index 000000000..1099bcf8c --- /dev/null +++ b/src/audio_core/renderer/command/sink/device.h @@ -0,0 +1,57 @@ +// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include <array> +#include <span> +#include <string> + +#include "audio_core/renderer/command/icommand.h" +#include "common/common_types.h" + +namespace AudioCore::AudioRenderer { +namespace ADSP { +class CommandListProcessor; +} + +/** + * AudioRenderer command for sinking samples to an output device. + */ +struct DeviceSinkCommand : ICommand { + /** + * Print this command's information to a string. + * + * @param processor - The CommandListProcessor processing this command. + * @param string - The string to print into. + */ + void Dump(const ADSP::CommandListProcessor& processor, std::string& string) override; + + /** + * Process this command. + * + * @param processor - The CommandListProcessor processing this command. + */ + void Process(const ADSP::CommandListProcessor& processor) override; + + /** + * Verify this command's data is valid. + * + * @param processor - The CommandListProcessor processing this command. + * @return True if the command is valid, otherwise false. + */ + bool Verify(const ADSP::CommandListProcessor& processor) override; + + /// Device name + char name[0x100]; + /// System session id (unused) + s32 session_id; + /// Sample buffer to sink + std::span<s32> sample_buffer; + /// Number of input channels + u32 input_count; + /// Mix buffer indexes for each channel + std::array<s16, MaxChannels> inputs; +}; + +} // namespace AudioCore::AudioRenderer |
