+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::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() const {
+ 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();
+ }
+}
+
+bool Settings::isProximityAsShutterEnabled() const {
+ return m_settings->value("camera/proximityAsShutter", DEFAULT_PROXIMITY_AS_SHUTTER).toBool();
+}
+
+void Settings::setProximityAsShutterEnabled(bool enabled) {
+ if (isProximityAsShutterEnabled() != enabled) {
+ m_settings->setValue("camera/proximityAsShutter", enabled);
+
+ emit proximityAsShutterChanged();
+ }
+}
+
+int Settings::device() const {
+ return m_settings->value("camera/device", DEFAULT_DEVICE).toInt();
+}
+
+void Settings::setDevice(int device) {
+ if (device != Settings::device()) {
+ emit deviceAboutToChange();
+
+ m_settings->setValue("camera/device", device);
+
+ delete m_device; m_device = 0;
+
+ if (mode() == DEFAULT_MODE) {
+ // image
+ emit imageSceneModeChanged();
+ emit imageColorFilterChanged();
+ emit imageWhiteBalanceChanged();
+ emit imageEvCompChanged();
+ emit imageFlashModeChanged();
+ emit imageIsoChanged();
+ emit imageAspectRatioChanged();
+ emit imageResolutionChanged();
+ }
+ else {
+ // video
+ emit videoSceneModeChanged();
+ emit videoColorFilterChanged();
+ emit videoWhiteBalanceChanged();
+ emit videoEvCompChanged();
+ emit videoAspectRatioChanged();
+ emit videoResolutionChanged();
+ emit videoTorchOnChanged();
+ }
+
+ emit deviceChanged();
+ }
+}
+
+DeviceSettings *Settings::deviceSettings() {
+ if (m_device) {
+ return m_device;
+ }
+
+ int device = Settings::device();
+
+ if (device == 0) {
+ m_device = new PrimaryDeviceSettings;
+ }
+ else {
+ m_device = new SecondaryDeviceSettings;
+ }
+
+ return m_device;
+}
+
+QVariant Settings::deviceValue(const char *key, const QVariant& defaultValue) {
+ QString k = QString("%1/%2").arg(deviceSettings()->id()).arg(key);
+
+ return m_settings->value(k, defaultValue);
+}
+
+void Settings::setDeviceValue(const char *key, const QVariant& value) {
+ QString k = QString("%1/%2").arg(deviceSettings()->id()).arg(key);
+
+ m_settings->setValue(k, value);
+}
+
+// Device dependant settings
+
+int Settings::imageSceneMode() {
+ return deviceValue("image/sceneMode", deviceSettings()->defaultImageSceneMode()).toInt();