1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:LGPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU Lesser General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU Lesser
19** General Public License version 3 as published by the Free Software
20** Foundation and appearing in the file LICENSE.LGPL3 included in the
21** packaging of this file. Please review the following information to
22** ensure the GNU Lesser General Public License version 3 requirements
23** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24**
25** GNU General Public License Usage
26** Alternatively, this file may be used under the terms of the GNU
27** General Public License version 2.0 or (at your option) the GNU General
28** Public license version 3 or any later version approved by the KDE Free
29** Qt Foundation. The licenses are as published by the Free Software
30** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31** included in the packaging of this file. Please review the following
32** information to ensure the GNU General Public License requirements will
33** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34** https://www.gnu.org/licenses/gpl-3.0.html.
35**
36** $QT_END_LICENSE$
37**
38****************************************************************************/
39
40#include "qmediaplayercontrol.h"
41#include "qmediacontrol_p.h"
42#include "qmediaplayer.h"
43
44QT_BEGIN_NAMESPACE
45
46
47/*!
48 \class QMediaPlayerControl
49 \obsolete
50 \inmodule QtMultimedia
51
52
53 \ingroup multimedia_control
54
55
56 \brief The QMediaPlayerControl class provides access to the media playing
57 functionality of a QMediaService.
58
59 If a QMediaService can play media is will implement QMediaPlayerControl.
60 This control provides a means to set the \l {setMedia()}{media} to play,
61 \l {play()}{start}, \l {pause()} {pause} and \l {stop()}{stop} playback,
62 \l {setPosition()}{seek}, and control the \l {setVolume()}{volume}.
63 It also provides feedback on the \l {duration()}{duration} of the media,
64 the current \l {position()}{position}, and \l {bufferStatus()}{buffering}
65 progress.
66
67 The functionality provided by this control is exposed to application
68 code through the QMediaPlayer class.
69
70 The interface name of QMediaPlayerControl is \c org.qt-project.qt.mediaplayercontrol/5.0 as
71 defined in QMediaPlayerControl_iid.
72
73 \sa QMediaService::requestControl(), QMediaPlayer
74*/
75
76/*!
77 \macro QMediaPlayerControl_iid
78
79 \c org.qt-project.qt.mediaplayercontrol/5.0
80
81 Defines the interface name of the QMediaPlayerControl class.
82
83 \relates QMediaPlayerControl
84*/
85
86/*!
87 Destroys a media player control.
88*/
89QMediaPlayerControl::~QMediaPlayerControl()
90{
91}
92
93/*!
94 Constructs a new media player control with the given \a parent.
95*/
96QMediaPlayerControl::QMediaPlayerControl(QObject *parent):
97 QMediaControl(*new QMediaControlPrivate, parent)
98{
99}
100
101/*!
102 \fn QMediaPlayerControl::state() const
103
104 Returns the state of a player control.
105*/
106
107/*!
108 \fn QMediaPlayerControl::stateChanged(QMediaPlayer::State newState)
109
110 Signals that the state of a player control has changed to \a newState.
111
112 \sa state()
113*/
114
115/*!
116 \fn QMediaPlayerControl::mediaStatus() const
117
118 Returns the status of the current media.
119*/
120
121
122/*!
123 \fn QMediaPlayerControl::mediaStatusChanged(QMediaPlayer::MediaStatus status)
124
125 Signals that the \a status of the current media has changed.
126
127 \sa mediaStatus()
128*/
129
130
131/*!
132 \fn QMediaPlayerControl::duration() const
133
134 Returns the duration of the current media in milliseconds.
135*/
136
137/*!
138 \fn QMediaPlayerControl::durationChanged(qint64 duration)
139
140 Signals that the \a duration of the current media has changed.
141
142 \sa duration()
143*/
144
145/*!
146 \fn QMediaPlayerControl::position() const
147
148 Returns the current playback position in milliseconds.
149*/
150
151/*!
152 \fn QMediaPlayerControl::setPosition(qint64 position)
153
154 Sets the playback \a position of the current media. This will initiate a seek and it may take
155 some time for playback to reach the position set.
156*/
157
158/*!
159 \fn QMediaPlayerControl::positionChanged(qint64 position)
160
161 Signals the playback \a position has changed.
162
163 This is only emitted in when there has been a discontinous change in the playback postion, such
164 as a seek or the position being reset.
165
166 \sa position()
167*/
168
169/*!
170 \fn QMediaPlayerControl::volume() const
171
172 Returns the audio volume of a player control.
173*/
174
175/*!
176 \fn QMediaPlayerControl::setVolume(int volume)
177
178 Sets the audio \a volume of a player control.
179
180 The volume is scaled linearly, ranging from \c 0 (silence) to \c 100 (full volume).
181*/
182
183/*!
184 \fn QMediaPlayerControl::volumeChanged(int volume)
185
186 Signals the audio \a volume of a player control has changed.
187
188 \sa volume()
189*/
190
191/*!
192 \fn QMediaPlayerControl::isMuted() const
193
194 Returns the mute state of a player control.
195*/
196
197/*!
198 \fn QMediaPlayerControl::setMuted(bool mute)
199
200 Sets the \a mute state of a player control.
201*/
202
203/*!
204 \fn QMediaPlayerControl::mutedChanged(bool mute)
205
206 Signals a change in the \a mute status of a player control.
207
208 \sa isMuted()
209*/
210
211/*!
212 \fn QMediaPlayerControl::bufferStatus() const
213
214 Returns the buffering progress of the current media. Progress is measured in the percentage
215 of the buffer filled.
216*/
217
218/*!
219 \fn QMediaPlayerControl::bufferStatusChanged(int percentFilled)
220
221 Signal the amount of the local buffer filled as a percentage by \a percentFilled.
222
223 \sa bufferStatus()
224*/
225
226/*!
227 \fn QMediaPlayerControl::isAudioAvailable() const
228
229 Identifies if there is audio output available for the current media.
230
231 Returns true if audio output is available and false otherwise.
232*/
233
234/*!
235 \fn QMediaPlayerControl::audioAvailableChanged(bool audioAvailable)
236
237 Signals that there has been a change in the availability of audio output \a audioAvailable.
238
239 \sa isAudioAvailable()
240*/
241
242/*!
243 \fn QMediaPlayerControl::isVideoAvailable() const
244
245 Identifies if there is video output available for the current media.
246
247 Returns true if video output is available and false otherwise.
248*/
249
250/*!
251 \fn QMediaPlayerControl::videoAvailableChanged(bool videoAvailable)
252
253 Signal that the availability of visual content has changed to \a videoAvailable.
254
255 \sa isVideoAvailable()
256*/
257
258/*!
259 \fn QMediaPlayerControl::isSeekable() const
260
261 Identifies if the current media is seekable.
262
263 Returns true if it possible to seek within the current media, and false otherwise.
264*/
265
266/*!
267 \fn QMediaPlayerControl::seekableChanged(bool seekable)
268
269 Signals that the \a seekable state of a player control has changed.
270
271 \sa isSeekable()
272*/
273
274/*!
275 \fn QMediaPlayerControl::availablePlaybackRanges() const
276
277 Returns a range of times in milliseconds that can be played back.
278
279 Usually for local files this is a continuous interval equal to [0..duration()]
280 or an empty time range if seeking is not supported, but for network sources
281 it refers to the buffered parts of the media.
282*/
283
284/*!
285 \fn QMediaPlayerControl::availablePlaybackRangesChanged(const QMediaTimeRange &ranges)
286
287 Signals that the available media playback \a ranges have changed.
288
289 \sa QMediaPlayerControl::availablePlaybackRanges()
290*/
291
292/*!
293 \fn qreal QMediaPlayerControl::playbackRate() const
294
295 Returns the rate of playback.
296*/
297
298/*!
299 \fn QMediaPlayerControl::setPlaybackRate(qreal rate)
300
301 Sets the \a rate of playback.
302*/
303
304/*!
305 \fn QMediaPlayerControl::media() const
306
307 Returns the current media source.
308*/
309
310/*!
311 \fn QMediaPlayerControl::mediaStream() const
312
313 Returns the current media stream. This is only a valid if a stream was passed to setMedia().
314
315 \sa setMedia()
316*/
317
318/*!
319 \fn QMediaPlayerControl::setMedia(const QMediaContent &media, QIODevice *stream)
320
321 Sets the current \a media source. If a \a stream is supplied; data will be read from that
322 instead of attempting to resolve the media source. The media source may still be used to
323 supply media information such as mime type.
324
325 Setting the media to a null QMediaContent will cause the control to discard all
326 information relating to the current media source and to cease all I/O operations related
327 to that media.
328
329 Qt resource files are never passed as is. If the service supports
330 QMediaServiceProviderHint::StreamPlayback, a \a stream is supplied, pointing to an opened
331 QFile. Otherwise, the resource is copied into a temporary file and \a media contains the
332 url to that file.
333*/
334
335/*!
336 \fn QMediaPlayerControl::mediaChanged(const QMediaContent& content)
337
338 Signals that the current media \a content has changed.
339*/
340
341/*!
342 \fn QMediaPlayerControl::play()
343
344 Starts playback of the current media.
345
346 If successful the player control will immediately enter the \l {QMediaPlayer::PlayingState}
347 {playing} state.
348
349 \sa state()
350*/
351
352/*!
353 \fn QMediaPlayerControl::pause()
354
355 Pauses playback of the current media.
356
357 If successful the player control will immediately enter the \l {QMediaPlayer::PausedState}
358 {paused} state.
359
360 \sa state(), play(), stop()
361*/
362
363/*!
364 \fn QMediaPlayerControl::stop()
365
366 Stops playback of the current media.
367
368 If successful the player control will immediately enter the \l {QMediaPlayer::StoppedState}
369 {stopped} state.
370*/
371
372/*!
373 \fn QMediaPlayerControl::error(int error, const QString &errorString)
374
375 Signals that an \a error has occurred. The \a errorString provides a more detailed explanation.
376*/
377
378/*!
379 \fn QMediaPlayerControl::playbackRateChanged(qreal rate)
380
381 Signal emitted when playback rate changes to \a rate.
382*/
383
384QT_END_NAMESPACE
385
386#include "moc_qmediaplayercontrol.cpp"
387

source code of qtmultimedia/src/multimedia/controls/qmediaplayercontrol.cpp