| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
- // SPDX-License-Identifier: GPL-2.0-or-later
- #pragma once
- #include <memory>
- #include <vector>
- #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<s16>&& samples_) : tag{tag_}, samples{std::move(samples_)} {}
- /// Returns the raw audio data for the buffer
- std::vector<s16>& GetSamples() {
- return samples;
- }
- /// Returns the raw audio data for the buffer
- const std::vector<s16>& 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<s16> samples;
- };
- using BufferPtr = std::shared_ptr<Buffer>;
- } // namespace AudioCore
|