19 #ifndef CORE_UBUNTU_MEDIA_PLAYER_H_
20 #define CORE_UBUNTU_MEDIA_PLAYER_H_
27 #include <core/property.h>
42 class Player :
public std::enable_shared_from_this<Player>
129 virtual std::string
uuid()
const = 0;
133 virtual std::shared_ptr<TrackList>
track_list() = 0;
134 virtual PlayerKey
key()
const = 0;
140 virtual void next() = 0;
142 virtual void play() = 0;
143 virtual void pause() = 0;
144 virtual void stop() = 0;
145 virtual void seek_to(
const std::chrono::microseconds& offset) = 0;
147 virtual const core::Property<bool>&
can_play()
const = 0;
148 virtual const core::Property<bool>&
can_pause()
const = 0;
149 virtual const core::Property<bool>&
can_seek()
const = 0;
151 virtual const core::Property<bool>&
can_go_next()
const = 0;
154 virtual const core::Property<PlaybackStatus>&
playback_status()
const = 0;
155 virtual const core::Property<LoopStatus>&
loop_status()
const = 0;
156 virtual const core::Property<PlaybackRate>&
playback_rate()
const = 0;
157 virtual const core::Property<bool>&
shuffle()
const = 0;
159 virtual const core::Property<Volume>&
volume()
const = 0;
162 virtual const core::Property<int64_t>&
position()
const = 0;
163 virtual const core::Property<int64_t>&
duration()
const = 0;
165 virtual const core::Property<Orientation>&
orientation()
const = 0;
166 virtual const core::Property<Lifetime>&
lifetime()
const = 0;
168 virtual core::Property<LoopStatus>&
loop_status() = 0;
170 virtual core::Property<bool>&
shuffle() = 0;
171 virtual core::Property<Volume>&
volume() = 0;
173 virtual core::Property<Lifetime>&
lifetime() = 0;
175 virtual const core::Signal<int64_t>&
seeked_to()
const = 0;
181 virtual const core::Signal<Error>&
error()
const = 0;
192 case Player::PlaybackStatus::null:
193 return out <<
"PlaybackStatus::null";
194 case Player::PlaybackStatus::ready:
195 return out <<
"PlaybackStatus::ready";
196 case Player::PlaybackStatus::playing:
197 return out <<
"PlaybackStatus::playing";
198 case Player::PlaybackStatus::paused:
199 return out <<
"PlaybackStatus::paused";
200 case Player::PlaybackStatus::stopped:
201 return out <<
"PlaybackStatus::stopped";
211 case Player::LoopStatus::none:
212 return out <<
"LoopStatus::none";
213 case Player::LoopStatus::track:
214 return out <<
"LoopStatus::track";
215 case Player::LoopStatus::playlist:
216 return out <<
"LoopStatus::playlist";
226 #endif // CORE_UBUNTU_MEDIA_PLAYER_H_