rpcsx/rpcs3/Emu/Io/music_handler_base.h
Megamouse d80146c704 cellMusic: Fix resume, fast forward and rewind
- Sadly rewind does not work with the QMediaPlayer on windows
2022-07-27 07:39:55 +02:00

38 lines
777 B
C++

#pragma once
#include "util/types.hpp"
#include "util/atomic.hpp"
class music_handler_base
{
public:
enum class player_status
{
end_of_media
};
virtual ~music_handler_base() = default;
virtual void stop() = 0;
virtual void pause() = 0;
virtual void play(const std::string& path) = 0;
virtual void fast_forward(const std::string& path) = 0;
virtual void fast_reverse(const std::string& path) = 0;
virtual void set_volume(f32 volume) = 0;
virtual f32 get_volume() const = 0;
s32 get_state() const
{
return m_state;
}
void set_status_callback(std::function<void(player_status)> status_callback)
{
m_status_callback = std::move(status_callback);
}
protected:
atomic_t<s32> m_state{0};
std::function<void(player_status status)> m_status_callback;
};