// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include #include #include "common/common_types.h" namespace AudioCore { /** * Represents a buffer of audio samples to be played in an audio stream */ class Buffer { public: using Tag = u64; Buffer(Tag tag_, std::vector&& samples_) : tag{tag_}, samples{std::move(samples_)} {} /// Returns the raw audio data for the buffer std::vector& GetSamples() { return samples; } /// Returns the raw audio data for the buffer const std::vector& GetSamples() const { return samples; } /// Returns the buffer tag, this is provided by the game to the audout service Tag GetTag() const { return tag; } private: Tag tag; std::vector samples; }; using BufferPtr = std::shared_ptr; } // namespace AudioCore