Music Hub  ..
A session-wide music playback service
player.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2021-2022 UBports Foundation.
3  *
4  * Contact: Alberto Mardegan <mardy@users.sourceforge.net>
5  *
6  * This program is free software: you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License version 3,
8  * as published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 #ifndef LOMIRI_MEDIAHUBSERVICE_PLAYER_H
19 #define LOMIRI_MEDIAHUBSERVICE_PLAYER_H
20 
21 #include <QMap>
22 #include <QMetaType>
23 #include <QString>
24 
25 #include <cstdint>
26 #include <stdexcept>
27 
28 namespace lomiri {
29 namespace MediaHubService {
30 
31 class Service;
32 class TrackListImplementation;
33 
34 struct AVBackend
35 {
36  enum Backend
37  {
41  };
42 
47  static Backend get_backend_type();
48 };
49 
50 class Player
51 {
52 public:
53  typedef double PlaybackRate;
54  typedef double Volume;
55  typedef uint32_t PlayerKey;
56  typedef void* GLConsumerWrapperHybris;
57  typedef QMap<QString,QString> HeadersType;
58 
59  static const PlayerKey invalidKey = 0xffffffff;
60 
61  struct Client {
63  QString name; // D-Bus unique connection ID
64 
65  bool operator==(const Client &o) const {
66  return key == o.key && name == o.name;
67  }
68  };
69 
70  struct Errors
71  {
72  Errors() = delete;
73 
74  struct ExceptionBase: public std::runtime_error {
75  ExceptionBase(const QString &msg = {}):
76  std::runtime_error(msg.toStdString()) {}
77  };
78 
81  };
82 
85  };
86 
87  struct UriNotFound: public ExceptionBase {
89  };
90  };
91 
93  {
94  null,
99  };
100 
102  {
106  };
107 
114  {
119  };
120 
122  {
127  };
128 
129  enum Lifetime
130  {
133  };
134 
135  enum Error
136  {
143  };
144 };
145 
146 }
147 }
148 
149 Q_DECLARE_METATYPE(lomiri::MediaHubService::Player::Client)
150 
151 #endif // LOMIRI_MEDIAHUBSERVICE_PLAYER_H
lomiri::MediaHubService::Player::rotate180
@ rotate180
Definition: player.h:125
lomiri::MediaHubService::Player::Errors::UriNotFound
Definition: player.h:87
lomiri::MediaHubService::Player::network_error
@ network_error
Definition: player.h:140
lomiri::MediaHubService::Player::Error
Error
Definition: player.h:135
lomiri::MediaHubService::Player::paused
@ paused
Definition: player.h:97
lomiri::MediaHubService::Player::LoopStatus
LoopStatus
Definition: player.h:101
lomiri::MediaHubService::Player::rotate270
@ rotate270
Definition: player.h:126
lomiri::MediaHubService::Player::format_error
@ format_error
Definition: player.h:139
lomiri::MediaHubService::Player::alarm
@ alarm
Definition: player.h:115
lomiri::MediaHubService::Player::service_missing_error
@ service_missing_error
Definition: player.h:142
lomiri::MediaHubService::Player::alert
@ alert
Definition: player.h:116
lomiri::MediaHubService::Player::GLConsumerWrapperHybris
void * GLConsumerWrapperHybris
Definition: player.h:56
lomiri::MediaHubService::Player::Volume
double Volume
Definition: player.h:54
lomiri::MediaHubService::AVBackend::mir
@ mir
Definition: player.h:40
lomiri::MediaHubService::AVBackend
Definition: player.h:34
lomiri::MediaHubService::Player::multimedia
@ multimedia
Definition: player.h:117
lomiri::MediaHubService::AVBackend::Backend
Backend
Definition: player.h:36
lomiri::MediaHubService::Player::HeadersType
QMap< QString, QString > HeadersType
Definition: player.h:57
lomiri::MediaHubService::AVBackend::none
@ none
Definition: player.h:38
lomiri::MediaHubService::Player::rotate0
@ rotate0
Definition: player.h:123
lomiri::MediaHubService::Player::Errors
Definition: player.h:70
lomiri::MediaHubService::Player::track
@ track
Definition: player.h:104
lomiri::MediaHubService::Player::Client
Definition: player.h:61
lomiri::MediaHubService::Player::AudioStreamRole
AudioStreamRole
Definition: player.h:113
lomiri::MediaHubService::Player::PlayerKey
uint32_t PlayerKey
Definition: player.h:55
lomiri::MediaHubService::AVBackend::get_backend_type
static Backend get_backend_type()
Returns the type of audio/video decoding/encoding backend being used.
Definition: backend.cpp:28
lomiri::MediaHubService::Player::access_denied_error
@ access_denied_error
Definition: player.h:141
lomiri::MediaHubService::Player::Errors::ExceptionBase::ExceptionBase
ExceptionBase(const QString &msg={})
Definition: player.h:75
lomiri::MediaHubService::Player::Client::name
QString name
Definition: player.h:63
lomiri::MediaHubService::Player::PlaybackRate
double PlaybackRate
Definition: player.h:53
lomiri::MediaHubService::Player::invalidKey
static const PlayerKey invalidKey
Definition: player.h:59
lomiri::MediaHubService::Player::Errors::Errors
Errors()=delete
lomiri::MediaHubService::Player::Client::operator==
bool operator==(const Client &o) const
Definition: player.h:65
lomiri::MediaHubService::Player::no_error
@ no_error
Definition: player.h:137
lomiri::MediaHubService::Player::stopped
@ stopped
Definition: player.h:98
lomiri::MediaHubService::Player::Errors::ExceptionBase
Definition: player.h:74
lomiri::MediaHubService::Player::PlaybackStatus
PlaybackStatus
Definition: player.h:92
lomiri::MediaHubService::Player::Lifetime
Lifetime
Definition: player.h:129
lomiri::MediaHubService::Player::resource_error
@ resource_error
Definition: player.h:138
lomiri::MediaHubService::Player::Errors::OutOfProcessBufferStreamingNotSupported
Definition: player.h:79
lomiri::MediaHubService::Player::phone
@ phone
Definition: player.h:118
lomiri::MediaHubService::Player::ready
@ ready
Definition: player.h:95
lomiri::MediaHubService::Player::rotate90
@ rotate90
Definition: player.h:124
lomiri::MediaHubService::AVBackend::hybris
@ hybris
Definition: player.h:39
lomiri::MediaHubService::Player::resumable
@ resumable
Definition: player.h:132
lomiri
Definition: dbus_utils.h:24
lomiri::MediaHubService::Player
Definition: player.h:50
lomiri::MediaHubService::Player::normal
@ normal
Definition: player.h:131
lomiri::MediaHubService::Player::none
@ none
Definition: player.h:103
lomiri::MediaHubService::Player::playing
@ playing
Definition: player.h:96
lomiri::MediaHubService::Player::Orientation
Orientation
Definition: player.h:121
lomiri::MediaHubService::Player::Client::key
PlayerKey key
Definition: player.h:62
lomiri::MediaHubService::Player::Errors::InsufficientAppArmorPermissions
Definition: player.h:83
lomiri::MediaHubService::Player::playlist
@ playlist
Definition: player.h:105