/*!
* This file is part of CameraPlus.
*
- * Copyright (C) 2012 Mohammed Sameer <msameer@foolab.org>
+ * Copyright (C) 2012-2013 Mohammed Sameer <msameer@foolab.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
cameraBin(0),
videoSource(0),
wrapperVideoSource(0),
+ sink(0),
image(0),
video(0),
active(0),
viewfinder(0),
conf(0),
error(false),
- notifications(0) {
+ notifications(0),
+ viewfinderFilters(0) {
}
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;
}
}
- bool setViewfinderSink() {
- GstElement *sink;
- g_object_get(cameraBin, "viewfinder-sink", &sink, NULL);
+ void setDevicePoperty() {
+ if (videoSource) {
+ if (conf->deviceScannerType() == SCANNER_TYPE_ENUM) {
+ int dev = id.toInt();
+ g_object_set(videoSource, conf->deviceScannerProperty().toLatin1().constData(), dev, NULL);
+ }
+ else {
+ QString dev = id.toString();
+ g_object_set(videoSource, conf->deviceScannerProperty().toLatin1().constData(),
+ dev.toLatin1().constData(), NULL);
+ }
+ }
+ }
+ bool setViewfinderSink() {
if (sink) {
- gst_object_unref(sink);
return true;
}
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);
}
}
- 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;
}
GstElement *cameraBin;
GstElement *videoSource;
GstElement *wrapperVideoSource;
+ GstElement *sink;
QtCamImageMode *image;
QtCamVideoMode *video;