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>
139 virtual std::string
uuid()
const = 0;
143 virtual std::shared_ptr<TrackList>
track_list() = 0;
144 virtual PlayerKey
key()
const = 0;
150 virtual void next() = 0;
152 virtual void play() = 0;
153 virtual void pause() = 0;
154 virtual void stop() = 0;
155 virtual void seek_to(
const std::chrono::microseconds& offset) = 0;
157 virtual const core::Property<bool>&
can_play()
const = 0;
158 virtual const core::Property<bool>&
can_pause()
const = 0;
159 virtual const core::Property<bool>&
can_seek()
const = 0;
161 virtual const core::Property<bool>&
can_go_next()
const = 0;
164 virtual const core::Property<PlaybackStatus>&
playback_status()
const = 0;
165 virtual const core::Property<LoopStatus>&
loop_status()
const = 0;
166 virtual const core::Property<PlaybackRate>&
playback_rate()
const = 0;
167 virtual const core::Property<bool>&
shuffle()
const = 0;
169 virtual const core::Property<Volume>&
volume()
const = 0;
172 virtual const core::Property<int64_t>&
position()
const = 0;
173 virtual const core::Property<int64_t>&
duration()
const = 0;
175 virtual const core::Property<Orientation>&
orientation()
const = 0;
176 virtual const core::Property<Lifetime>&
lifetime()
const = 0;
178 virtual core::Property<LoopStatus>&
loop_status() = 0;
180 virtual core::Property<bool>&
shuffle() = 0;
181 virtual core::Property<Volume>&
volume() = 0;
183 virtual core::Property<Lifetime>&
lifetime() = 0;
185 virtual const core::Signal<int64_t>&
seeked_to()
const = 0;
191 virtual const core::Signal<Error>&
error()
const = 0;
202 case Player::PlaybackStatus::null:
203 return out <<
"PlaybackStatus::null";
204 case Player::PlaybackStatus::ready:
205 return out <<
"PlaybackStatus::ready";
206 case Player::PlaybackStatus::playing:
207 return out <<
"PlaybackStatus::playing";
208 case Player::PlaybackStatus::paused:
209 return out <<
"PlaybackStatus::paused";
210 case Player::PlaybackStatus::stopped:
211 return out <<
"PlaybackStatus::stopped";
221 case Player::LoopStatus::none:
222 return out <<
"LoopStatus::none";
223 case Player::LoopStatus::track:
224 return out <<
"LoopStatus::track";
225 case Player::LoopStatus::playlist:
226 return out <<
"LoopStatus::playlist";
236 #endif // CORE_UBUNTU_MEDIA_PLAYER_H_