Added noise reduction
authorMohammed Sameer <msameer@foolab.org>
Sat, 8 Sep 2012 15:00:32 +0000 (18:00 +0300)
committerMohammed Sameer <msameer@foolab.org>
Sat, 8 Sep 2012 15:00:32 +0000 (18:00 +0300)
lib/lib.pro
lib/qtcamnoisereduction.cpp [new file with mode: 0644]
lib/qtcamnoisereduction.h [new file with mode: 0644]

index b295a8c..2f330fa 100644 (file)
@@ -16,7 +16,8 @@ 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 qtcamflickerreduction.h
+           qtcamwhitebalance.h qtcamcolortone.h qtcamflickerreduction.h \
+           qtcamnoisereduction.h
 
 SOURCES += qtcamconfig.cpp qtcamera.cpp qtcamscanner.cpp qtcamdevice.cpp qtcamviewfinder.cpp \
            qtcammode.cpp qtcamgstreamermessagehandler.cpp qtcamgstreamermessagelistener.cpp \
@@ -24,7 +25,8 @@ 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 qtcamflickerreduction.cpp
+           qtcamwhitebalance.cpp qtcamcolortone.cpp qtcamflickerreduction.cpp \
+           qtcamnoisereduction.cpp
 
 HEADERS += qtcammode_p.h qtcamdevice_p.h qtcamcapability_p.h
 
diff --git a/lib/qtcamnoisereduction.cpp b/lib/qtcamnoisereduction.cpp
new file mode 100644 (file)
index 0000000..1431ae8
--- /dev/null
@@ -0,0 +1,35 @@
+#include "qtcamnoisereduction.h"
+#include "qtcamcapability_p.h"
+
+QtCamNoiseReduction::QtCamNoiseReduction(QtCamDevice *dev, QObject *parent) :
+  QtCamCapability(new QtCamCapabilityPrivate(dev, QtCamCapability::NoiseReduction,
+                                            "noise-reduction"), parent) {
+  // TODO: QML
+}
+
+QtCamNoiseReduction::~QtCamNoiseReduction() {
+
+}
+
+QtCamNoiseReduction::NoiseReductionMode QtCamNoiseReduction::value() {
+  int val = 0;
+  if (!d_ptr->intValue(&val)) {
+    return QtCamNoiseReduction::None;
+  }
+
+  switch (val) {
+  case QtCamNoiseReduction::Bayer:
+  case QtCamNoiseReduction::Ycc:
+  case QtCamNoiseReduction::Temporal:
+  case QtCamNoiseReduction::Fixed:
+  case QtCamNoiseReduction::Extra:
+    return (QtCamNoiseReduction::NoiseReductionMode)val;
+
+  default:
+    return QtCamNoiseReduction::None;
+  }
+}
+
+bool QtCamNoiseReduction::setValue(const QtCamNoiseReduction::NoiseReductionMode& mode) {
+  return d_ptr->setIntValue(mode, false);
+}
diff --git a/lib/qtcamnoisereduction.h b/lib/qtcamnoisereduction.h
new file mode 100644 (file)
index 0000000..55a8d01
--- /dev/null
@@ -0,0 +1,28 @@
+// -*- c++ -*-
+
+#ifndef QT_CAM_NOISE_REDUCTION_H
+#define QT_CAM_NOISE_REDUCTION_H
+
+#include "qtcamcapability.h"
+
+class QtCamNoiseReduction : public QtCamCapability {
+  Q_OBJECT
+
+public:
+  typedef enum {
+    None = 0x00000000,
+    Bayer = 0x00000001,
+    Ycc = 0x00000002,
+    Temporal = 0x00000004,
+    Fixed = 0x00000008,
+    Extra = 0x00000010
+  } NoiseReductionMode;
+
+  QtCamNoiseReduction(QtCamDevice *dev, QObject *parent = 0);
+  ~QtCamNoiseReduction();
+
+  NoiseReductionMode value();
+  bool setValue(const NoiseReductionMode& mode);
+};
+
+#endif /* QT_CAM_NOISE_REDUCTION_H */