|
Vulkan Schnee 0.0.1
High-performance rendering engine
|
Async pipeline for loading audio assets (WAV, FLAC, MP3) More...
#include <FrameProcessing.h>
Classes | |
| struct | AudioLoadFuture |
Public Member Functions | |
| AudioAssetPipeline (Assets::AudioAssetManager *audioAssetManager, NamedThreadPool *assetLoaderPool) | |
| void | submitAsset (const std::filesystem::path &asset) |
| Submit an audio file for async loading. | |
| void | tick (bool async=true) |
| Advances the pipeline state machine (call once per frame) | |
| void | setAudioEngine (Core::AudioEngine *engine) |
| Set the AudioEngine to notify when assets finish loading. | |
| size_t | getPendingCount () const |
| Returns the number of audio assets still pending. | |
| void | discardPendingWork () |
Private Member Functions | |
| void | submitDecodeJobs () |
| void | retrieveDecodedAudio () |
Private Attributes | |
| Assets::AudioAssetManager * | audioAssetManager_ |
| Core::AudioEngine * | audioEngine_ = nullptr |
| NamedThreadPool * | assetLoaderPool_ = nullptr |
| std::vector< std::filesystem::path > | assetQueue_ |
| std::vector< AudioLoadFuture > | loadFutures_ |
| size_t | maxLoadsPerFrame_ = Core::Audio::MAX_AUDIO_LOADS_PER_FRAME |
Async pipeline for loading audio assets (WAV, FLAC, MP3)
2-stage state machine following the TextureAssetPipeline pattern: Stage 1: Submit decode tasks to thread pool Stage 2: Poll futures, register loaded assets with AudioEngine
Definition at line 219 of file FrameProcessing.h.
| Engine::Ecs::AudioAssetPipeline::AudioAssetPipeline | ( | Assets::AudioAssetManager * | audioAssetManager, |
| NamedThreadPool * | assetLoaderPool ) |
| void Engine::Ecs::AudioAssetPipeline::discardPendingWork | ( | ) |
|
inlinenodiscard |
Returns the number of audio assets still pending.
Definition at line 249 of file FrameProcessing.h.
References assetQueue_, and loadFutures_.
|
private |
|
inline |
Set the AudioEngine to notify when assets finish loading.
| engine | Pointer to the AudioEngine |
Definition at line 244 of file FrameProcessing.h.
References audioEngine_.
| void Engine::Ecs::AudioAssetPipeline::submitAsset | ( | const std::filesystem::path & | asset | ) |
Submit an audio file for async loading.
| asset | Relative path to the audio file |
|
private |
| void Engine::Ecs::AudioAssetPipeline::tick | ( | bool | async = true | ) |
Advances the pipeline state machine (call once per frame)
| async | Whether to run asynchronously |
|
private |
Definition at line 268 of file FrameProcessing.h.
|
private |
Definition at line 270 of file FrameProcessing.h.
Referenced by getPendingCount().
|
private |
Definition at line 266 of file FrameProcessing.h.
|
private |
Definition at line 267 of file FrameProcessing.h.
Referenced by setAudioEngine().
|
private |
Definition at line 271 of file FrameProcessing.h.
Referenced by getPendingCount().
|
private |
Definition at line 273 of file FrameProcessing.h.