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"
5#include "AudioLoader.h"
6
7#include <filesystem>
8
9namespace Engine::Assets {
10
14 class Audio : public Asset::AssetBase {
15 public:
16 explicit Audio(bool initEcsData = false);
17 ~Audio() override = default;
18
23 void setAudioData(AudioData&& audioData);
24
25 // TODO: missing unit for sample rate in the docs
29 [[nodiscard]] uint32_t getSampleRate() const { return sampleRate_; }
30
34 [[nodiscard]] uint32_t getChannels() const { return channels_; }
35
39 [[nodiscard]] uint64_t getFrameCount() const { return frameCount_; }
40
44 [[nodiscard]] float getDurationSeconds() const { return durationSeconds_; }
45
49 [[nodiscard]] const std::vector<float>& getPcmData() const { return pcmData_; }
50
54 void unload() override;
55
59 void updateLoadingState() override;
60
61 private:
62 uint32_t sampleRate_ = 0;
63 uint32_t channels_ = 0;
64 uint64_t frameCount_ = 0;
65 float durationSeconds_ = 0.0f;
66 std::vector<float> pcmData_;
67 };
68
72 class AudioAssetManager : public Asset::AssetManager<Asset::Path, Audio> {
73 public:
74 AudioAssetManager() = default;
75 };
76
77} // namespace EngineCore
Base class for asset wrappers. The data is stored in the private member variable 'data' in form of en...
Definition Asset.h:282
A manager which is used to look up existing assets and their loading state.
Definition Asset.h:332
~Audio() override=default
uint32_t getChannels() const
Getter.
Definition AudioAsset.h:34
uint32_t getSampleRate() const
Getter.
Definition AudioAsset.h:29
void updateLoadingState() override
Updates the loading state based on data availability.
float getDurationSeconds() const
Getter.
Definition AudioAsset.h:44
void unload() override
Unloads the audio data and releases resources.
const std::vector< float > & getPcmData() const
Getter.
Definition AudioAsset.h:49
uint64_t getFrameCount() const
Getter.
Definition AudioAsset.h:39
std::vector< float > pcmData_
Definition AudioAsset.h:66
Audio(bool initEcsData=false)
void setAudioData(AudioData &&audioData)
Sets the decoded audio data.
Decoded audio data ready for playback.
Definition AudioLoader.h:12