33 lines
686 B
C
33 lines
686 B
C
|
#pragma once
|
||
|
#include <thread>
|
||
|
#include <string>
|
||
|
#include <atomic>
|
||
|
#include <mutex>
|
||
|
class Playback {
|
||
|
private:
|
||
|
std::string filePath;
|
||
|
std::atomic_bool running;
|
||
|
std::atomic_bool file_changed;
|
||
|
std::atomic_bool seeking;
|
||
|
std::atomic_bool update;
|
||
|
std::mutex flag_mutex;
|
||
|
std::thread thread;
|
||
|
double position;
|
||
|
double length;
|
||
|
bool paused;
|
||
|
void ThreadFunc();
|
||
|
public:
|
||
|
Playback();
|
||
|
~Playback();
|
||
|
double GetPosition();
|
||
|
double GetLength();
|
||
|
void Seek(double position);
|
||
|
void Start(std::string filePath);
|
||
|
bool IsPaused();
|
||
|
void Pause();
|
||
|
void Stop();
|
||
|
void Update();
|
||
|
bool IsStopped();
|
||
|
float volume;
|
||
|
float speed;
|
||
|
};
|