Implemented QtCamFlickerReduction
authorMohammed Sameer <msameer@foolab.org>
Sat, 8 Sep 2012 14:21:11 +0000 (17:21 +0300)
committerMohammed Sameer <msameer@foolab.org>
Sat, 8 Sep 2012 14:21:11 +0000 (17:21 +0300)
lib/lib.pro
lib/qtcamcapability.h
lib/qtcamflickerreduction.cpp [new file with mode: 0644]
lib/qtcamflickerreduction.h [new file with mode: 0644]

index 9dbcba5..b295a8c 100644 (file)
@@ -16,7 +16,7 @@ HEADERS += qtcamconfig.h qtcamera.h qtcamscanner.h qtcamdevice.h qtcamviewfinder
            qtcamviewfinderrenderergeneric.h qtcamimagesettings.h qtcamvideosettings.h \
            qtcamimagemode.h qtcamvideomode.h qtcammetadata.h qtcamcapability.h \
            qtcamzoom.h qtcamflash.h qtcamscene.h qtcamevcomp.h qtcamvideotorch.h \
-           qtcamwhitebalance.h qtcamcolortone.h
+           qtcamwhitebalance.h qtcamcolortone.h qtcamflickerreduction.h
 
 SOURCES += qtcamconfig.cpp qtcamera.cpp qtcamscanner.cpp qtcamdevice.cpp qtcamviewfinder.cpp \
            qtcammode.cpp qtcamgstreamermessagehandler.cpp qtcamgstreamermessagelistener.cpp \
@@ -24,7 +24,7 @@ SOURCES += qtcamconfig.cpp qtcamera.cpp qtcamscanner.cpp qtcamdevice.cpp qtcamvi
            qtcamviewfinderrenderergeneric.cpp qtcamimagesettings.cpp qtcamvideosettings.cpp \
            qtcamimagemode.cpp qtcamvideomode.cpp qtcammetadata.cpp qtcamcapability.cpp \
            qtcamzoom.cpp qtcamflash.cpp qtcamscene.cpp qtcamevcomp.cpp qtcamvideotorch.cpp \
-           qtcamwhitebalance.cpp qtcamcolortone.cpp
+           qtcamwhitebalance.cpp qtcamcolortone.cpp qtcamflickerreduction.cpp
 
 HEADERS += qtcammode_p.h qtcamdevice_p.h qtcamcapability_p.h
 
index 03907b4..e6e7cf0 100644 (file)
@@ -25,7 +25,8 @@ public:
     Aperture = (1 << 8),
     Eposure = (1 << 9),
     Shake = (1 << 10),
-    NoiseReduction = (1 << 11)
+    NoiseReduction = (1 << 11),
+    FlickerReduction = (1 << 12)
   } Capability;
 
   Q_DECLARE_FLAGS(Capabilities, Capability)
diff --git a/lib/qtcamflickerreduction.cpp b/lib/qtcamflickerreduction.cpp
new file mode 100644 (file)
index 0000000..cc8c200
--- /dev/null
@@ -0,0 +1,33 @@
+#include "qtcamflickerreduction.h"
+#include "qtcamcapability_p.h"
+
+QtCamFlickerReduction::QtCamFlickerReduction(QtCamDevice *dev, QObject *parent) :
+  QtCamCapability(new QtCamCapabilityPrivate(dev, QtCamCapability::FlickerReduction,
+                                            "flicker-mode"), parent) {
+  // TODO: QML
+}
+
+QtCamFlickerReduction::~QtCamFlickerReduction() {
+
+}
+
+QtCamFlickerReduction::FlickerReductionMode QtCamFlickerReduction::value() {
+  int val = 0;
+  if (!d_ptr->intValue(&val)) {
+    return QtCamFlickerReduction::Auto;
+  }
+
+  switch (val) {
+  case QtCamFlickerReduction::Off:
+  case QtCamFlickerReduction::FiftyHz:
+  case QtCamFlickerReduction::SixtyHz:
+    return (QtCamFlickerReduction::FlickerReductionMode)val;
+
+  default:
+    return QtCamFlickerReduction::Auto;
+  }
+}
+
+bool QtCamFlickerReduction::setValue(const QtCamFlickerReduction::FlickerReductionMode& mode) {
+  return d_ptr->setIntValue(mode, false);
+}
diff --git a/lib/qtcamflickerreduction.h b/lib/qtcamflickerreduction.h
new file mode 100644 (file)
index 0000000..d206265
--- /dev/null
@@ -0,0 +1,26 @@
+// -*- c++ -*-
+
+#ifndef QT_CAM_FLICKER_REDUCTION_H
+#define QT_CAM_FLICKER_REDUCTION_H
+
+#include "qtcamcapability.h"
+
+class QtCamFlickerReduction : public QtCamCapability {
+  Q_OBJECT
+
+public:
+  typedef enum {
+    Off = 0,
+    FiftyHz = 1,
+    SixtyHz = 2,
+    Auto = 3
+  } FlickerReductionMode;
+
+  QtCamFlickerReduction(QtCamDevice *dev, QObject *parent = 0);
+  ~QtCamFlickerReduction();
+
+  FlickerReductionMode value();
+  bool setValue(const FlickerReductionMode& mode);
+};
+
+#endif /* QT_CAM_FLICKER_REDUCTION_H */