19#ifndef CORE_UBUNTU_MEDIA_PLAYER_H_
20#define CORE_UBUNTU_MEDIA_PLAYER_H_
27#include <core/property.h>
58class Player :
public std::enable_shared_from_this<Player>
155 virtual std::string
uuid()
const = 0;
171 virtual void seek_to(
const std::chrono::microseconds& offset) = 0;
173 virtual const core::Property<bool>&
can_play()
const = 0;
174 virtual const core::Property<bool>&
can_pause()
const = 0;
175 virtual const core::Property<bool>&
can_seek()
const = 0;
181 virtual const core::Property<AVBackend::Backend>&
backend()
const = 0;
182 virtual const core::Property<LoopStatus>&
loop_status()
const = 0;
184 virtual const core::Property<bool>&
shuffle()
const = 0;
186 virtual const core::Property<Volume>&
volume()
const = 0;
189 virtual const core::Property<int64_t>&
position()
const = 0;
190 virtual const core::Property<int64_t>&
duration()
const = 0;
192 virtual const core::Property<Orientation>&
orientation()
const = 0;
193 virtual const core::Property<Lifetime>&
lifetime()
const = 0;
198 virtual core::Property<Volume>&
volume() = 0;
202 virtual const core::Signal<int64_t>&
seeked_to()
const = 0;
208 virtual const core::Signal<Error>&
error()
const = 0;
221 case Player::PlaybackStatus::null:
222 return out <<
"PlaybackStatus::null";
223 case Player::PlaybackStatus::ready:
224 return out <<
"PlaybackStatus::ready";
225 case Player::PlaybackStatus::playing:
226 return out <<
"PlaybackStatus::playing";
227 case Player::PlaybackStatus::paused:
228 return out <<
"PlaybackStatus::paused";
229 case Player::PlaybackStatus::stopped:
230 return out <<
"PlaybackStatus::stopped";
240 case Player::LoopStatus::none:
241 return out <<
"LoopStatus::none";
242 case Player::LoopStatus::track:
243 return out <<
"LoopStatus::track";
244 case Player::LoopStatus::playlist:
245 return out <<
"LoopStatus::playlist";
255 case Player::Error::no_error:
256 return out <<
"Error::no_error";
257 case Player::Error::resource_error:
258 return out <<
"Error::resource_error";
259 case Player::Error::format_error:
260 return out <<
"Error::format_error";
261 case Player::Error::network_error:
262 return out <<
"Error::network_error";
263 case Player::Error::access_denied_error:
264 return out <<
"Error::access_denied_error";
265 case Player::Error::service_missing_error:
266 return out <<
"Error::service_missing_error";
268 return out <<
"Unsupported Player error: " << e;