summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/gstreamer/camerabin/camerabin.pro8
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinsession.cpp43
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinsession.h13
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinzoom.cpp2
4 files changed, 45 insertions, 21 deletions
diff --git a/src/plugins/gstreamer/camerabin/camerabin.pro b/src/plugins/gstreamer/camerabin/camerabin.pro
index bfbb35733..111dbccf0 100644
--- a/src/plugins/gstreamer/camerabin/camerabin.pro
+++ b/src/plugins/gstreamer/camerabin/camerabin.pro
@@ -24,6 +24,7 @@ HEADERS += \
$$PWD/camerabinrecorder.h \
$$PWD/camerabincontainer.h \
$$PWD/camerabinimagecapture.h \
+ $$PWD/camerabinzoom.h \
$$PWD/camerabinimageprocessing.h \
$$PWD/camerabinmetadata.h \
$$PWD/camerabinvideoencoder.h \
@@ -43,6 +44,7 @@ SOURCES += \
$$PWD/camerabincontainer.cpp \
$$PWD/camerabinimagecapture.cpp \
$$PWD/camerabinimageencoder.cpp \
+ $$PWD/camerabinzoom.cpp \
$$PWD/camerabinimageprocessing.cpp \
$$PWD/camerabinmetadata.cpp \
$$PWD/camerabinrecorder.cpp \
@@ -71,15 +73,13 @@ config_gstreamer_photography {
$$PWD/camerabinfocus.h \
$$PWD/camerabinexposure.h \
$$PWD/camerabinflash.h \
- $$PWD/camerabinlocks.h \
- $$PWD/camerabinzoom.h
+ $$PWD/camerabinlocks.h
SOURCES += \
$$PWD/camerabinexposure.cpp \
$$PWD/camerabinflash.cpp \
$$PWD/camerabinfocus.cpp \
- $$PWD/camerabinlocks.cpp \
- $$PWD/camerabinzoom.cpp
+ $$PWD/camerabinlocks.cpp
LIBS += -lgstphotography-$$GST_VERSION
DEFINES += GST_USE_UNSTABLE_API #prevents warnings because of unstable photography API
diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
index 0ed8dcb67..7cc082e5e 100644
--- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
@@ -43,9 +43,9 @@
#include "camerabinflash.h"
#include "camerabinfocus.h"
#include "camerabinlocks.h"
-#include "camerabinzoom.h"
#endif
+#include "camerabinzoom.h"
#include "camerabinimageprocessing.h"
#include "camerabinviewfindersettings.h"
@@ -121,6 +121,12 @@ CameraBinSession::CameraBinSession(GstElementFactory *sourceFactory, QObject *pa
m_videoInputFactory(0),
m_viewfinder(0),
m_viewfinderInterface(0),
+#ifdef HAVE_GST_PHOTOGRAPHY
+ m_cameraExposureControl(0),
+ m_cameraFlashControl(0),
+ m_cameraFocusControl(0),
+ m_cameraLocksControl(0),
+#endif
m_cameraSrc(0),
m_videoSrc(0),
m_viewfinderElement(0),
@@ -157,14 +163,7 @@ CameraBinSession::CameraBinSession(GstElementFactory *sourceFactory, QObject *pa
m_imageEncodeControl = new CameraBinImageEncoder(this);
m_recorderControl = new CameraBinRecorder(this);
m_mediaContainerControl = new CameraBinContainer(this);
-
-#ifdef HAVE_GST_PHOTOGRAPHY
- m_cameraExposureControl = new CameraBinExposure(this);
- m_cameraFlashControl = new CameraBinFlash(this);
- m_cameraFocusControl = new CameraBinFocus(this);
- m_cameraLocksControl = new CameraBinLocks(this);
m_cameraZoomControl = new CameraBinZoom(this);
-#endif
m_imageProcessingControl = new CameraBinImageProcessing(this);
m_captureDestinationControl = new CameraBinCaptureDestination(this);
m_captureBufferFormatControl = new CameraBinCaptureBufferFormat(this);
@@ -221,6 +220,34 @@ GstPhotography *CameraBinSession::photography()
return 0;
}
+
+CameraBinExposure *CameraBinSession::cameraExposureControl()
+{
+ if (!m_cameraExposureControl && photography())
+ m_cameraExposureControl = new CameraBinExposure(this);
+ return m_cameraExposureControl;
+}
+
+CameraBinFlash *CameraBinSession::cameraFlashControl()
+{
+ if (!m_cameraFlashControl && photography())
+ m_cameraFlashControl = new CameraBinFlash(this);
+ return m_cameraFlashControl;
+}
+
+CameraBinFocus *CameraBinSession::cameraFocusControl()
+{
+ if (!m_cameraFocusControl && photography())
+ m_cameraFocusControl = new CameraBinFocus(this);
+ return m_cameraFocusControl;
+}
+
+CameraBinLocks *CameraBinSession::cameraLocksControl()
+{
+ if (!m_cameraLocksControl && photography())
+ m_cameraLocksControl = new CameraBinLocks(this);
+ return m_cameraLocksControl;
+}
#endif
CameraBinSession::CameraRole CameraBinSession::cameraRole() const
diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.h b/src/plugins/gstreamer/camerabin/camerabinsession.h
index fa9dba989..7ef5b7ae3 100644
--- a/src/plugins/gstreamer/camerabin/camerabinsession.h
+++ b/src/plugins/gstreamer/camerabin/camerabinsession.h
@@ -121,13 +121,13 @@ public:
CameraBinImageEncoder *imageEncodeControl() const { return m_imageEncodeControl; }
#ifdef HAVE_GST_PHOTOGRAPHY
- CameraBinExposure *cameraExposureControl() const { return m_cameraExposureControl; }
- CameraBinFlash *cameraFlashControl() const { return m_cameraFlashControl; }
- CameraBinFocus *cameraFocusControl() const { return m_cameraFocusControl; }
- CameraBinLocks *cameraLocksControl() const { return m_cameraLocksControl; }
- CameraBinZoom *cameraZoomControl() const { return m_cameraZoomControl; }
+ CameraBinExposure *cameraExposureControl();
+ CameraBinFlash *cameraFlashControl();
+ CameraBinFocus *cameraFocusControl();
+ CameraBinLocks *cameraLocksControl();
#endif
+ CameraBinZoom *cameraZoomControl() const { return m_cameraZoomControl; }
CameraBinImageProcessing *imageProcessingControl() const { return m_imageProcessingControl; }
CameraBinCaptureDestination *captureDestinationControl() const { return m_captureDestinationControl; }
CameraBinCaptureBufferFormat *captureBufferFormatControl() const { return m_captureBufferFormatControl; }
@@ -238,9 +238,8 @@ private:
CameraBinFlash *m_cameraFlashControl;
CameraBinFocus *m_cameraFocusControl;
CameraBinLocks *m_cameraLocksControl;
- CameraBinZoom *m_cameraZoomControl;
#endif
-
+ CameraBinZoom *m_cameraZoomControl;
CameraBinImageProcessing *m_imageProcessingControl;
CameraBinCaptureDestination *m_captureDestinationControl;
CameraBinCaptureBufferFormat *m_captureBufferFormatControl;
diff --git a/src/plugins/gstreamer/camerabin/camerabinzoom.cpp b/src/plugins/gstreamer/camerabin/camerabinzoom.cpp
index 29fa7494c..a25cf68b4 100644
--- a/src/plugins/gstreamer/camerabin/camerabinzoom.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinzoom.cpp
@@ -34,8 +34,6 @@
#include "camerabinzoom.h"
#include "camerabinsession.h"
-#include <gst/interfaces/photography.h>
-
#define ZOOM_PROPERTY "zoom"
#define MAX_ZOOM_PROPERTY "max-zoom"