// Copyright 2018 yuzu Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #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& Samples() { 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