Vulkan Schnee 0.0.1 (22840dc8)
High-performance rendering engine
Loading...
Searching...
No Matches
AudioAsset.h
1#pragma once
2
3#include "Engine/Core/Asset.h"
4#include "Engine/Files/AssetPath.h"
5#include "AudioLoader.h"
6
7#include <filesystem>
8
9namespace Engine::Assets {
10
14 class Audio : public Asset::AssetBase {
15 public:
20 explicit Audio(bool initEcsData = false);
21
25 ~Audio() override = default;
26
31 void setAudioData(AudioData&& audioData);
32
33 // TODO: missing unit for sample rate in the docs
37 [[nodiscard]] uint32_t getSampleRate() const { return sampleRate_; }
38
42 [[nodiscard]] uint32_t getChannels() const { return channels_; }
43
47 [[nodiscard]] uint64_t getFrameCount() const { return frameCount_; }
48
52 [[nodiscard]] float getDurationSeconds() const { return durationSeconds_; }
53
57 [[nodiscard]] const std::vector<float>& getPcmData() const { return pcmData_; }
58
62 void unload() override;
63
67 void updateLoadingState() override;
68
69 private:
70 uint32_t sampleRate_ = 0;
71 uint32_t channels_ = 0;
72 uint64_t frameCount_ = 0;
73 float durationSeconds_ = 0.0f;
74 std::vector<float> pcmData_;
75 };
76
80 class AudioAssetManager : public Asset::AssetManager<Asset::Path, Audio> {
81 public:
85 AudioAssetManager() = default;
86 };
87
88} // namespace EngineCore
Base class for asset wrappers. The data is stored in the private member variable 'data' in form of en...
Definition Asset.h:297
A manager which is used to look up existing assets and their loading state.
Definition Asset.h:358
AudioAssetManager()=default
Creates an empty audio asset manager.
~Audio() override=default
Destroys the audio asset.
uint32_t getChannels() const
Getter.
Definition AudioAsset.h:42
uint32_t getSampleRate() const
Getter.
Definition AudioAsset.h:37
void updateLoadingState() override
Updates the loading state based on data availability.
float getDurationSeconds() const
Getter.
Definition AudioAsset.h:52
void unload() override
Unloads the audio data and releases resources.
const std::vector< float > & getPcmData() const
Getter.
Definition AudioAsset.h:57
uint64_t getFrameCount() const
Getter.
Definition AudioAsset.h:47
std::vector< float > pcmData_
Definition AudioAsset.h:74
Audio(bool initEcsData=false)
Creates an audio asset and optionally initializes ECS-backed asset data.
void setAudioData(AudioData &&audioData)
Sets the decoded audio data.
Decoded audio data ready for playback.
Definition AudioLoader.h:12