qtmobility/tests/auto/qmediaimageviewer/tst_qmediaimageviewer.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
--- a/qtmobility/tests/auto/qmediaimageviewer/tst_qmediaimageviewer.cpp	Fri Jun 11 14:26:25 2010 +0300
+++ b/qtmobility/tests/auto/qmediaimageviewer/tst_qmediaimageviewer.cpp	Wed Jun 23 19:08:38 2010 +0300
@@ -44,20 +44,19 @@
 
 #include <QtCore/qdir.h>
 
-#include "../../../src/multimedia/qmediaimageviewer.h"
-#include "../../../src/multimedia/qmediaimageviewerservice_p.h"
-#include "../../../src/multimedia/qmediaplaylist.h"
-#include "../../../src/multimedia/qmediaservice.h"
-#include "../../../src/multimedia/qvideooutputcontrol.h"
-#include "../../../src/multimedia/qvideorenderercontrol.h"
-#include "../../../src/multimedia/qvideowidgetcontrol.h"
+#include <qmediaimageviewer.h>
+#include <qmediaimageviewerservice_p.h>
+#include <qmediaplaylist.h>
+#include <qmediaservice.h>
+#include <qvideorenderercontrol.h>
+#include <qvideowidgetcontrol.h>
 
 #include <QtCore/qfile.h>
 #include <QtNetwork/qnetworkaccessmanager.h>
 #include <QtNetwork/qnetworkreply.h>
 
-#include <QtMultimedia/qabstractvideosurface.h>
-#include <QtMultimedia/qvideosurfaceformat.h>
+#include <qabstractvideosurface.h>
+#include <qvideosurfaceformat.h>
 
 #if defined(Q_OS_SYMBIAN)
 # define TESTDATA_DIR "./tst_qmediaimageviewer_images"
@@ -82,7 +81,6 @@
     void multiplePlaylists();
     void invalidPlaylist();
     void elapsedTime();
-    void outputControl();
     void rendererControl();
 
 public:
@@ -100,7 +98,7 @@
 };
 
 Q_DECLARE_METATYPE(QMediaImageViewer::State)
-Q_DECLARE_METATYPE(QMediaImageViewer::MediaStatus);
+Q_DECLARE_METATYPE(QMediaImageViewer::MediaStatus)
 
 class QtTestVideoSurface : public QAbstractVideoSurface
 {
@@ -533,7 +531,7 @@
     QCOMPARE(stateSpy.count(), 0);
 
     QMediaPlaylist playlist;
-    playlist.setMediaObject(&viewer);
+    viewer.setPlaylist(&playlist);
 
     // Empty playlist so can't exit stopped state.
     viewer.play();
@@ -704,7 +702,7 @@
     QMediaImageViewer viewer;
 
     QMediaPlaylist *playlist1 = new QMediaPlaylist;
-    playlist1->setMediaObject(&viewer);
+    viewer.setPlaylist(playlist1);
     playlist1->addMedia(imageMedia);
     playlist1->addMedia(posterMedia);
 
@@ -713,14 +711,9 @@
 
     QMediaPlaylist *playlist2 = new QMediaPlaylist;
 
-    QTest::ignoreMessage(QtWarningMsg,
-                         "QMediaImageViewer::bind(): already bound to a playlist, detaching the current one");
-    playlist2->setMediaObject(&viewer);
+    viewer.setPlaylist(playlist2);
     playlist2->addMedia(coverArtMedia);
 
-    //the first playlist is detached
-    QVERIFY(playlist1->mediaObject() == 0);
-
     QVERIFY(viewer.media().isNull());
 
     playlist2->setCurrentIndex(0);
@@ -730,7 +723,7 @@
     QVERIFY(viewer.media().isNull());
     QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
 
-    playlist1->setMediaObject(&viewer);
+    viewer.setPlaylist(playlist1);
     playlist1->setCurrentIndex(0);
     QCOMPARE(viewer.media(), imageMedia);
 
@@ -757,7 +750,7 @@
     QSignalSpy statusSpy(&viewer, SIGNAL(mediaStatusChanged(QMediaImageViewer::MediaStatus)));
 
     QMediaPlaylist playlist;
-    playlist.setMediaObject(&viewer);
+    viewer.setPlaylist(&playlist);
     playlist.addMedia(invalidMedia);
     playlist.addMedia(imageMedia);
     playlist.addMedia(invalidMedia);
@@ -819,7 +812,7 @@
 
 
     QMediaPlaylist playlist;
-    playlist.setMediaObject(&viewer);
+    viewer.setPlaylist(&playlist);
     playlist.addMedia(imageMedia);
 
     QCOMPARE(viewer.elapsedTime(), 0);
@@ -888,35 +881,6 @@
 
 }
 
