18 #ifndef CORE_UBUNTU_MEDIA_PLAYER_H_
19 #define CORE_UBUNTU_MEDIA_PLAYER_H_
23 #include <core/property.h>
37 class Player :
public std::enable_shared_from_this<Player>
81 virtual std::shared_ptr<TrackList>
track_list() = 0;
87 virtual void next() = 0;
89 virtual void play() = 0;
90 virtual void pause() = 0;
91 virtual void stop() = 0;
92 virtual void seek_to(
const std::chrono::microseconds& offset) = 0;
98 virtual const core::Property<bool>&
can_play()
const = 0;
99 virtual const core::Property<bool>&
can_pause()
const = 0;
100 virtual const core::Property<bool>&
can_seek()
const = 0;
102 virtual const core::Property<bool>&
can_go_next()
const = 0;
105 virtual const core::Property<PlaybackStatus>&
playback_status()
const = 0;
106 virtual const core::Property<LoopStatus>&
loop_status()
const = 0;
107 virtual const core::Property<PlaybackRate>&
playback_rate()
const = 0;
108 virtual const core::Property<bool>&
is_shuffle()
const = 0;
110 virtual const core::Property<Volume>&
volume()
const = 0;
113 virtual const core::Property<uint64_t>&
position()
const = 0;
114 virtual const core::Property<uint64_t>&
duration()
const = 0;
116 virtual core::Property<LoopStatus>&
loop_status() = 0;
118 virtual core::Property<bool>&
is_shuffle() = 0;
119 virtual core::Property<Volume>&
volume() = 0;
121 virtual const core::Signal<uint64_t>&
seeked_to()
const = 0;
132 #endif // CORE_UBUNTU_MEDIA_PLAYER_H_