X-Git-Url: http://cgit.sxemacs.org/?p=harmattan%2Fcameraplus;a=blobdiff_plain;f=lib%2Fqtcamdevice_p.h;h=c8c09fb1348cff72e05c6c3b6b2cc4b0cf69ca28;hp=aae2b33ebaadefc1e8e82ff8a7a116cf3661603b;hb=f16f2d7afbd39e1adeb193031b3be10279e3cb85;hpb=f6a1e69727a2ed7f6907995fa1f2200a70e7ca98 diff --git a/lib/qtcamdevice_p.h b/lib/qtcamdevice_p.h index aae2b33..c8c09fb 100644 --- a/lib/qtcamdevice_p.h +++ b/lib/qtcamdevice_p.h @@ -3,7 +3,7 @@ /*! * This file is part of CameraPlus. * - * Copyright (C) 2012 Mohammed Sameer + * Copyright (C) 2012-2013 Mohammed Sameer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -43,6 +43,7 @@ public: cameraBin(0), videoSource(0), wrapperVideoSource(0), + sink(0), image(0), video(0), active(0), @@ -55,7 +56,7 @@ public: } GstElement *createAndAddElement(const QString& elementName, const char *prop, const char *name) { - GstElement *elem = gst_element_factory_make(elementName.toAscii(), name); + GstElement *elem = gst_element_factory_make(elementName.toLatin1(), name); if (!elem) { qWarning() << "Failed to create" << elementName; return 0; @@ -105,22 +106,18 @@ public: if (videoSource) { if (conf->deviceScannerType() == SCANNER_TYPE_ENUM) { int dev = id.toInt(); - g_object_set(videoSource, conf->deviceScannerProperty().toAscii().constData(), dev, NULL); + g_object_set(videoSource, conf->deviceScannerProperty().toLatin1().constData(), dev, NULL); } else { QString dev = id.toString(); - g_object_set(videoSource, conf->deviceScannerProperty().toAscii().constData(), - dev.toAscii().constData(), NULL); + g_object_set(videoSource, conf->deviceScannerProperty().toLatin1().constData(), + dev.toLatin1().constData(), NULL); } } } bool setViewfinderSink() { - GstElement *sink = 0; - g_object_get(cameraBin, "viewfinder-sink", &sink, NULL); - if (sink) { - gst_object_unref(sink); return true; } @@ -173,7 +170,7 @@ public: void setAudioCaptureCaps() { QString captureCaps = conf->audioCaptureCaps(); if (!captureCaps.isEmpty()) { - GstCaps *caps = gst_caps_from_string(captureCaps.toAscii().data()); + GstCaps *caps = gst_caps_from_string(captureCaps.toLatin1().data()); if (caps) { g_object_set(cameraBin, "audio-capture-caps", caps, NULL); gst_caps_unref(caps); @@ -181,13 +178,18 @@ public: } } - bool isWrapperReady() { - if (!wrapperVideoSource) { + bool isReadyForCapture() { + GstElement *src = videoSource; + if (wrapperVideoSource) { + src = wrapperVideoSource; + } + + if (!src) { return false; } gboolean ready = FALSE; - g_object_get(wrapperVideoSource, "ready-for-capture", &ready, NULL); + g_object_get(src, "ready-for-capture", &ready, NULL); return ready == TRUE; } @@ -220,6 +222,7 @@ public: GstElement *cameraBin; GstElement *videoSource; GstElement *wrapperVideoSource; + GstElement *sink; QtCamImageMode *image; QtCamVideoMode *video;