-void tst_QMediaImageViewer::outputControl()
-{
-    QMediaImageViewer viewer;
-
-    QMediaService *service = viewer.service();
-    if (service == 0)
-        QSKIP("Image viewer object has no service.", SkipSingle);
-
-    QVideoOutputControl *outputControl = qobject_cast<QVideoOutputControl *>(
-            service->control(QVideoOutputControl_iid));
-
-    QVERIFY(outputControl != 0);
-
-    QVERIFY(outputControl->availableOutputs().contains(QVideoOutputControl::RendererOutput));
-    QVERIFY(!outputControl->availableOutputs().contains(QVideoOutputControl::WidgetOutput));
-    QVERIFY(!outputControl->availableOutputs().contains(QVideoOutputControl::UserOutput));
-
-    QCOMPARE(outputControl->output(), QVideoOutputControl::NoOutput);
-
-    outputControl->setOutput(QVideoOutputControl::WidgetOutput);
-    QCOMPARE(outputControl->output(), QVideoOutputControl::NoOutput);
-
-    outputControl->setOutput(QVideoOutputControl::RendererOutput);
-    QCOMPARE(outputControl->output(), QVideoOutputControl::RendererOutput);
-
-    outputControl->setOutput(QVideoOutputControl::UserOutput);
-    QCOMPARE(outputControl->output(), QVideoOutputControl::NoOutput);
-}
-
 void tst_QMediaImageViewer::rendererControl()
 {
     QtTestVideoSurface surfaceA;
@@ -929,20 +893,15 @@
     if (service == 0)
         QSKIP("Image viewer object has no service.", SkipSingle);
 
-    QVideoOutputControl *outputControl = qobject_cast<QVideoOutputControl *>(
-            service->control(QVideoOutputControl_iid));
-    if (outputControl == 0)
-        QSKIP("Image viewer object has no video output control.", SkipSingle);
+    QMediaControl *mediaControl = service->requestControl(QVideoRendererControl_iid);
+    QVERIFY(mediaControl != 0);
 
-    QVideoRendererControl *rendererControl = qobject_cast<QVideoRendererControl *>(
-            service->control(QVideoRendererControl_iid));
+    QVideoRendererControl *rendererControl = qobject_cast<QVideoRendererControl *>(mediaControl);
     QVERIFY(rendererControl != 0);
 
     rendererControl->setSurface(&surfaceA);
     QCOMPARE(rendererControl->surface(), (QAbstractVideoSurface *)&surfaceA);
 
-    outputControl->setOutput(QVideoOutputControl::RendererOutput);
-
     // Load an image so the viewer has some dimensions to work with.
     viewer.setMedia(QMediaContent(imageUrl("image.png")));
 
@@ -967,11 +926,16 @@
         QCOMPARE(frame.size(), QSize(75, 50));
     }
     // Test clearing the output stops the video surface.
-    outputControl->setOutput(QVideoOutputControl::NoOutput);
+    service->releaseControl(rendererControl);
     QCOMPARE(surfaceA.isActive(), false);
 
     // Test reseting the output restarts it.
-    outputControl->setOutput(QVideoOutputControl::RendererOutput);
+    mediaControl = service->requestControl(QVideoRendererControl_iid);
+    QVERIFY(mediaControl != 0);
+
+    rendererControl = qobject_cast<QVideoRendererControl *>(mediaControl);
+    rendererControl->setSurface(&surfaceA);
+    QVERIFY(rendererControl != 0);
     {
         QVideoSurfaceFormat format = surfaceA.surfaceFormat();
         QCOMPARE(format.handleType(), QAbstractVideoBuffer::NoHandle);