From: Mohammed Sameer Date: Sat, 8 Sep 2012 14:21:11 +0000 (+0300) Subject: Implemented QtCamFlickerReduction X-Git-Url: http://cgit.sxemacs.org/?p=harmattan%2Fcameraplus;a=commitdiff_plain;h=728cd7881d5ed4d6bf5048327236f8ebb75d9b95 Implemented QtCamFlickerReduction --- diff --git a/lib/lib.pro b/lib/lib.pro index 9dbcba5..b295a8c 100644 --- a/lib/lib.pro +++ b/lib/lib.pro @@ -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 diff --git a/lib/qtcamcapability.h b/lib/qtcamcapability.h index 03907b4..e6e7cf0 100644 --- a/lib/qtcamcapability.h +++ b/lib/qtcamcapability.h @@ -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 index 0000000..cc8c200 --- /dev/null +++ b/lib/qtcamflickerreduction.cpp @@ -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 index 0000000..d206265 --- /dev/null +++ b/lib/qtcamflickerreduction.h @@ -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 */