summaryrefslogtreecommitdiffstats
path: root/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp')
-rw-r--r--plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp231
1 files changed, 39 insertions, 192 deletions
diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp
index cb7b556867..6b88198706 100644
--- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp
+++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp
@@ -1,4 +1,3 @@
-
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
@@ -40,40 +39,27 @@
**
****************************************************************************/
+#include <QtCore/QDir>
+#include <QtCore/QUrl>
#include "s60mediaplayercontrol.h"
#include "s60mediaplayersession.h"
#include "s60mmtrace.h"
-#include <QtCore/qdir.h>
-#include <QtCore/qurl.h>
-#include <QtCore/qdebug.h>
-
-/*!
- Constructs a new media player control with the given \a parent.
-*/
-
S60MediaPlayerControl::S60MediaPlayerControl(S60MediaPlayerService *service)
- : QMediaPlayerControl(service),
- m_service(service),
- m_session(NULL),
- m_stream(NULL)
+ : QMediaPlayerControl(service)
+ , m_service(service)
+ , m_session(0)
+ , m_stream(0)
+ , m_mediaSettings(new S60MediaSettings(this))
{
TRACE("S60MediaPlayerControl::S60MediaPlayerControl" << qtThisPtr());
}
-/*!
- Destroys a media player control.
-*/
-
S60MediaPlayerControl::~S60MediaPlayerControl()
{
TRACE("S60MediaPlayerControl::~S60MediaPlayerControl" << qtThisPtr());
}
-/*!
- \return the current playback position in milliseconds.
-*/
-
qint64 S60MediaPlayerControl::position() const
{
if (m_session)
@@ -81,10 +67,6 @@ qint64 S60MediaPlayerControl::position() const
return 0;
}
-/*!
- \return the duration of the current media in milliseconds.
-*/
-
qint64 S60MediaPlayerControl::duration() const
{
if (m_session)
@@ -92,10 +74,6 @@ qint64 S60MediaPlayerControl::duration() const
return -1;
}
-/*!
- \return the state of a player control.
-*/
-
QMediaPlayer::State S60MediaPlayerControl::state() const
{
if (m_session)
@@ -103,22 +81,13 @@ QMediaPlayer::State S60MediaPlayerControl::state() const
return QMediaPlayer::StoppedState;
}
-/*!
- \return the status of the current media.
-*/
-
QMediaPlayer::MediaStatus S60MediaPlayerControl::mediaStatus() const
{
if (m_session)
return m_session->mediaStatus();
- return m_mediaSettings.mediaStatus();
+ return m_mediaSettings->mediaStatus();
}
-/*!
- \return the buffering progress of the current media. Progress is measured in the percentage
- of the buffer filled.
-*/
-
int S60MediaPlayerControl::bufferStatus() const
{
if (m_session)
@@ -126,230 +95,132 @@ int S60MediaPlayerControl::bufferStatus() const
return 0;
}
-/*!
- \return the audio volume of a player control.
-*/
-
int S60MediaPlayerControl::volume() const
{
if (m_session)
return m_session->volume();
- return m_mediaSettings.volume();
+ return m_mediaSettings->volume();
}
-/*!
- \return the mute state of a player control.
-*/
-
bool S60MediaPlayerControl::isMuted() const
{
if (m_session)
- return m_session->isMuted();
- return m_mediaSettings.isMuted();
+ return m_session->isMuted();
+ return m_mediaSettings->isMuted();
}
-/*!
- Identifies if the current media is seekable.
-
- \return true if it possible to seek within the current media, and false otherwise.
-*/
-
bool S60MediaPlayerControl::isSeekable() const
{
if (m_session)
- return m_session->isSeekable();
+ return m_session->isSeekable();
return false;
}
-/*!
- \return 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.
-*/
-
QMediaTimeRange S60MediaPlayerControl::availablePlaybackRanges() const
{
QMediaTimeRange ranges;
-
- if(m_session && m_session->isSeekable())
+ if (m_session && m_session->isSeekable())
ranges.addInterval(0, m_session->duration());
-
return ranges;
}
-/*!
- \return the rate of playback.
-*/
-
qreal S60MediaPlayerControl::playbackRate() const
{
- return m_mediaSettings.playbackRate();
+ return m_mediaSettings->playbackRate();
}
-/*!
- Sets the \a rate of playback.
-*/
-
void S60MediaPlayerControl::setPlaybackRate(qreal rate)
{
TRACE("S60MediaPlayerControl::setPlaybackRate" << qtThisPtr() << "rate" << rate);
-
- //getting the current playbackrate
- qreal currentPBrate = m_mediaSettings.playbackRate();
- //checking if we need to change the Playback rate
- if (!qFuzzyCompare(currentPBrate,rate))
+ qreal currentRate = m_mediaSettings->playbackRate();
+ if (!qFuzzyCompare(currentRate, rate))
{
- if(m_session)
+ if (m_session)
m_session->setPlaybackRate(rate);
-
- m_mediaSettings.setPlaybackRate(rate);
+ m_mediaSettings->setPlaybackRate(rate);
}
}
-/*!
- Sets the playback \a pos of the current media. This will initiate a seek and it may take
- some time for playback to reach the position set.
-*/
-
void S60MediaPlayerControl::setPosition(qint64 pos)
{
TRACE("S60MediaPlayerControl::setPosition" << qtThisPtr() << "pos" << pos);
-
if (m_session)
m_session->setPosition(pos);
}
-/*!
- Starts playback of the current media.
-
- If successful the player control will immediately enter the \l {QMediaPlayer::PlayingState}
- {playing} state.
-*/
-
void S60MediaPlayerControl::play()
{
TRACE("S60MediaPlayerControl::play" << qtThisPtr());
-
if (m_session)
m_session->play();
}
-/*!
- Pauses playback of the current media.
-
- If sucessful the player control will immediately enter the \l {QMediaPlayer::PausedState}
- {paused} state.
-*/
-
void S60MediaPlayerControl::pause()
{
TRACE("S60MediaPlayerControl::pause" << qtThisPtr());
-
if (m_session)
m_session->pause();
}
-/*!
- Stops playback of the current media.
-
- If successful the player control will immediately enter the \l {QMediaPlayer::StoppedState}
- {stopped} state.
-*/
-
void S60MediaPlayerControl::stop()
{
TRACE("S60MediaPlayerControl::stop" << qtThisPtr());
-
if (m_session)
m_session->stop();
}
-/*!
- Sets the audio \a volume of a player control.
-*/
-
void S60MediaPlayerControl::setVolume(int volume)
{
int boundVolume = qBound(0, volume, 100);
- if (boundVolume == m_mediaSettings.volume())
+ if (boundVolume == m_mediaSettings->volume())
return;
-
TRACE("S60MediaPlayerControl::setVolume" << qtThisPtr()
<< "volume" << volume << "boundVolume" << boundVolume);
-
- m_mediaSettings.setVolume(boundVolume);
-
+ m_mediaSettings->setVolume(boundVolume);
if (m_session)
m_session->setVolume(boundVolume);
}
-/*!
- Sets the \a muted state of a player control.
-*/
-
void S60MediaPlayerControl::setMuted(bool muted)
{
- if (m_mediaSettings.isMuted() == muted)
+ if (m_mediaSettings->isMuted() == muted)
return;
-
TRACE("S60MediaPlayerControl::setMuted" << qtThisPtr() << "muted" << muted);
-
- m_mediaSettings.setMuted(muted);
-
+ m_mediaSettings->setMuted(muted);
if (m_session)
m_session->setMuted(muted);
}
-/*!
- * \return the current media source.
-*/
-
QMediaContent S60MediaPlayerControl::media() const
{
return m_media;
}
-/*!
- \return the current media stream. This is only a valid if a stream was passed to setMedia().
-
- \sa setMedia()
-*/
-
const QIODevice *S60MediaPlayerControl::mediaStream() const
{
return m_stream;
}
-/*!
- Sets the current \a source 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.
-*/
-
void S60MediaPlayerControl::setMedia(const QMediaContent &source, QIODevice *stream)
{
TRACE("S60MediaPlayerControl::setMedia" << qtThisPtr()
<< "source" << source.canonicalUrl().toString());
Q_UNUSED(stream)
- if (m_session && (m_media == source)) {
+ if (m_session && (m_media == source)&& !source.canonicalUrl().isEmpty()) {
if (m_session->isStreaming())
m_session->load(source);
} else {
+ if (!source.canonicalUrl().isEmpty()) {
delete m_session;
m_session = 0;
m_session = m_service->createPlayerSession(source);
+ }
QMediaPlayer::MediaStatus mediaStatus = QMediaPlayer::NoMedia;
if (m_session && !source.canonicalUrl().isEmpty()) {
m_session->load(source);
mediaStatus = m_session->mediaStatus();
}
- m_mediaSettings.setMediaStatus(mediaStatus);
+ m_mediaSettings->setMediaStatus(mediaStatus);
}
emit stateChanged(QMediaPlayer::StoppedState);
if (m_media != source) {
@@ -358,42 +229,32 @@ void S60MediaPlayerControl::setMedia(const QMediaContent &source, QIODevice *str
}
}
-/*!
- * \return media player session.
-*/
S60MediaPlayerSession* S60MediaPlayerControl::session()
{
return m_session;
}
-/*!
- * Sets \a output as a VideoOutput.
-*/
-
void S60MediaPlayerControl::setVideoOutput(QObject *output)
{
TRACE("S60MediaPlayerControl::setVideoOutput" << qtThisPtr()
<< "output" << output);
- m_mediaSettings.setVideoOutput(output);
+ m_mediaSettings->setVideoOutput(output);
if (m_session)
m_session->setVideoRenderer(output);
}
-/*!
- * \return TRUE if Audio available or else FALSE.
-*/
+QObject *S60MediaPlayerControl::videoOutput() const
+{
+ return m_mediaSettings->videoOutput();
+}
bool S60MediaPlayerControl::isAudioAvailable() const
{
if (m_session)
- return m_session->isAudioAvailable();
+ return m_session->isAudioAvailable();
return false;
}
-/*!
- * \return TRUE if Video available or else FALSE.
-*/
-
bool S60MediaPlayerControl::isVideoAvailable() const
{
if (m_session)
@@ -401,36 +262,22 @@ bool S60MediaPlayerControl::isVideoAvailable() const
return false;
}
-/*!
- * \return media settings.
- *
- * Media Settings include volume, muted, playbackRate, mediaStatus, audioEndpoint.
-*/
-const S60MediaSettings& S60MediaPlayerControl::mediaControlSettings() const
+const S60MediaSettings &S60MediaPlayerControl::mediaControlSettings() const
{
- return m_mediaSettings;
+ return *m_mediaSettings;
}
-/*!
- * Set the audio endpoint to \a name.
-*/
-
-void S60MediaPlayerControl::setAudioEndpoint(const QString& name)
+void S60MediaPlayerControl::setAudioEndpoint(const QString &name)
{
TRACE("S60MediaPlayerControl::setAudioEndpoint" << qtThisPtr()
<< "name" << name);
-
- m_mediaSettings.setAudioEndpoint(name);
+ m_mediaSettings->setAudioEndpoint(name);
}
-/*!
- * Sets media type \a type as Unknown, Video, Audio, Data.
-*/
-
-void S60MediaPlayerControl::setMediaType(S60MediaSettings::TMediaType type)
+void S60MediaPlayerControl::setMediaType(S60MediaSettings::MediaType type)
{
TRACE("S60MediaPlayerControl::setMediaType" << qtThisPtr()
<< "type" << type);
-
- m_mediaSettings.setMediaType(type);
+ m_mediaSettings->setMediaType(type);
}
+