basiclocationinfodisplay/blid/engine/src/CBlidSettings.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 19 Aug 2010 09:48:36 +0300
branchRCL_3
changeset 16 8173571d354e
parent 6 91123d004e8f
permissions -rw-r--r--
Revision: 201030 Kit: 201033

/*
* Copyright (c) 2005-2009 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: Implementation of CBlidSettings class which provide access to Blid settings. Blid Setting can be read and modified using this class
*
*/

// INCLUDE FILES
#include <f32file.h> // RFs
#include <centralrepository.h>
#include <blid.rsg>
#include <eikenv.h>

#include "CBlidSettings.h"
#include "MBlidEngObserver.h"
#include "CBlidMeasurementSettingListener.h"
#include "BlidSettingsCrkeys.h"
#include "Blid.hrh"

// CONSTANTS

// ============================ MEMBER FUNCTIONS ==============================
// ----------------------------------------------------------------------------
// CBlidSettings::CBlidSettings
// C++ default constructor can NOT contain any code, that
// might leave.
// ----------------------------------------------------------------------------
//
CBlidSettings::CBlidSettings() 
    : iAltCalibration(0)
    ,iBacklightOption(0)
    ,iIsOdoReset( EFalse )
    {
    iArrivedDistance = -1;
    }

// ----------------------------------------------------------------------------
// CBlidSettings::ConstructL
// Symbian 2nd phase constructor can leave.
// ----------------------------------------------------------------------------
//
void CBlidSettings::ConstructL()
    {
    iSysofMeasSettings = CBlidMeasurementSettingListener::NewL( * this );
    iArrivedToneName = HBufC8::NewL( KMaxFileName );
    HandleSysMeasureValueL();
    iRepository = CRepository::NewL( KCRUidBlidOdometerSettings );
    }

// ----------------------------------------------------------------------------
// CBlidSettings::NewL
// Two-phased constructor.
// ----------------------------------------------------------------------------
//
CBlidSettings* CBlidSettings::NewL()
    {
    CBlidSettings* self = new( ELeave ) CBlidSettings;
    CleanupStack::PushL( self );
    self->ConstructL();
    CleanupStack::Pop( self );
    return self;
    }

// ----------------------------------------------------------------------------
// CBlidSettings::~CBlidSettings
// ----------------------------------------------------------------------------
//
CBlidSettings::~CBlidSettings()
    {
    delete iSysofMeasSettings;
    delete iArrivedToneName;
    delete iRepository;
    }

// ----------------------------------------------------------------------------
// CBlidSettings::SetAltCalibration
// ----------------------------------------------------------------------------
//
void CBlidSettings::SetAltCalibration( const TReal32 aAltCalibration )
    {
    TReal altCalibration = aAltCalibration;
    iRepository->Set( KBlidAltCalibrationValue, altCalibration );
    }

// ----------------------------------------------------------------------------
// CBlidSettings::AltCalibration
// ----------------------------------------------------------------------------
//
TReal32 CBlidSettings::AltCalibration()
    {
    TReal altCalibration;
    TInt error = iRepository->Get( KBlidAltCalibrationValue, altCalibration );
    if( error == KErrNone )
        {
        iAltCalibration = altCalibration;
        }    
    return iAltCalibration;
    }

// ----------------------------------------------------------------------------
// CBlidSettings::UnitOfMeasurement
// ----------------------------------------------------------------------------
//
TReal32 CBlidSettings::UnitOfMeasurement()
    {
    return iMeasurementUnit;
    }
    
// ----------------------------------------------------------------------------
// CBlidSettings::HandleSysMeasureVlueL
// ----------------------------------------------------------------------------
//
void CBlidSettings::HandleSysMeasureValueL()
    {
    iMeasurementUnit = iSysofMeasSettings->SysofMeasurementL();    
    }

// ----------------------------------------------------------------------------
// CBlidSettings::SetBacklightOption
// ----------------------------------------------------------------------------
//
void CBlidSettings::SetBacklightOption( const TReal32 aBacklightOption )
    {
    TReal backlightOption = aBacklightOption;
    iRepository->Set( KBlidBacklightOptionValue, backlightOption );
    }

// ----------------------------------------------------------------------------
// CBlidSettings::GetBacklightOption
// ----------------------------------------------------------------------------
//
TReal32 CBlidSettings::GetBacklightOption()
    {
    TReal backlightOption;
    TInt error = iRepository->Get( KBlidBacklightOptionValue, backlightOption );
    if( error == KErrNone )
        {
        iBacklightOption = backlightOption;
        }    
    return iBacklightOption;
    }

// ----------------------------------------------------------------------------
// CBlidSettings::SetArrivedToneName
// ----------------------------------------------------------------------------
//
void CBlidSettings::SetArrivedToneName( const TDesC8& aArrivedToneName )
    {
    iRepository->Set( KBlidArrivedToneNameString, aArrivedToneName );
    }

// ----------------------------------------------------------------------------
// CBlidSettings::GetArrivedToneName
// ----------------------------------------------------------------------------
//
TDesC8& CBlidSettings::GetArrivedToneName()
    {
    TPtr8 des = iArrivedToneName->Des();    
    TInt error = iRepository->Get( KBlidArrivedToneNameString, des );
    if( error != KErrNone )
        {
	    if( iArrivedToneName->Length() <= 0 )
		    {
		    des.Copy( _L8( " Off " ) );	
		    }
		}
    return ( *iArrivedToneName );
    }

// ----------------------------------------------------------------------------
// CBlidSettings::SetResetOdometerOption
// ----------------------------------------------------------------------------
//
void CBlidSettings::SetResetOdometerOption( const TReal32 aIsOdoReset )
    {    
    TReal isOdoReset = aIsOdoReset;
    iRepository->Set( KBlidDoResetValue, isOdoReset );
    }

// ----------------------------------------------------------------------------
// CBlidSettings::GetResetOdometerOption
// ----------------------------------------------------------------------------
//
TReal32 CBlidSettings::GetResetOdometerOption()
    {
    TReal isOdoReset;
    TInt error = iRepository->Get( KBlidDoResetValue, isOdoReset );
    if( error != KErrNone )
        {
        iIsOdoReset = isOdoReset;
        }
    return iIsOdoReset;
    }

// ----------------------------------------------------------------------------
// CBlidSettings::SetResetOdometerOption
// ----------------------------------------------------------------------------
//
void CBlidSettings::SetArrivedDistance( TReal32 aDistance )
    {
    TReal arrivedDistance = aDistance;
    iRepository->Set( KBlidOdometerSettingsValue, arrivedDistance );
    }

// ----------------------------------------------------------------------------
// CBlidSettings::GetResetOdometerOption
// ----------------------------------------------------------------------------
//
TReal32 CBlidSettings::GetArrivedDistance()
    {
    TReal arrivedDistance;
    TInt error = iRepository->Get( KBlidOdometerSettingsValue, arrivedDistance );
    if( error == KErrNone )
        {
        iArrivedDistance = arrivedDistance;
        }
    return iArrivedDistance;
    }    
    
//  End of File