camerauis/cameraxui/cxengine/tsrc/fakeclasses/cxefakesettingsmodel.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 06 Jul 2010 14:04:02 +0300
changeset 37 64817133cd1d
parent 21 fa6d9f75d6a6
permissions -rw-r--r--
Revision: 201025 Kit: 2010127

/*
* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/

#include "cxefakesettingsmodel.h"
#include "cxutils.h"

CxeFakeSettingsModel::CxeFakeSettingsModel()
{
    CX_DEBUG_ENTER_FUNCTION();

    initDefaultCameraSettings();
    initRuntimeSettings();

    CX_DEBUG_EXIT_FUNCTION();
}

CxeFakeSettingsModel::~CxeFakeSettingsModel()
{
    CX_DEBUG_IN_FUNCTION();
}

CxeError::Id CxeFakeSettingsModel::getRuntimeValue( const QString &key, QVariant &value)
{
    CX_DEBUG_ENTER_FUNCTION();
    CxeError::Id err = CxeError::None;

    // read run-time configuration value
    if (mRuntimeSettings.contains(key)) {
        value = qVariantFromValue<QVariantList > (mRuntimeSettings.value(key));
    } else {
        err = CxeError::NotFound;
    }

    CX_DEBUG_EXIT_FUNCTION();
    return err;
}

CxeError::Id CxeFakeSettingsModel::getSettingValue( const QString &key, QVariant &value)
{
    CX_DEBUG_ENTER_FUNCTION();
    CxeError::Id err = CxeError::None;

    // read run-time configuration value
    if (mSettingStore.contains(key))  {
        value = mSettingStore[key];
    } else {
        err = CxeError::NotFound;
    }

    CX_DEBUG_EXIT_FUNCTION();
    return err;
}

void CxeFakeSettingsModel::getSettingValue(long int uid, unsigned long int key, Cxe::SettingKeyType type, QVariant &value)
{
    Q_UNUSED(uid);
    Q_UNUSED(key);
    Q_UNUSED(type);
    Q_UNUSED(value);

    // no support yet
    CX_DEBUG_IN_FUNCTION();
}


/*! This is a helper method for this fake class that can be used to set key-value pairs
 * to local mStore database. Key-value pairs don't have to refer any real values used
 * in camera application as the fake class is used only for testing purposes
 */
CxeError::Id CxeFakeSettingsModel::set(const QString &key, QVariant value)
{
    CX_DEBUG_ENTER_FUNCTION();
    CxeError::Id error = CxeError::None;

    if(mSettingStore.contains(key)) {
        mSettingStore.insert(key, value);
    } else {
        error = CxeError::NotFound;
    }



    CX_DEBUG_EXIT_FUNCTION();
    return error;
}

CxeError::Id CxeFakeSettingsModel::setImageScene(const QString &newScene)
{
    mDummyImageScene.clear();

    // image scene mode key values
    if(newScene == Cxe::IMAGE_SCENE_AUTO) {
        mDummyImageScene.insert(CxeSettingIds::SCENE_ID, Cxe::IMAGE_SCENE_AUTO);
    }
    else if(newScene == Cxe::IMAGE_SCENE_PORTRAIT) {
        mDummyImageScene.insert(CxeSettingIds::SCENE_ID, Cxe::IMAGE_SCENE_PORTRAIT);
    }
    else if(newScene == Cxe::IMAGE_SCENE_SCENERY) {
        mDummyImageScene.insert(CxeSettingIds::SCENE_ID, Cxe::IMAGE_SCENE_SCENERY);
    }
    else if(newScene == Cxe::IMAGE_SCENE_MACRO) {
        mDummyImageScene.insert(CxeSettingIds::SCENE_ID, Cxe::IMAGE_SCENE_MACRO);
    }
    else if(newScene == Cxe::IMAGE_SCENE_SPORTS) {
        mDummyImageScene.insert(CxeSettingIds::SCENE_ID, Cxe::IMAGE_SCENE_SPORTS);
    }
    else if(newScene == Cxe::IMAGE_SCENE_NIGHT) {
        mDummyImageScene.insert(CxeSettingIds::SCENE_ID, Cxe::IMAGE_SCENE_NIGHT);
    }
    else if(newScene == Cxe::IMAGE_SCENE_NIGHTPORTRAIT) {
        mDummyImageScene.insert(CxeSettingIds::SCENE_ID, Cxe::IMAGE_SCENE_NIGHTPORTRAIT);
    }
    else {
        return CxeError::NotFound;
    }

    return CxeError::None;
}

