Cleaned up some commented out defines
[harmattan/cameraplus] / lib / qtcamautofocus_p.h
index 159c0a6..a6b2482 100644 (file)
@@ -28,7 +28,7 @@
 #include "qtcamgstreamermessagelistener.h"
 #include "qtcamdevice.h"
 #include "qtcamdevice_p.h"
-
+#include <QPointer>
 #include <QDebug>
 
 #ifndef GST_USE_UNSTABLE_API
@@ -63,8 +63,11 @@ public:
   }
 
   ~QtCamAutoFocusPrivate() {
-    dev->listener()->removeHandler(handler);
-    delete handler; handler = 0;
+    if (dev && dev->listener()) {
+      dev->listener()->removeHandler(handler);
+      delete handler; handler = 0;
+    }
+
     dev = 0;
     q_ptr = 0;
   }
@@ -100,7 +103,6 @@ public:
   bool setStatus(QtCamAutoFocus::Status *status, GstMessage *message) {
     const GstStructure *s = gst_message_get_structure(message);
     int st = GST_PHOTOGRAPHY_FOCUS_STATUS_NONE;
-
     if (gst_structure_get_int(s, "status", &st)) {
       if (*status != st) {
        *status = (QtCamAutoFocus::Status) st;
@@ -111,6 +113,16 @@ public:
     return false;
   }
 
+  bool sendEventToSource(GstEvent *event) {
+    if (!dev->d_ptr->videoSource) {
+      qWarning() << "No video source";
+      gst_event_unref(event);
+      return false;
+    }
+
+    return gst_element_send_event(dev->d_ptr->videoSource, event) == TRUE ? true : false;
+  }
+
 public slots:
   void handleMessage(GstMessage *message) {
     if (setStatus(&status, message)) {
@@ -126,7 +138,7 @@ public slots:
   }
 
 public:
-  QtCamDevice *dev;
+  QPointer<QtCamDevice> dev;
   QtCamAutoFocus *q_ptr;
 
   QtCamAutoFocus::Status status;