Add missing capability.cpp
[harmattan/cameraplus] / src / settings.cpp
index 4a4acf5..52c87d5 100644 (file)
@@ -1,7 +1,7 @@
 /*!
  * This file is part of CameraPlus.
  *
- * Copyright (C) 2012 Mohammed Sameer <msameer@foolab.org>
+ * Copyright (C) 2012-2013 Mohammed Sameer <msameer@foolab.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
 
 #define PATH QString("%1%2.config%2/cameraplus.conf").arg(QDir::homePath()).arg(QDir::separator())
 
-#define DEFAULT_MODE          0
-#define DEFAULT_SCENE_MODE    6 // Auto
-#define DEFAULT_TIMEOUT       0
-#define DEFAULT_USE_GPS       true
-#define DEFAULT_USE_GEOTAGS   true
-#define DEFAULT_COLOR_FILTER  0
-#define DEFAULT_WHITE_BALANCE 0
-#define DEFAULT_EV_COMP       0.0
-#define DEFAULT_FLASH_MODE    0
-#define DEFAULT_IMAGE_ISO     0
+#define DEFAULT_MODE                    1
+#define DEFAULT_SCENE_MODE              6 // Auto
+#define DEFAULT_USE_GPS                 true
+#define DEFAULT_USE_GEOTAGS             true
+#define DEFAULT_COLOR_FILTER            0
+#define DEFAULT_WHITE_BALANCE           0
+#define DEFAULT_EV_COMP                 0.0
+#define DEFAULT_FLASH_MODE              0
+#define DEFAULT_IMAGE_ISO               0
+#define DEFAULT_SOUND_ENABLED           true
+#define DEFAULT_VIDEO_TORCH_ON          false
+#define DEFAULT_SHOW_TOOL_BAR           false
+#define DEFAULT_VIDEO_MUTE              false
+#define DEFAULT_GRID_ENABLED            false
+#define DEFAULT_FACE_DETECTION_ENABLED  true
+#define DEFAULT_ZOOM_AS_SHUTTER         false
+#define DEFAULT_DEVICE                  0
+
+#define DEFAULT_PRIMARY_IMAGE_RESOLUTION        "high"
+#define DEFAULT_PRIMARY_IMAGE_ASPECT_RATIO      "16:9"
+#define DEFAULT_PRIMARY_VIDEO_RESOLUTION        "high"
+#define DEFAULT_PRIMARY_VIDEO_ASPECT_RATIO      "16:9"
+
+#define DEFAULT_SECONDARY_IMAGE_RESOLUTION       "low"
+#define DEFAULT_SECONDARY_IMAGE_ASPECT_RATIO     "4:3"
+#define DEFAULT_SECONDARY_VIDEO_RESOLUTION       "low"
+#define DEFAULT_SECONDARY_VIDEO_ASPECT_RATIO     "4:3"
 
 Settings::Settings(QObject *parent) :
   QObject(parent),
@@ -69,18 +86,6 @@ void Settings::setCreatorName(const QString& name) {
   }
 }
 
-int Settings::postCaptureTimeout() const {
-  return m_settings->value("camera/postCaptureTimeout", DEFAULT_TIMEOUT).toInt();
-}
-
-void Settings::setPostCaptureTimeout(int timeout) {
-  if (timeout != postCaptureTimeout()) {
-    m_settings->setValue("camera/postCaptureTimeout", timeout);
-
-    emit postCaptureTimeoutChanged();
-  }
-}
-
 bool Settings::useGps() const {
   return m_settings->value("camera/useGps", DEFAULT_USE_GPS).toBool();
 }
@@ -112,9 +117,9 @@ int Settings::imageSceneMode() const {
 void Settings::setImageSceneMode(int mode) {
   if (mode != imageSceneMode()) {
     m_settings->setValue("image/sceneMode", mode);
-
-    emit imageSceneModeChanged();
   }
+
+  emit imageSceneModeChanged();
 }
 
 int Settings::imageColorFilter() const {
@@ -146,7 +151,7 @@ qreal Settings::imageEvComp() const {
 }
 
 void Settings::setImageEvComp(qreal ev) {
-  if (ev != imageEvComp()) {
+  if (!qFuzzyCompare(ev, imageEvComp())) {
     m_settings->setValue("image/evComp", ev);
 
     emit imageEvCompChanged();
@@ -160,9 +165,9 @@ int Settings::videoSceneMode() const {
 void Settings::setVideoSceneMode(int mode) {
   if (mode != videoSceneMode()) {
     m_settings->setValue("video/sceneMode", mode);
-
-    emit videoSceneModeChanged();
   }
+
+  emit videoSceneModeChanged();
 }
 
 int Settings::videoColorFilter() const {
@@ -194,7 +199,7 @@ qreal Settings::videoEvComp() const {
 }
 
 void Settings::setVideoEvComp(qreal ev) {
-  if (ev != videoEvComp()) {
+  if (!qFuzzyCompare(ev, videoEvComp())) {
     m_settings->setValue("video/evComp", ev);
 
     emit videoEvCompChanged();
@@ -223,3 +228,189 @@ void Settings::setImageIso(int iso) {
     emit imageIsoChanged();
   }
 }
+
+bool Settings::isSoundEnabled() const {
+  return m_settings->value("camera/soundEnabled", DEFAULT_SOUND_ENABLED).toBool();
+}
+
+void Settings::setSoundEnabled(bool enabled) {
+  if (isSoundEnabled() != enabled) {
+    m_settings->setValue("camera/soundEnabled", enabled);
+    emit soundEnabledChanged();
+  }
+}
+
+bool Settings::isVideoTorchOn() const {
+  return m_settings->value("video/torchOn", DEFAULT_VIDEO_TORCH_ON).toBool();
+}
+
+void Settings::setVideoTorchOn(bool on) {
+  if (isVideoTorchOn() != on) {
+    m_settings->setValue("video/torchOn", on);
+    emit videoTorchOnChanged();
+  }
+}
+
+bool Settings::isToolBarShown() const {
+  return m_settings->value("camera/showToolBar", DEFAULT_SHOW_TOOL_BAR).toBool();
+}
+
+void Settings::setToolBarShown(bool shown) {
+  if (isToolBarShown() != shown) {
+    m_settings->setValue("camera/showToolBar", shown);
+
+    emit toolBarShownChanged();
+  }
+}
+
+bool Settings::isVideoMuted() const {
+  return m_settings->value("video/mute", DEFAULT_VIDEO_MUTE).toBool();
+}
+
+void Settings::setVideoMuted(bool muted) {
+  if (isVideoMuted() != muted) {
+    m_settings->setValue("video/mute", muted);
+    emit videoMutedChanged();
+  }
+}
+
+bool Settings::isGridEnabled() const {
+  return m_settings->value("camera/gridEnabled", DEFAULT_GRID_ENABLED).toBool();
+}
+
+void Settings::setGridEnabled(bool enabled) {
+  if (enabled != isGridEnabled()) {
+    m_settings->setValue("camera/gridEnabled", enabled);
+    emit gridEnabledChanged();
+  }
+}
+
+bool Settings::isFaceDetectionEnabled() const {
+  return m_settings->value("image/faceDetectionEnabled", DEFAULT_FACE_DETECTION_ENABLED).toBool();
+}
+
+void Settings::setFaceDetectionEnabled(bool enabled) {
+  if (isFaceDetectionEnabled() != enabled) {
+    m_settings->setValue("image/faceDetectionEnabled", enabled);
+    emit faceDetectionEnabledChanged();
+  }
+}
+
+bool Settings::isZoomAsShutterEnabled() {
+  return m_settings->value("camera/zoomAsShutter", DEFAULT_ZOOM_AS_SHUTTER).toBool();
+}
+
+void Settings::setZoomAsShutterEnabled(bool enabled) {
+  if (isZoomAsShutterEnabled() != enabled) {
+    m_settings->setValue("camera/zoomAsShutter", enabled);
+
+    emit zoomAsShutterChanged();
+  }
+}
+
+int Settings::device() const {
+  return m_settings->value("camera/device", DEFAULT_DEVICE).toInt();
+}
+
+void Settings::setDevice(int device) {
+  if (device != Settings::device()) {
+    m_settings->setValue("camera/device", device);
+    emit deviceChanged();
+  }
+}
+
+QString Settings::primaryImageAspectRatio() const {
+  return m_settings->value("image/primaryAspectRatio",
+                          DEFAULT_PRIMARY_IMAGE_ASPECT_RATIO).toString();
+}
+
+void Settings::setPrimaryImageAspectRatio(const QString& aspectRatio) {
+  if (primaryImageAspectRatio() != aspectRatio) {
+    m_settings->setValue("image/primaryAspectRatio", aspectRatio);
+    emit primaryImageAspectRatioChanged();
+  }
+}
+
+QString Settings::primaryImageResolution() const {
+  return m_settings->value("image/primaryResolution",
+                          DEFAULT_PRIMARY_IMAGE_RESOLUTION).toString();
+}
+
+void Settings::setPrimaryImageResolution(const QString& resolution) {
+  if (primaryImageResolution() != resolution) {
+    m_settings->setValue("image/primaryResolution", resolution);
+    emit primaryImageResolutionChanged();
+  }
+}
+
+QString Settings::primaryVideoAspectRatio() const {
+  return m_settings->value("video/primaryAspectRatio",
+                          DEFAULT_PRIMARY_VIDEO_ASPECT_RATIO).toString();
+}
+
+void Settings::setPrimaryVideoAspectRatio(const QString& aspectRatio) {
+  if (primaryVideoAspectRatio() != aspectRatio) {
+    m_settings->setValue("video/primaryAspectRatio", aspectRatio);
+    emit primaryVideoAspectRatioChanged();
+  }
+}
+
+QString Settings::primaryVideoResolution() const {
+  return m_settings->value("video/primaryResolution",
+                          DEFAULT_PRIMARY_VIDEO_RESOLUTION).toString();
+}
+
+void Settings::setPrimaryVideoResolution(const QString& resolution) {
+  if (primaryVideoResolution() != resolution) {
+    m_settings->setValue("video/primaryResolution", resolution);
+    emit primaryVideoResolutionChanged();
+  }
+}
+
+QString Settings::secondaryImageAspectRatio() const {
+  return m_settings->value("image/secondaryAspectRatio",
+                          DEFAULT_SECONDARY_IMAGE_ASPECT_RATIO).toString();
+}
+
+void Settings::setSecondaryImageAspectRatio(const QString& aspectRatio) {
+  if (secondaryImageAspectRatio() != aspectRatio) {
+    m_settings->setValue("image/secondaryAspectRatio", aspectRatio);
+    emit secondaryImageAspectRatioChanged();
+  }
+}
+
+QString Settings::secondaryImageResolution() const {
+  return m_settings->value("image/secondaryResolution",
+                          DEFAULT_SECONDARY_IMAGE_RESOLUTION).toString();
+}
+
+void Settings::setSecondaryImageResolution(const QString& resolution) {
+  if (secondaryImageResolution() != resolution) {
+    m_settings->setValue("image/secondaryResolution", resolution);
+    emit secondaryImageResolutionChanged();
+  }
+}
+
+QString Settings::secondaryVideoAspectRatio() const {
+  return m_settings->value("video/secondaryAspectRatio",
+                          DEFAULT_SECONDARY_VIDEO_ASPECT_RATIO).toString();
+}
+
+void Settings::setSecondaryVideoAspectRatio(const QString& aspectRatio) {
+  if (secondaryVideoAspectRatio() != aspectRatio) {
+    m_settings->setValue("video/secondaryAspectRatio", aspectRatio);
+    emit secondaryVideoAspectRatioChanged();
+  }
+}
+
+QString Settings::secondaryVideoResolution() const {
+  return m_settings->value("video/secondaryResolution",
+                          DEFAULT_SECONDARY_VIDEO_RESOLUTION).toString();
+}
+
+void Settings::setSecondaryVideoResolution(const QString& resolution) {
+  if (secondaryVideoResolution() != resolution) {
+    m_settings->setValue("video/secondaryResolution", resolution);
+    emit secondaryVideoResolutionChanged();
+  }
+}