| /**************************************************************************** |
| ** |
| ** Copyright (C) 2016 The Qt Company Ltd. |
| ** Contact: https://www.qt.io/licensing/ |
| ** |
| ** This file is part of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:LGPL$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see https://www.qt.io/terms-conditions. For further |
| ** information use the contact form at https://www.qt.io/contact-us. |
| ** |
| ** GNU Lesser General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU Lesser |
| ** General Public License version 3 as published by the Free Software |
| ** Foundation and appearing in the file LICENSE.LGPL3 included in the |
| ** packaging of this file. Please review the following information to |
| ** ensure the GNU Lesser General Public License version 3 requirements |
| ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. |
| ** |
| ** GNU General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU |
| ** General Public License version 2.0 or (at your option) the GNU General |
| ** Public license version 3 or any later version approved by the KDE Free |
| ** Qt Foundation. The licenses are as published by the Free Software |
| ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 |
| ** included in the packaging of this file. Please review the following |
| ** information to ensure the GNU General Public License requirements will |
| ** be met: https://www.gnu.org/licenses/gpl-2.0.html and |
| ** https://www.gnu.org/licenses/gpl-3.0.html. |
| ** |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| #include "qmediaplayercontrol.h" |
| #include "qmediacontrol_p.h" |
| #include "qmediaplayer.h" |
| |
| QT_BEGIN_NAMESPACE |
| |
| |
| /*! |
| \class QMediaPlayerControl |
| \obsolete |
| \inmodule QtMultimedia |
| |
| |
| \ingroup multimedia_control |
| |
| |
| \brief The QMediaPlayerControl class provides access to the media playing |
| functionality of a QMediaService. |
| |
| If a QMediaService can play media is will implement QMediaPlayerControl. |
| This control provides a means to set the \l {setMedia()}{media} to play, |
| \l {play()}{start}, \l {pause()} {pause} and \l {stop()}{stop} playback, |
| \l {setPosition()}{seek}, and control the \l {setVolume()}{volume}. |
| It also provides feedback on the \l {duration()}{duration} of the media, |
| the current \l {position()}{position}, and \l {bufferStatus()}{buffering} |
| progress. |
| |
| The functionality provided by this control is exposed to application |
| code through the QMediaPlayer class. |
| |
| The interface name of QMediaPlayerControl is \c org.qt-project.qt.mediaplayercontrol/5.0 as |
| defined in QMediaPlayerControl_iid. |
| |
| \sa QMediaService::requestControl(), QMediaPlayer |
| */ |
| |
| /*! |
| \macro QMediaPlayerControl_iid |
| |
| \c org.qt-project.qt.mediaplayercontrol/5.0 |
| |
| Defines the interface name of the QMediaPlayerControl class. |
| |
| \relates QMediaPlayerControl |
| */ |
| |
| /*! |
| Destroys a media player control. |
| */ |
| QMediaPlayerControl::~QMediaPlayerControl() |
| { |
| } |
| |
| /*! |
| Constructs a new media player control with the given \a parent. |
| */ |
| QMediaPlayerControl::QMediaPlayerControl(QObject *parent): |
| QMediaControl(*new QMediaControlPrivate, parent) |
| { |
| } |
| |
| /*! |
| \fn QMediaPlayerControl::state() const |
| |
| Returns the state of a player control. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::stateChanged(QMediaPlayer::State newState) |
| |
| Signals that the state of a player control has changed to \a newState. |
| |
| \sa state() |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::mediaStatus() const |
| |
| Returns the status of the current media. |
| */ |
| |
| |
| /*! |
| \fn QMediaPlayerControl::mediaStatusChanged(QMediaPlayer::MediaStatus status) |
| |
| Signals that the \a status of the current media has changed. |
| |
| \sa mediaStatus() |
| */ |
| |
| |
| /*! |
| \fn QMediaPlayerControl::duration() const |
| |
| Returns the duration of the current media in milliseconds. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::durationChanged(qint64 duration) |
| |
| Signals that the \a duration of the current media has changed. |
| |
| \sa duration() |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::position() const |
| |
| Returns the current playback position in milliseconds. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::setPosition(qint64 position) |
| |
| Sets the playback \a position of the current media. This will initiate a seek and it may take |
| some time for playback to reach the position set. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::positionChanged(qint64 position) |
| |
| Signals the playback \a position has changed. |
| |
| This is only emitted in when there has been a discontinous change in the playback postion, such |
| as a seek or the position being reset. |
| |
| \sa position() |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::volume() const |
| |
| Returns the audio volume of a player control. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::setVolume(int volume) |
| |
| Sets the audio \a volume of a player control. |
| |
| The volume is scaled linearly, ranging from \c 0 (silence) to \c 100 (full volume). |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::volumeChanged(int volume) |
| |
| Signals the audio \a volume of a player control has changed. |
| |
| \sa volume() |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::isMuted() const |
| |
| Returns the mute state of a player control. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::setMuted(bool mute) |
| |
| Sets the \a mute state of a player control. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::mutedChanged(bool mute) |
| |
| Signals a change in the \a mute status of a player control. |
| |
| \sa isMuted() |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::bufferStatus() const |
| |
| Returns the buffering progress of the current media. Progress is measured in the percentage |
| of the buffer filled. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::bufferStatusChanged(int percentFilled) |
| |
| Signal the amount of the local buffer filled as a percentage by \a percentFilled. |
| |
| \sa bufferStatus() |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::isAudioAvailable() const |
| |
| Identifies if there is audio output available for the current media. |
| |
| Returns true if audio output is available and false otherwise. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::audioAvailableChanged(bool audioAvailable) |
| |
| Signals that there has been a change in the availability of audio output \a audioAvailable. |
| |
| \sa isAudioAvailable() |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::isVideoAvailable() const |
| |
| Identifies if there is video output available for the current media. |
| |
| Returns true if video output is available and false otherwise. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::videoAvailableChanged(bool videoAvailable) |
| |
| Signal that the availability of visual content has changed to \a videoAvailable. |
| |
| \sa isVideoAvailable() |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::isSeekable() const |
| |
| Identifies if the current media is seekable. |
| |
| Returns true if it possible to seek within the current media, and false otherwise. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::seekableChanged(bool seekable) |
| |
| Signals that the \a seekable state of a player control has changed. |
| |
| \sa isSeekable() |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::availablePlaybackRanges() const |
| |
| Returns a range of times in milliseconds that can be played back. |
| |
| Usually for local files this is a continuous interval equal to [0..duration()] |
| or an empty time range if seeking is not supported, but for network sources |
| it refers to the buffered parts of the media. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::availablePlaybackRangesChanged(const QMediaTimeRange &ranges) |
| |
| Signals that the available media playback \a ranges have changed. |
| |
| \sa QMediaPlayerControl::availablePlaybackRanges() |
| */ |
| |
| /*! |
| \fn qreal QMediaPlayerControl::playbackRate() const |
| |
| Returns the rate of playback. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::setPlaybackRate(qreal rate) |
| |
| Sets the \a rate of playback. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::media() const |
| |
| Returns the current media source. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::mediaStream() const |
| |
| Returns the current media stream. This is only a valid if a stream was passed to setMedia(). |
| |
| \sa setMedia() |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::setMedia(const QMediaContent &media, QIODevice *stream) |
| |
| Sets the current \a media source. If a \a stream is supplied; data will be read from that |
| instead of attempting to resolve the media source. The media source may still be used to |
| supply media information such as mime type. |
| |
| Setting the media to a null QMediaContent will cause the control to discard all |
| information relating to the current media source and to cease all I/O operations related |
| to that media. |
| |
| Qt resource files are never passed as is. If the service supports |
| QMediaServiceProviderHint::StreamPlayback, a \a stream is supplied, pointing to an opened |
| QFile. Otherwise, the resource is copied into a temporary file and \a media contains the |
| url to that file. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::mediaChanged(const QMediaContent& content) |
| |
| Signals that the current media \a content has changed. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::play() |
| |
| Starts playback of the current media. |
| |
| If successful the player control will immediately enter the \l {QMediaPlayer::PlayingState} |
| {playing} state. |
| |
| \sa state() |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::pause() |
| |
| Pauses playback of the current media. |
| |
| If successful the player control will immediately enter the \l {QMediaPlayer::PausedState} |
| {paused} state. |
| |
| \sa state(), play(), stop() |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::stop() |
| |
| Stops playback of the current media. |
| |
| If successful the player control will immediately enter the \l {QMediaPlayer::StoppedState} |
| {stopped} state. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::error(int error, const QString &errorString) |
| |
| Signals that an \a error has occurred. The \a errorString provides a more detailed explanation. |
| */ |
| |
| /*! |
| \fn QMediaPlayerControl::playbackRateChanged(qreal rate) |
| |
| Signal emitted when playback rate changes to \a rate. |
| */ |
| |
| QT_END_NAMESPACE |
| |
| #include "moc_qmediaplayercontrol.cpp" |