add PlaybackEngine

This commit is contained in:
2026-06-18 14:44:18 +02:00
parent 0451a72a8b
commit 2130d95ed5
2 changed files with 103 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
#pragma once
#include "miniaudio.h"
#include <atomic>
#include <memory>
struct PlaybackState {
ma_decoder decoder{};
std::atomic<bool> finished{ false };
};
class PlaybackEngine {
public:
PlaybackEngine();
~PlaybackEngine();
static void data_callback( ma_device* pDevice, void* pOutput, const void*, ma_uint32 frameCount );
void configureDevice();
void configureDecoder();
void initDevice();
void initDecoder( const char* filePath );
void startPlayback();
void stopPlayback();
void pausePlayback() { stopPlayback(); };
int isFinished() const;
private:
ma_device device_;
ma_format format_;
unsigned int channels_;
unsigned int sampleRate_;
PlaybackState state;
//config
ma_decoder_config decoderConfig;
ma_device_config deviceConfig;
};