CxeError::Id CxeFakeSettingsModel::setVideoScene(const QString &newScene)
{
    mDummyVideoScene.clear();

    // image scene mode key values
    if(newScene == Cxe::VIDEO_SCENE_AUTO) {
        mDummyVideoScene.insert(CxeSettingIds::SCENE_ID, Cxe::VIDEO_SCENE_AUTO);
    }
    else if(newScene == Cxe::VIDEO_SCENE_NIGHTPORTRAIT) {
        mDummyVideoScene.insert(CxeSettingIds::SCENE_ID, Cxe::VIDEO_SCENE_NIGHTPORTRAIT);
    }
    else if(newScene == Cxe::VIDEO_SCENE_LOWLIGHT) {
        mDummyVideoScene.insert(CxeSettingIds::SCENE_ID, Cxe::VIDEO_SCENE_LOWLIGHT);
    }
    else if(newScene == Cxe::VIDEO_SCENE_NIGHT) {
        mDummyVideoScene.insert(CxeSettingIds::SCENE_ID, Cxe::VIDEO_SCENE_NIGHT);
    }
    else {
        return CxeError::NotFound;
    }

    return CxeError::None;
}


CxeScene& CxeFakeSettingsModel::currentImageScene()
{
    return mDummyImageScene;
}


CxeScene& CxeFakeSettingsModel::currentVideoScene()
{
    return mDummyVideoScene;
}


void CxeFakeSettingsModel::cameraModeChanged(Cxe::CameraMode newMode)
{
    mDummyCameraMode = newMode;
}


/* This helper method initializes fake store for default camera settings
 */
void CxeFakeSettingsModel::initDefaultCameraSettings()
{
    CX_DEBUG_ENTER_FUNCTION();
    mSettingStore.insert(CxeSettingIds::FNAME_FOLDER_SUFFIX, QVariant(1));
    mSettingStore.insert(CxeSettingIds::FNAME_MONTH_FOLDER,  QVariant(1));
    mSettingStore.insert(CxeSettingIds::FNAME_IMAGE_COUNTER, QVariant(1));
    mSettingStore.insert(CxeSettingIds::FNAME_VIDEO_COUNTER, QVariant(1));
    mSettingStore.insert(CxeSettingIds::COLOR_TONE, QVariant(1));
    mSettingStore.insert(CxeSettingIds::SHARPNESS, QVariant(1));
    mSettingStore.insert(CxeSettingIds::CONTRAST, QVariant(1));
    mSettingStore.insert(CxeSettingIds::BRIGHTNESS,   QVariant(1));
    mSettingStore.insert(CxeSettingIds::EV_COMPENSATION_VALUE, QVariant(1));
    mSettingStore.insert(CxeSettingIds::EXPOSURE_MODE, QVariant(1));
    mSettingStore.insert(CxeSettingIds::FLASH_MODE, QVariant(1));
    mSettingStore.insert(CxeSettingIds::FOCAL_RANGE, QVariant(1));
    mSettingStore.insert(CxeSettingIds::FRAME_RATE, QVariant(1));
    mSettingStore.insert(CxeSettingIds::IMAGE_QUALITY, QVariant(1));
    mSettingStore.insert(CxeSettingIds::IMAGE_SCENE, QVariant(1));
    mSettingStore.insert(CxeSettingIds::LIGHT_SENSITIVITY, QVariant(1));
    mSettingStore.insert(CxeSettingIds::SCENE_ID, QVariant(1));
    mSettingStore.insert(CxeSettingIds::SECONDARY_CAMERA, QVariant(1));
    mSettingStore.insert(CxeSettingIds::SELF_TIMER, QVariant(1));
    mSettingStore.insert(CxeSettingIds::VIDEO_SCENE, QVariant(1));
    mSettingStore.insert(CxeSettingIds::WHITE_BALANCE, QVariant(1));

    // default scene
    setImageScene(Cxe::IMAGE_SCENE_AUTO);
    setVideoScene(Cxe::VIDEO_SCENE_AUTO);

    CX_DEBUG_EXIT_FUNCTION();
}



/* This helper method initializes fake runtime setting values for the keys
 */
void CxeFakeSettingsModel::initRuntimeSettings()
{
    CX_DEBUG_ENTER_FUNCTION();

    QVariantList supported;
    supported.append(QVariant(1));

    QVariantList notSupported;
    notSupported.append(QVariant(0));

    QVariantList values;
    values.append(QVariant(1));
    values.append(QVariant(2));
    values.append(QVariant(3));

    mRuntimeSettings.insert(CxeRuntimeKeys::PRIMARY_CAMERA_CAPTURE_KEYS, supported);
    mRuntimeSettings.insert(CxeRuntimeKeys::PRIMARY_CAMERA_AUTOFOCUS_KEYS,  supported);
    mRuntimeSettings.insert(CxeRuntimeKeys::SECONDARY_CAMERA_CAPTURE_KEYS, notSupported);
    mRuntimeSettings.insert(CxeRuntimeKeys::FREE_MEMORY_LEVELS, notSupported);
    mRuntimeSettings.insert(CxeRuntimeKeys::STILL_MAX_ZOOM_LIMITS, values);
    mRuntimeSettings.insert(CxeRuntimeKeys::VIDEO_MAX_ZOOM_LIMITS, values);

    CX_DEBUG_EXIT_FUNCTION();
}


// end of file