diff options
author | Ling Hu <ling.hu@nokia.com> | 2011-10-14 10:36:49 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-10-17 06:02:10 +0200 |
commit | 9011296e65972f28db10822a3825e6890216482e (patch) | |
tree | a18f3ac0777184ebd1dfd5de721b021d57b0e6f1 | |
parent | d414247afecf2d2bad4cce47813099c515005e3e (diff) | |
download | qtmultimedia-9011296e65972f28db10822a3825e6890216482e.tar.gz |
Init mediaobject at classBegin rather than componentComplete
Since we use an explicit backgroundaudio class,
there is no need to wait for other property to determine
the mediaobject type. So it is better to init the mediaobject
at classBegin to prevent being accessed before mediaobject initialized.
Change-Id: Ia55b8b4c1ab70cc0acbf6f49bcb3e20bdb813a88
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
-rw-r--r-- | src/imports/multimedia/qdeclarativebackgroundaudio.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/imports/multimedia/qdeclarativebackgroundaudio.cpp b/src/imports/multimedia/qdeclarativebackgroundaudio.cpp index dee32420d..cd163d862 100644 --- a/src/imports/multimedia/qdeclarativebackgroundaudio.cpp +++ b/src/imports/multimedia/qdeclarativebackgroundaudio.cpp @@ -44,10 +44,6 @@ void QDeclarativeBackgroundAudio::classBegin() { -} - -void QDeclarativeBackgroundAudio::componentComplete() -{ setObject(this, Q_MEDIASERVICE_BACKGROUNDMEDIAPLAYER); if (m_mediaService) { m_backgroundPlaybackControl = @@ -56,15 +52,21 @@ void QDeclarativeBackgroundAudio::componentComplete() if (m_backgroundPlaybackControl) { connect(m_backgroundPlaybackControl, SIGNAL(acquired()), this, SIGNAL(acquiredChanged())); connect(m_backgroundPlaybackControl, SIGNAL(lost()), this, SIGNAL(acquiredChanged())); - if (!m_contextId.isEmpty()) - m_backgroundPlaybackControl->setContextId(m_contextId); } else { qWarning("can not get QMediaBackgroundPlaybackControl!"); } } else { qWarning("Unable to get any background mediaplayer!"); } - QDeclarativeMediaBase::componentComplete(); + emit mediaObjectChanged(); + + //Note: we are not calling QDeclarativeAudio::classBegin here, + //otherwise there will be conflict for setObject(). +} + +void QDeclarativeBackgroundAudio::componentComplete() +{ + QDeclarativeAudio::componentComplete(); } QDeclarativeBackgroundAudio::QDeclarativeBackgroundAudio(QObject *parent) |