basiclocationinfodisplay/blid/engine/src/CBlidSettings.cpp
branchRCL_3
changeset 18 870918037e16
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/basiclocationinfodisplay/blid/engine/src/CBlidSettings.cpp	Wed Sep 01 12:31:27 2010 +0100
@@ -0,0 +1,230 @@
+/*
+* 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