Refactor player and engine interfaces

This commit is contained in:
2026-06-16 13:25:52 +02:00
parent 31d7453a50
commit 0451a72a8b
5 changed files with 115 additions and 0 deletions
+4
View File
@@ -17,3 +17,7 @@ struct Metadata {
unsigned int sampleRate;
unsigned int bitRate;
};
struct Track {
};
+63
View File
@@ -0,0 +1,63 @@
#pragma once
#include "../include/Metadata.h"
#include "../include/miniaudio.h"
#include <string>
#include <vector>
#include <memory>
using Queue = std::vector<Track>;
class Player {
public:
virtual ~Player() = delete;
virtual void initPlayer();
void loadFile() const;
// Transport Control
virtual void play() const;
virtual void stop() const;
virtual void pause() const;
virtual void previous() const;
virtual void next() const;
virtual void getPlayheadPosition() const;
virtual void setPlayheadPosition() const;
// get Metadat
virtual std::string& getArtist() const;
virtual std::string& getTitle() const;
virtual std::string& getAlbum() const;
virtual unsigned int getTrackNr() const;
// Player Queue
Queue getQueue() const;
Queue clearQueue();
Queue addToQueue( Track& track );
Queue rempveFromQueue( Track& track );
Queue shuffleQueue();
private:
std::string artist_;
std::string title_;
std::string album_;
std::string trackNr_;
std::string filePath_;
Queue queue_;
unsigned int samplerate_ = 48000;
unsigned int channels_ = 2;
};
class PlayerLocal : public Player {
public:
virtual void initPlayer() override;
virtual ma_engine_config configureEngine() override;
const virtual unsigned int getSamplerate() const;
};
+27
View File
@@ -0,0 +1,27 @@
#pragma once
#include "miniaudio.h"
class PlayerEngine {
private:
ma_engine engine_;
ma_engine_config engineConfig_;
ma_device device_;
ma_device_config deviceConfig_;
unsigned int sampleRate_;
unsigned int channels_ = 2;
ma_format format_ = ma_format_unknown;
public:
PlayerEngine();
PlayerEngine( unsigned int sampleRate, unsigned int channels, ma_format format );
ma_device getDevice() const;
unsigned int getChannels() const;
unsigned int getSampleRate() const;
ma_format getFormat() const;
void setDevice( ma_device device );
void setSampleRate( unsigned int sampleRate );
void setChannels( unsigned int channels );
void setFormat( ma_format format );
};
+3
View File
@@ -0,0 +1,3 @@
#include "../include/Player.h"
//#include "../include/miniaudio.h"
+18
View File
@@ -0,0 +1,18 @@
#include "../include/PlayerEngine.h"
using pe = PlayerEngine;
// Constructor
pe::PlayerEngine( unsigned int sampleRate, unsigned int channels, ma_format format ) : sampleRate_{ sampleRate }, channels_{ channels }, format_( format ) {}
// Getters
ma_device pe::getDevice() const { return device_; }
ma_format pe::getFormat() const { return format_; }
unsigned int pe::getSampleRate() const { return sampleRate_; }
unsigned int pe::getChannels() const { return channels_; }
// Setters
void pe::setDevice( ma_device device ) { device_ = device; }
void pe::setSampleRate ( unsigned int sampleRate ) { sampleRate_ = sampleRate; }
void pe::setChannels( unsigned int channels ) { channels_ = channels; }
void pe::setFormat( ma_format format ) { format_ = format; }