QMediaPlayer frontend: changes to playlist support.

Allow to load playlists using setMedia().
Use QNetworkMediaPlaylistProvider for playlist parsing.
Updated unit tests.

Change-Id: If4dba07be8b2e8a9e9549d5bed58e552dfb958b7
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
This commit is contained in:
Lev Zelenskiy
2012-03-09 09:53:21 +10:00
committed by Qt by Nokia
parent 2ebea05283
commit 2c034beab5
9 changed files with 407 additions and 443 deletions

View File

@@ -57,7 +57,7 @@
#include "qmediaplaylistcontrol_p.h"
#include "qmediaplayer.h"
#include "qmediaplayercontrol.h"
#include "qlocalmediaplaylistprovider_p.h"
#include "qmedianetworkplaylistprovider_p.h"
#include "qmediaobject_p.h"
#include <QtCore/qdebug.h>
@@ -86,7 +86,7 @@ public:
QMediaPlaylistPrivate()
:mediaObject(0),
control(0),
localPlaylistControl(0),
networkPlaylistControl(0),
error(QMediaPlaylist::NoError)
{
}
@@ -105,7 +105,7 @@ public:
{
Q_Q(QMediaPlaylist);
mediaObject = 0;
if (control != localPlaylistControl)
if (control != networkPlaylistControl)
control = 0;
q->setMediaObject(0);
}
@@ -115,7 +115,7 @@ public:
QMediaPlaylistControl *control;
QMediaPlaylistProvider *playlist() const { return control->playlistProvider(); }
QMediaPlaylistControl *localPlaylistControl;
QMediaPlaylistControl *networkPlaylistControl;
bool readItems(QMediaPlaylistReader *reader);
bool writeItems(QMediaPlaylistWriter *writer);
@@ -127,14 +127,14 @@ public:
};
class QLocalMediaPlaylistControl : public QMediaPlaylistControl
class QMediaNetworkPlaylistControl : public QMediaPlaylistControl
{
Q_OBJECT
public:
QLocalMediaPlaylistControl(QObject *parent)
QMediaNetworkPlaylistControl(QObject *parent)
:QMediaPlaylistControl(parent)
{
QMediaPlaylistProvider *playlist = new QLocalMediaPlaylistProvider(this);
QMediaPlaylistProvider *playlist = new QMediaNetworkPlaylistProvider(this);
m_navigator = new QMediaPlaylistNavigator(playlist,this);
m_navigator->setPlaybackMode(QMediaPlaylist::Sequential);
@@ -143,7 +143,7 @@ public:
connect(m_navigator, SIGNAL(playbackModeChanged(QMediaPlaylist::PlaybackMode)), SIGNAL(playbackModeChanged(QMediaPlaylist::PlaybackMode)));
}
virtual ~QLocalMediaPlaylistControl() {};
virtual ~QMediaNetworkPlaylistControl() {};
QMediaPlaylistProvider* playlistProvider() const { return m_navigator->playlist(); }
bool setPlaylistProvider(QMediaPlaylistProvider *mediaPlaylist)