Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
AudioAsset.h
Go to the documentation of this file.
1#pragma once
2
3#include "Engine/Core/Asset.h"
4#include "AudioLoader.h"
5
6#include <filesystem>
7
8namespace Engine::Assets {
9
13 class Audio : public Asset::AssetBase {
14 public:
15 explicit Audio(bool initEcsData = false);
16 ~Audio() override = default;
17
22 void setAudioData(AudioData&& audioData);
23
27 [[nodiscard]] uint32_t getSampleRate() const { return sampleRate_; }
28
32 [[nodiscard]] uint32_t getChannels() const { return channels_; }
33
37 [[nodiscard]] uint64_t getFrameCount() const { return frameCount_; }
38
42 [[nodiscard]] float getDurationSeconds() const { return durationSeconds_; }
43
47 [[nodiscard]] const std::vector<float>& getPcmData() const { return pcmData_; }
48
52 void unload() override;
53
57 void updateLoadingState() override;
58
59 private:
60 uint32_t sampleRate_ = 0;
61 uint32_t channels_ = 0;
62 uint64_t frameCount_ = 0;
63 float durationSeconds_ = 0.0f;
64 std::vector<float> pcmData_;
65 };
66
70 class AudioAssetManager : public Asset::AssetManager<std::filesystem::path, Audio> {
71 public:
72 AudioAssetManager() = default;
73 };
74
75} // namespace EngineCore
Base class for asset wrappers. The data is stored in the private member variable 'data' in form of en...
Definition Asset.h:168
A manager which is used to look up existing assets and their loading state.
Definition Asset.h:250
~Audio() override=default
uint32_t getChannels() const
Getter.
Definition AudioAsset.h:32
uint32_t getSampleRate() const
Getter.
Definition AudioAsset.h:27
void updateLoadingState() override
Updates the loading state based on data availability.
float getDurationSeconds() const
Getter.
Definition AudioAsset.h:42
void unload() override
Unloads the audio data and releases resources.
const std::vector< float > & getPcmData() const
Getter.
Definition AudioAsset.h:47
uint64_t getFrameCount() const
Getter.
Definition AudioAsset.h:37
std::vector< float > pcmData_
Definition AudioAsset.h:64
Audio(bool initEcsData=false)
void setAudioData(AudioData &&audioData)
Sets the decoded audio data.
Decoded audio data ready for playback.
Definition AudioLoader.h:12