Music Hub  ..
A session-wide music playback service
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
player_stub.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2013 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  */
18 
19 #ifndef CORE_UBUNTU_MEDIA_PLAYER_STUB_H_
20 #define CORE_UBUNTU_MEDIA_PLAYER_STUB_H_
21 
22 #include <core/media/player.h>
23 
24 #include <core/dbus/stub.h>
25 
26 #include <memory>
27 
28 namespace core
29 {
30 namespace ubuntu
31 {
32 namespace media
33 {
34 class Service;
35 
36 class PlayerStub : public core::dbus::Stub<Player>
37 {
38  public:
39  explicit PlayerStub(
40  const std::shared_ptr<Service>& parent,
41  const core::dbus::types::ObjectPath& object);
42 
43  ~PlayerStub();
44 
45  virtual std::shared_ptr<TrackList> track_list();
46  virtual PlayerKey key() const;
47 
48  virtual bool open_uri(const Track::UriType& uri);
49  virtual void create_video_sink(uint32_t texture_id);
50  virtual GLConsumerWrapperHybris gl_consumer() const;
51  virtual void next();
52  virtual void previous();
53  virtual void play();
54  virtual void pause();
55  virtual void seek_to(const std::chrono::microseconds& offset);
56  virtual void stop();
57 
58  virtual void set_frame_available_callback(FrameAvailableCb cb, void *context);
59  virtual void set_playback_complete_callback(PlaybackCompleteCb cb, void *context);
60 
61  virtual const core::Property<bool>& can_play() const;
62  virtual const core::Property<bool>& can_pause() const;
63  virtual const core::Property<bool>& can_seek() const;
64  virtual const core::Property<bool>& can_go_previous() const;
65  virtual const core::Property<bool>& can_go_next() const;
66  virtual const core::Property<bool>& is_video_source() const;
67  virtual const core::Property<bool>& is_audio_source() const;
68  virtual const core::Property<PlaybackStatus>& playback_status() const;
69  virtual const core::Property<LoopStatus>& loop_status() const;
70  virtual const core::Property<PlaybackRate>& playback_rate() const;
71  virtual const core::Property<bool>& is_shuffle() const;
72  virtual const core::Property<Track::MetaData>& meta_data_for_current_track() const;
73  virtual const core::Property<Volume>& volume() const;
74  virtual const core::Property<PlaybackRate>& minimum_playback_rate() const;
75  virtual const core::Property<PlaybackRate>& maximum_playback_rate() const;
76  virtual const core::Property<uint64_t>& position() const;
77  virtual const core::Property<uint64_t>& duration() const;
78 
79  virtual core::Property<LoopStatus>& loop_status();
80  virtual core::Property<PlaybackRate>& playback_rate();
81  virtual core::Property<bool>& is_shuffle();
82  virtual core::Property<Volume>& volume();
83 
84  virtual const core::Signal<uint64_t>& seeked_to() const;
85  virtual const core::Signal<void>& end_of_stream() const;
86  virtual core::Signal<PlaybackStatus>& playback_status_changed();
87 
88  private:
89  struct Private;
90  std::unique_ptr<Private> d;
91  std::thread worker;
92 };
93 }
94 }
95 }
96 
97 #endif // CORE_UBUNTU_MEDIA_PLAYER_STUB_H_
virtual void create_video_sink(uint32_t texture_id)
virtual const core::Property< bool > & is_video_source() const
virtual const core::Signal< void > & end_of_stream() const
virtual const core::Property< bool > & is_audio_source() const
virtual const core::Property< bool > & can_pause() const
virtual const core::Property< Volume > & volume() const
virtual void set_playback_complete_callback(PlaybackCompleteCb cb, void *context)
virtual const core::Property< bool > & can_play() const
virtual GLConsumerWrapperHybris gl_consumer() const
PlayerStub(const std::shared_ptr< Service > &parent, const core::dbus::types::ObjectPath &object)
virtual const core::Signal< uint64_t > & seeked_to() const
virtual const core::Property< bool > & can_go_next() const
virtual const core::Property< Track::MetaData > & meta_data_for_current_track() const
virtual const core::Property< uint64_t > & duration() const
virtual const core::Property< bool > & is_shuffle() const
virtual core::Signal< PlaybackStatus > & playback_status_changed()
virtual const core::Property< PlaybackStatus > & playback_status() const
virtual const core::Property< uint64_t > & position() const
virtual PlayerKey key() const
virtual const core::Property< PlaybackRate > & minimum_playback_rate() const
virtual const core::Property< bool > & can_seek() const
virtual void set_frame_available_callback(FrameAvailableCb cb, void *context)
virtual bool open_uri(const Track::UriType &uri)
std::string UriType
Definition: track.h:40
virtual void seek_to(const std::chrono::microseconds &offset)
virtual std::shared_ptr< TrackList > track_list()
virtual const core::Property< PlaybackRate > & playback_rate() const
virtual const core::Property< bool > & can_go_previous() const
virtual const core::Property< PlaybackRate > & maximum_playback_rate() const
virtual const core::Property< LoopStatus > & loop_status() const