Music Hub ..
A session-wide music playback service
player_stub.h
Go to the documentation of this file.
1/*
2 * Copyright © 2013-2015 Canonical Ltd.
3 *
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Thomas Voß <thomas.voss@canonical.com>
17 * Jim Hodapp <jim.hodapp@canonical.com>
18 */
19
20#ifndef CORE_UBUNTU_MEDIA_PLAYER_STUB_H_
21#define CORE_UBUNTU_MEDIA_PLAYER_STUB_H_
22
23#include <core/media/player.h>
24
25#include <core/dbus/stub.h>
26
27#include <memory>
28
29namespace core
30{
31namespace ubuntu
32{
33namespace media
34{
35class Service;
36
37class PlayerStub : public Player
38{
39 public:
40 explicit PlayerStub(
41 const std::shared_ptr<Service>& parent,
42 const std::shared_ptr<core::dbus::Service>& service,
43 const std::shared_ptr<core::dbus::Object>& object,
44 const std::string& uuid = std::string{});
45
47
48 virtual std::string uuid() const;
49 virtual void reconnect();
50 virtual void abandon();
51
52 virtual std::shared_ptr<TrackList> track_list();
53 virtual PlayerKey key() const;
54
55 virtual video::Sink::Ptr create_gl_texture_video_sink(std::uint32_t texture_id);
56
57 virtual bool open_uri(const Track::UriType& uri);
58 virtual bool open_uri(const Track::UriType& uri, const Player::HeadersType& headers);
59 virtual void next();
60 virtual void previous();
61 virtual void play();
62 virtual void pause();
63 virtual void seek_to(const std::chrono::microseconds& offset);
64 virtual void stop();
65
66 virtual const core::Property<bool>& can_play() const;
67 virtual const core::Property<bool>& can_pause() const;
68 virtual const core::Property<bool>& can_seek() const;
69 virtual const core::Property<bool>& can_go_previous() const;
70 virtual const core::Property<bool>& can_go_next() const;
71 virtual const core::Property<bool>& is_video_source() const;
72 virtual const core::Property<bool>& is_audio_source() const;
73 virtual const core::Property<PlaybackStatus>& playback_status() const;
74 virtual const core::Property<AVBackend::Backend>& backend() const;
75 virtual const core::Property<LoopStatus>& loop_status() const;
76 virtual const core::Property<PlaybackRate>& playback_rate() const;
77 virtual const core::Property<bool>& shuffle() const;
78 virtual const core::Property<Track::MetaData>& meta_data_for_current_track() const;
79 virtual const core::Property<Volume>& volume() const;
80 virtual const core::Property<PlaybackRate>& minimum_playback_rate() const;
81 virtual const core::Property<PlaybackRate>& maximum_playback_rate() const;
82 virtual const core::Property<int64_t>& position() const;
83 virtual const core::Property<int64_t>& duration() const;
84 virtual const core::Property<AudioStreamRole>& audio_stream_role() const;
85 virtual const core::Property<Orientation>& orientation() const;
86 virtual const core::Property<Lifetime>& lifetime() const;
87
88 virtual core::Property<LoopStatus>& loop_status();
89 virtual core::Property<PlaybackRate>& playback_rate();
90 virtual core::Property<bool>& shuffle();
91 virtual core::Property<Volume>& volume();
92 virtual core::Property<AudioStreamRole>& audio_stream_role();
93 virtual core::Property<Lifetime>& lifetime();
94
95 virtual const core::Signal<int64_t>& seeked_to() const;
96 virtual const core::Signal<void>& about_to_finish() const;
97 virtual const core::Signal<void>& end_of_stream() const;
98 virtual core::Signal<PlaybackStatus>& playback_status_changed();
99 virtual const core::Signal<video::Dimensions>& video_dimension_changed() const;
100 virtual const core::Signal<Error>& error() const;
101 virtual const core::Signal<int>& buffering_changed() const;
102
103 private:
104 struct Private;
105 std::unique_ptr<Private> d;
106};
107}
108}
109}
110
111#endif // CORE_UBUNTU_MEDIA_PLAYER_STUB_H_
virtual const core::Signal< int > & buffering_changed() const
virtual const core::Property< PlaybackRate > & playback_rate() const
virtual const core::Property< bool > & can_go_next() const
virtual bool open_uri(const Track::UriType &uri)
virtual const core::Property< Orientation > & orientation() const
virtual const core::Property< Track::MetaData > & meta_data_for_current_track() const
virtual const core::Signal< video::Dimensions > & video_dimension_changed() const
virtual const core::Property< int64_t > & position() const
virtual const core::Property< bool > & can_go_previous() const
virtual void seek_to(const std::chrono::microseconds &offset)
virtual const core::Property< bool > & can_play() const
virtual const core::Property< Lifetime > & lifetime() const
PlayerStub(const std::shared_ptr< Service > &parent, const std::shared_ptr< core::dbus::Service > &service, const std::shared_ptr< core::dbus::Object > &object, const std::string &uuid=std::string{})
virtual PlayerKey key() const
virtual std::shared_ptr< TrackList > track_list()
virtual core::Property< Volume > & volume()
virtual bool open_uri(const Track::UriType &uri, const Player::HeadersType &headers)
virtual video::Sink::Ptr create_gl_texture_video_sink(std::uint32_t texture_id)
virtual core::Property< bool > & shuffle()
virtual const core::Property< bool > & is_video_source() const
virtual const core::Signal< Error > & error() const
virtual const core::Property< PlaybackRate > & minimum_playback_rate() const
virtual const core::Property< PlaybackRate > & maximum_playback_rate() const
virtual core::Property< PlaybackRate > & playback_rate()
virtual const core::Property< AVBackend::Backend > & backend() const
virtual core::Signal< PlaybackStatus > & playback_status_changed()
virtual const core::Property< AudioStreamRole > & audio_stream_role() const
virtual core::Property< AudioStreamRole > & audio_stream_role()
virtual core::Property< Lifetime > & lifetime()
virtual const core::Property< bool > & is_audio_source() const
virtual const core::Signal< int64_t > & seeked_to() const
virtual std::string uuid() const
virtual const core::Property< bool > & can_seek() const
virtual core::Property< LoopStatus > & loop_status()
virtual const core::Signal< void > & about_to_finish() const
virtual const core::Property< Volume > & volume() const
virtual const core::Property< PlaybackStatus > & playback_status() const
virtual const core::Property< bool > & shuffle() const
virtual const core::Property< bool > & can_pause() const
virtual const core::Property< LoopStatus > & loop_status() const
virtual const core::Signal< void > & end_of_stream() const
virtual const core::Property< int64_t > & duration() const
std::map< std::string, std::string > HeadersType
Definition: player.h:65
std::string UriType
Definition: track.h:40
Definition: player.h:34
std::shared_ptr< Sink > Ptr
To save us some typing.
Definition: sink.h:39