Added a new property (nightMode) to QtCamMode to use the night framerate
authorMohammed Sameer <msameer@foolab.org>
Sat, 1 Sep 2012 09:50:32 +0000 (12:50 +0300)
committerMohammed Sameer <msameer@foolab.org>
Thu, 6 Sep 2012 16:10:10 +0000 (19:10 +0300)
lib/qtcamimagemode.cpp
lib/qtcammode.cpp
lib/qtcammode.h
lib/qtcammode_p.h
lib/qtcamvideomode.cpp

index 06ca23c..b5663c4 100644 (file)
@@ -43,10 +43,12 @@ bool QtCamImageMode::canCapture() {
 }
 
 void QtCamImageMode::applySettings() {
+  QPair<int, int> fps = d_ptr->night ? d->settings.nightFrameRate() : d->settings.frameRate();
+
   d_ptr->setCaps("image-capture-caps", d->settings.captureResolution(),
                 d->settings.frameRate());
-  d_ptr->setCaps("viewfinder-caps", d->settings.viewfinderResolution(),
-                d->settings.frameRate());
+
+  d_ptr->setCaps("viewfinder-caps", d->settings.viewfinderResolution(), fps);
 
   setPreviewSize(d->settings.previewResolution());
 }
index afbc4b1..91ce0b3 100644 (file)
@@ -181,3 +181,16 @@ void QtCamMode::setPreviewSize(const QSize& size) {
 void QtCamMode::setFileName(const QString& fileName) {
   d_ptr->doneHandler->fileName = fileName;
 }
+
+void QtCamMode::setNightMode(bool night) {
+  if (d_ptr->night != night) {
+    d_ptr->night = night;
+    applySettings();
+
+    emit nightModeChanged();
+  }
+}
+
+bool QtCamMode::inNightMode() const {
+  return d_ptr->night;
+}
index e18f1fc..904ca91 100644 (file)
@@ -16,6 +16,7 @@ class QtCamMode : public QObject {
 
   Q_PROPERTY(bool canCapture READ canCapture NOTIFY canCaptureChanged);
   Q_PROPERTY(bool active READ isActive NOTIFY activeChanged);
+  Q_PROPERTY(bool nightMode READ inNightMode WRITE setNightMode NOTIFY nightModeChanged);
 
 public:
   QtCamMode(QtCamModePrivate *d, const char *mode, const char *done, QObject *parent = 0);
@@ -29,6 +30,9 @@ public:
 
   virtual void applySettings() = 0;
 
+  void setNightMode(bool night);
+  bool inNightMode() const;
+
 public slots:
   void activate();
 
@@ -37,6 +41,7 @@ signals:
   void saved(const QString& fileName);
   void canCaptureChanged();
   void activeChanged();
+  void nightModeChanged();
 
 protected:
   virtual void start() = 0;
index cbf85d5..fd31945 100644 (file)
@@ -16,7 +16,7 @@ class DoneHandler;
 
 class QtCamModePrivate {
 public:
-  QtCamModePrivate(QtCamDevicePrivate *d) : id(-1), dev(d) {}
+  QtCamModePrivate(QtCamDevicePrivate *d) : id(-1), dev(d), night(false) {}
   virtual ~QtCamModePrivate() {}
 
   int modeId(const char *mode) {
@@ -97,6 +97,7 @@ public:
   QtCamDevicePrivate *dev;
   PreviewImageHandler *previewImageHandler;
   DoneHandler *doneHandler;
+  bool night;
 };
 
 #endif /* QT_CAM_MODE_P_H */
index 6edc03f..8cde40f 100644 (file)
@@ -53,11 +53,13 @@ bool QtCamVideoMode::canCapture() {
 }
 
 void QtCamVideoMode::applySettings() {
+  QPair<int, int> fps = d_ptr->night ? d->settings.nightFrameRate() : d->settings.frameRate();
+
   d_ptr->setCaps("viewfinder-caps", d->settings.captureResolution(),
-         d->settings.frameRate());
+                fps);
 
   d_ptr->setCaps("video-capture-caps", d->settings.captureResolution(),
-         d->settings.frameRate());
+                fps);
 
   setPreviewSize(d->settings.previewResolution());
 }