Removed QMediaServiceProvider parameter from media objects constructors.

QMediaServiceProvider should be removed from the public API,
to provide media objects with a custom media service.

A protected QMediaPlayer/QCamera/QRadioTuner/etc constructor
with QMediaService* parameter is a cleaner and more
flexible solution.

Change-Id: I335cce4bbebe0e548c3df338f206e7be7c93c3dd
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
This commit is contained in:
Dmytro Poplavskiy
2012-01-19 10:01:02 +10:00
committed by Qt by Nokia
parent adb2bd2cd4
commit a78a95ccd4
26 changed files with 309 additions and 371 deletions

View File

@@ -238,8 +238,9 @@ void QMediaPlayerPrivate::_q_playlistDestroyed()
control->setMedia(QMediaContent(), 0);
}
static QMediaService *playerService(QMediaPlayer::Flags flags, QMediaServiceProvider *provider)
static QMediaService *playerService(QMediaPlayer::Flags flags)
{
QMediaServiceProvider *provider = QMediaServiceProvider::defaultServiceProvider();
if (flags) {
QMediaServiceProviderHint::Features features = 0;
if (flags & QMediaPlayer::LowLatency)
@@ -259,21 +260,18 @@ static QMediaService *playerService(QMediaPlayer::Flags flags, QMediaServiceProv
/*!
Construct a QMediaPlayer that uses the playback service from \a provider,
Construct a QMediaPlayer instance
parented to \a parent and with \a flags.
If a playback service is not specified the system default will be used.
*/
QMediaPlayer::QMediaPlayer(QObject *parent, QMediaPlayer::Flags flags, QMediaServiceProvider *provider):
QMediaPlayer::QMediaPlayer(QObject *parent, QMediaPlayer::Flags flags):
QMediaObject(*new QMediaPlayerPrivate,
parent,
playerService(flags,provider))
playerService(flags))
{
Q_D(QMediaPlayer);
d->provider = provider;
d->provider = QMediaServiceProvider::defaultServiceProvider();
if (d->service == 0) {
d->error = ServiceMissingError;
} else {
@@ -322,9 +320,9 @@ QMediaPlayer::~QMediaPlayer()
if (d->service) {
if (d->control)
d->service->releaseControl(d->control);
}
d->provider->releaseService(d->service);
d->provider->releaseService(d->service);
}
}
QMediaContent QMediaPlayer::media() const