qtmobility/plugins/multimedia/gstreamer/mediacapture/maemo/qgstreamercaptureservice_maemo.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
--- a/qtmobility/plugins/multimedia/gstreamer/mediacapture/maemo/qgstreamercaptureservice_maemo.cpp	Fri Jun 11 14:26:25 2010 +0300
+++ b/qtmobility/plugins/multimedia/gstreamer/mediacapture/maemo/qgstreamercaptureservice_maemo.cpp	Wed Jun 23 19:08:38 2010 +0300
@@ -48,7 +48,6 @@
 #include "qgstreamerbushelper.h"
 #include "qgstreamercapturemetadatacontrol_maemo.h"
 
-#include "qgstreamervideooutputcontrol.h"
 #include "qgstreameraudioinputendpointselector.h"
 #include "qgstreamervideoinputdevicecontrol.h"
 
@@ -137,7 +136,6 @@
     m_audioInputEndpointSelector = 0;
     m_videoInputDevice = 0;
 
-    m_videoOutput = 0;
     m_videoRenderer = 0;
     m_videoRendererFactory = 0;
     m_videoWindow = 0;
@@ -164,10 +162,6 @@
         //TODO:if (m_videoInputDevice->deviceCount())
         //    m_cameraControl->setDevice(m_videoInputDevice->deviceName(m_videoInputDevice->selectedDevice()));
 
-        m_videoOutput = new QGstreamerVideoOutputControl(this);
-        connect(m_videoOutput, SIGNAL(outputChanged(QVideoOutputControl::Output)),
-                this, SLOT(videoOutputChanged(QVideoOutputControl::Output)));
-
         m_videoRenderer = new QGstreamerVideoRenderer(this);
         m_videoRendererFactory = new QGstreamerVideoRendererWrapper(m_videoRenderer);
         m_videoWindow = new QGstreamerVideoOverlay(this);
@@ -176,10 +170,6 @@
         m_videoWidgetControl = new QGstreamerVideoWidgetControl(this);
         m_videoWidgetFactory = new QGstreamerVideoRendererWrapper(m_videoWidgetControl);
 
-        m_videoOutput->setAvailableOutputs(QList<QVideoOutputControl::Output>()
-                                           << QVideoOutputControl::RendererOutput
-                                           << QVideoOutputControl::WindowOutput
-                                           << QVideoOutputControl::WidgetOutput);
     }
     
     if (!m_captureSession) {
@@ -202,11 +192,8 @@
 {
 }
 
-QMediaControl *QGstreamerCaptureService::control(const char *name) const
+QMediaControl *QGstreamerCaptureService::requestControl(const char *name)
 {
-    if (qstrcmp(name, QVideoOutputControl_iid) == 0)
-        return m_videoOutput;
-
     if (qstrcmp(name, QVideoRendererControl_iid) == 0)
         return m_videoRenderer;
 
@@ -234,31 +221,18 @@
     if (qstrcmp(name,QMediaContainerControl_iid) == 0)
         return m_captureSession->mediaContainerControl();
 
-    if (qstrcmp(name,QMetaDataControl_iid) == 0)
+    if (qstrcmp(name,QMetaDataWriterControl_iid) == 0)
         return m_metaDataControl;
 
     return 0;
 }
 
-void QGstreamerCaptureService::videoOutputChanged(QVideoOutputControl::Output output)
+void QGstreamerCaptureService::releaseControl(QMediaControl *control)
 {
-    switch (output) {
-    case QVideoOutputControl::NoOutput:
+    if (control && control == m_videoOutput) {
+        m_videoOutput = 0;
         m_captureSession->setVideoPreview(0);
-        break;
-    case QVideoOutputControl::RendererOutput:
-        m_captureSession->setVideoPreview(m_videoRendererFactory);
-        break;
-    case QVideoOutputControl::WindowOutput:
-        m_captureSession->setVideoPreview(m_videoWindowFactory);
-        break;
-    case QVideoOutputControl::WidgetOutput:
-        m_captureSession->setVideoPreview(m_videoWidgetFactory);
-        break;
-    default:
-        qWarning("Invalid video output selection");
-        m_captureSession->setVideoPreview(0);
-        break;
     }
 }
 
+