internetradio2.0/irsettings/src/irsettings.cpp
changeset 14 896e9dbc5f19
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/internetradio2.0/irsettings/src/irsettings.cpp	Wed Aug 18 09:40:26 2010 +0300
@@ -0,0 +1,578 @@
+/*
+* Copyright (c) 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:
+*
+*/
+#include <barsc.h>
+#include <bautils.h>
+#include <coemain.h>
+#include <pathinfo.h>
+#include <s32file.h>
+#include <centralrepository.h>
+
+#include "irdebug.h"
+#include "irsettings.h"
+#include "irinternalcrkeys.h"
+
+// Constants
+const TInt KSix = 6;
+const TInt KFifty = 50;
+const TInt KTimeSize = 60000000 ;
+
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CIRSettings* CIRSettings::OpenL()
+    {
+    IRLOG_DEBUG( "CIRSettings::OpenL() - Entering" );
+    CIRSettings* self = static_cast<CIRSettings*>( Dll::Tls() );
+
+    if ( self )
+        {
+        User::LeaveIfError( self->Open() );
+        }
+    else
+        {
+        self = new ( ELeave ) CIRSettings;
+        CleanupClosePushL( *self );
+        self->ConstructL();
+        CleanupStack::Pop( self );
+        }
+    IRLOG_DEBUG( "CIRSettings::OpenL() - Exiting" );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+CIRSettings::CIRSettings()
+    {
+    IRLOG_DEBUG( "CIRSettings::CIRSettings" );
+    }
+
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+void CIRSettings::ConstructL()
+    {
+    IRLOG_DEBUG( "CIRSettings::ConstructL() - Enter" );
+
+	iRepository = CRepository::NewL(KCRUidInternetRadio);
+		
+    User::LeaveIfError( iFs.Connect() );
+    TParse parse;
+    // Parses out the private path of the running process.
+    User::LeaveIfError( iFs.PrivatePath( iPrivatePath ) );
+    
+    TParsePtrC phoneMemoryRootPath( PathInfo::PhoneMemoryRootPath() );
+    TPtrC drive( phoneMemoryRootPath.Drive() );
+    User::LeaveIfError( parse.Set( iPrivatePath, &drive, NULL ) );
+    iPrivatePath = parse.FullName();
+
+    BaflUtils::EnsurePathExistsL( iFs, parse.FullName() );
+
+    IRLOG_DEBUG2("CIRSettings::ConstructL - iPrivatePath = %S", &iPrivatePath );
+    
+    User::LeaveIfError( Dll::SetTls( this ) );
+    
+    IRLOG_DEBUG( "CIRSettings::ConstructL() - Exit" );
+    }
+
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+CIRSettings::~CIRSettings()
+    {
+    IRLOG_DEBUG( "CIRSettings::~CIRSettings() - Entering" );
+	delete iRepository;
+    iFs.Close();
+    
+    Dll::FreeTls();
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CIRSettings::IsFlagTermsAndConditionsL()
+    {
+       IRLOG_DEBUG( "CIRSettings::IsFlagTermsAndConditionsL() - Entering" );
+       TInt value = 0;
+       User::LeaveIfError( iRepository->Get(KIRTermsAndConditionsFlag, value) );
+       IRLOG_DEBUG( "CIRSettings::IsFlagTermsAndConditionsL() - Exiting" );
+       return value == 1 ? ETrue : EFalse;
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetFlagTermsAndConditionsL()
+    {
+       IRLOG_DEBUG( "CIRSettings::SetFlagTermsAndConditionsL() - Entering" );
+       User::LeaveIfError ( iRepository->Set(KIRTermsAndConditionsFlag, 1));
+       IRLOG_DEBUG( "CIRSettings::SetFlagTermsAndConditionsL() - Exiting" );
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::ReSetFlagTermsAndConditionsL()
+    {
+    	IRLOG_DEBUG( "CIRSettings::ReSetFlagTermsAndConditionsL() - Entering" );
+        User::LeaveIfError ( iRepository->Set(KIRTermsAndConditionsFlag, 0));
+        IRLOG_DEBUG( "CIRSettings::ReSetFlagTermsAndConditionsL() - Exiting" );
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CIRSettings::GetIrappVersionL() const
+    {
+    		IRLOG_DEBUG( "CIRSettings::GetIrappVersionL() - Entering" );
+    		User::LeaveIfError( iRepository->Get(KIRIrAppVersion, (TDes&)iIrappVersion) );
+    		IRLOG_DEBUG( "CIRSettings::GetIrappVersionL() - Exiting" );
+    		return iIrappVersion;
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetIRIDL(const TDesC& aIrid)
+    {
+    		IRLOG_DEBUG( "CIRSettings::SetIRIDL() - Entering" );
+            User::LeaveIfError ( iRepository->Set(KIRIrId, aIrid) );
+            IRLOG_DEBUG( "CIRSettings::SetIRIDL() - Exiting" );
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CIRSettings::GetIRIDL() const
+    {
+    		IRLOG_DEBUG( "CIRSettings::GetIRIDL() - Entering" );
+    		User::LeaveIfError( iRepository->Get(KIRIrId, (TDes&)iIRID) );
+    		IRLOG_DEBUG( "CIRSettings::GetIRIDL() - Exiting" );
+    		return iIRID;
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const  TDesC& CIRSettings::GetISDSBaseUrlL() const
+    {
+    	IRLOG_DEBUG( "CIRSettings::GetISDSBaseUrlL() - Entering" );
+    	User::LeaveIfError( iRepository->Get(KIRIsdsUrl, (TDes&)iISDSBaseUrl) );
+    	IRLOG_DEBUG( "CIRSettings::GetISDSBaseUrlL() - Exiting" );
+       	return iISDSBaseUrl;
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetISDSBaseUrlL(const TDesC& aIsdsUrl)
+    {
+    	IRLOG_DEBUG( "CIRSettings::SetISDSBaseUrlL() - Entering" );
+        User::LeaveIfError ( iRepository->Set(KIRIsdsUrl, aIsdsUrl) );
+        IRLOG_DEBUG( "CIRSettings::SetISDSBaseUrlL() - Exiting" );
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CIRSettings::GetVolumeSetting() const
+    {
+    IRLOG_DEBUG( "CIRSettings::GetVolumeSetting() - Entering" );
+    TInt value = KSix;
+    TInt err = iRepository->Get(KIRPlayerVolume, value);
+    if(err)
+	    {
+        IRLOG_DEBUG( "CIRSettings::GetVolumeSetting() - Error" );
+	    }
+ 
+    IRLOG_DEBUG( "CIRSettings::GetVolumeSetting() - Exiting" );
+    return value;
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetVolumeSettingL(TInt aPlayVolume)
+    {
+      IRLOG_DEBUG( "CIRSettings::SetVolumeSettingL() - Entering" );
+      User::LeaveIfError ( iRepository->Set(KIRPlayerVolume, aPlayVolume));
+      IRLOG_DEBUG( "CIRSettings::SetVolumeSettingL() - Exiting" );
+    }
+
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CIRSettings::IsUpdateAvailableL()
+    {
+    	IRLOG_DEBUG( "CIRSettings::IsUpdateAvailableL() - Entering" );
+       TBool value = ETrue;
+       User::LeaveIfError( iRepository->Get(KIRUpdateAvailablity, value) );
+       IRLOG_DEBUG( "CIRSettings::IsUpdateAvailableL() - Exiting" );
+       return value;
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetUpdateAvailableL()
+    {
+    	IRLOG_DEBUG( "CIRSettings::SetUpdateAvailableL() - Entering" );
+        User::LeaveIfError ( iRepository->Set(KIRUpdateAvailablity, 1));
+        IRLOG_DEBUG( "CIRSettings::SetUpdateAvailableL() - Exiting" );
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::ReSetUpdateAvailableL()
+    {
+    	IRLOG_DEBUG( "CIRSettings::ReSetUpdateAvailableL() - Entering" );
+        User::LeaveIfError ( iRepository->Set(KIRUpdateAvailablity, 0));
+        IRLOG_DEBUG( "CIRSettings::ReSetUpdateAvailableL() - Exiting" );
+    }
+    
+ 
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CIRSettings::GetLogRunningNo() const
+    {
+		IRLOG_DEBUG( "CIRSettings::GetLogRunningNo() - Entering" );
+        TInt value = 1;
+        TInt err = iRepository->Get(KIRSessionLogIndex, value);
+        if(err)
+	        {
+    	    IRLOG_DEBUG( "CIRSettings::GetLogRunningNo() - Error" );
+    	    }
+    	IRLOG_DEBUG( "CIRSettings::GetLogRunningNo() - Exiting" );
+    	return value;
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetLogRunningNoL()
+    {
+    IRLOG_DEBUG( "CIRSettings::SetLogRunningNoL() - Entering" );
+    TInt value = GetLogRunningNo();
+    value++;
+    User::LeaveIfError ( iRepository->Set(KIRSessionLogIndex,value));
+    IRLOG_DEBUG( "CIRSettings::SetLogRunningNoL() - Exiting" );
+    }
+    
+  
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetTimeOutL(TInt aTimeOut)
+    {
+       IRLOG_DEBUG( "CIRSettings::SetTimeOutL() - Entering" );
+       User::LeaveIfError ( iRepository->Set(KIRHttpTimeout, aTimeOut) );
+       IRLOG_DEBUG( "CIRSettings::SetTimeOutL() - Exiting" );
+       }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CIRSettings::GetTimeOut() const
+    {
+    IRLOG_DEBUG( "CIRSettings::GetTimeOut() - Entering" );
+    TInt value = KTimeSize;
+    TInt err = iRepository->Get(KIRHttpTimeout, value) ;
+    if(err)
+	    {
+        IRLOG_DEBUG( "CIRSettings::GetTimeOut() - Error" );
+	    }
+
+    IRLOG_DEBUG( "CIRSettings::GetTimeOut() - Exiting" );
+    return value;
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetSilencePeriodL(TUint aSilencePeriod)
+    {
+    	IRLOG_DEBUG( "CIRSettings::SetSilencePeriodL() - Entering" );
+        User::LeaveIfError ( iRepository->Set(KIRNewVersionNotificationInterval, (TInt)aSilencePeriod) );
+        IRLOG_DEBUG( "CIRSettings::SetSilencePeriodL() - Exiting" );
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TUint CIRSettings::GetSilencePeriodL() const
+    {
+    	IRLOG_DEBUG( "CIRSettings::GetSilencePeriodL() - Entering" );
+    	TInt value =0;
+    	User::LeaveIfError( iRepository->Get(KIRNewVersionNotificationInterval, value) );
+    	IRLOG_DEBUG( "CIRSettings::GetSilencePeriodL() - Exiting" );
+    	return value;
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetSilencePeriodStartL(const TDesC& aSilencePeriodStart)
+    {
+    	IRLOG_DEBUG( "CIRSettings::SetSilencePeriodStartL() - Entering" );
+        User::LeaveIfError ( iRepository->Set(KIRNewVersionNotificationStartingTime, aSilencePeriodStart) );
+        IRLOG_DEBUG( "CIRSettings::SetSilencePeriodStartL() - Exiting" );
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CIRSettings::GetSilencePeriodStartL() const
+    {
+    	IRLOG_DEBUG( "CIRSettings::GetSilencePeriodStartL() - Entering" );
+    	User::LeaveIfError( iRepository->Get(KIRNewVersionNotificationStartingTime,
+    					  (TDes&)iSilencePeriodStartTime) );
+    	IRLOG_DEBUG( "CIRSettings::GetSilencePeriodStartL() - Exiting" );
+        return iSilencePeriodStartTime;
+    }
+
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetPreferredQualityL(TInt aQualityValue)
+    {
+    IRLOG_DEBUG( "CIRSettings::SetPreferredQualityL() - Entering" );
+    User::LeaveIfError ( iRepository->Set(KIRPreferredQuality, aQualityValue) );
+    IRLOG_DEBUG( "CIRSettings::SetPreferredQualityL() - Exiting" );
+    }
+
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CIRSettings::GetPreferredQuality() const
+    {
+    	IRLOG_DEBUG( "CIRSettings::GetPreferredQuality() - Entering" );
+    	TInt value = 0;
+    	TInt err = iRepository->Get(KIRPreferredQuality, value);
+    	if(err)
+	    	{
+	        IRLOG_DEBUG( "CIRSettings::GetPreferredQuality() - Error" );
+	    	}
+
+	    IRLOG_DEBUG( "CIRSettings::GetPreferredQuality() - Exiting" );
+    	return value;
+    }
+
+EXPORT_C TInt CIRSettings::GetSongHistoryShow() const
+{
+    IRLOG_DEBUG( "CIRSettings::GetSongHistoryShow() - Entering" );
+    TInt value = 0;
+    TInt err = iRepository->Get(KIRSongHistoryFTU, value);
+    if(err)
+        {
+        IRLOG_DEBUG( "CIRSettings::GetSongHistoryShow() - Error" );
+        }
+
+    IRLOG_DEBUG( "CIRSettings::GetSongHistoryShow() - Exiting" );
+    return value;
+}
+
+EXPORT_C void CIRSettings::SetSongHisotryShowL(TInt aShowFlag)
+{
+    IRLOG_DEBUG( "CIRSettings::SetSongHisotryShow() - Entering" );
+    User::LeaveIfError(iRepository->Set(KIRSongHistoryFTU, aShowFlag));
+    IRLOG_DEBUG( "CIRSettings::SetSongHisotryShow() - Exiting" );
+}
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetMaxPresetCountL(TInt aMaxCount)
+    {
+    IRLOG_DEBUG( "CIRSettings::SetMaxPresetCountL() - Entering" );
+    User::LeaveIfError ( iRepository->Set(KIRFavoritesMaxNum, aMaxCount) );
+    IRLOG_DEBUG( "CIRSettings::SetMaxPresetCountL() - Exiting" );    
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CIRSettings::MaxPresetCount()
+    {
+    	IRLOG_DEBUG( "CIRSettings::MaxPresetCount() - Entering" );
+    	TInt value = KFifty;
+    	TInt err = iRepository->Get(KIRFavoritesMaxNum, value) ;
+    	if(err)
+	    	{
+	        IRLOG_DEBUG( "CIRSettings::MaxPresetCount() - Error" );
+	    	}
+
+	    IRLOG_DEBUG( "CIRSettings::MaxPresetCount() - Exiting" );
+    	return value;
+    }
+    
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetTimeCorrectionL(TInt aCorrection)
+    {
+    	IRLOG_DEBUG( "CIRSettings::SetTimeCorrectionL() - Entering" );
+        User::LeaveIfError ( iRepository->Set(KIRTimeOffset, aCorrection) );
+        IRLOG_DEBUG( "CIRSettings::SetTimeCorrectionL() - Exiting" );
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CIRSettings::TimeCorrection() const
+    {
+    	IRLOG_DEBUG( "CIRSettings::TimeCorrection() - Entering" );
+        TInt value = 0;
+        TInt err = iRepository->Get(KIRTimeOffset, value) ;
+        if(err)
+	        {
+	        IRLOG_DEBUG( "CIRSettings::TimeCorrection() - Error" );
+	        }
+
+	    IRLOG_DEBUG( "CIRSettings::TimeCorrection() - Exiting" );
+    	return value;
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CIRSettings::PrivatePath() const
+    {
+    IRLOG_DEBUG( "CIRSettings::PrivatePath" );
+    return iPrivatePath;
+    }
+
+// ---------------------------------------------------------------------------
+// SetStartingViewIdL()
+// Sets the starting view Id in cenrep
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetStartingViewIdL(TUint32 aStartingViewId)
+    {
+    IRLOG_DEBUG( "CIRSettings::SetStartingViewIdL() - Entering" );
+    User::LeaveIfError ( iRepository->Set(KIRStartingViewId, (TInt)aStartingViewId) );
+    IRLOG_DEBUG( "CIRSettings::SetStartingViewIdL() - Exiting" );
+    }
+    
+// ---------------------------------------------------------------------------
+// GetStartingViewIdL()
+// Gets the starting view Id from cenrep
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TUint32 CIRSettings::GetStartingViewIdL() const
+    {
+    IRLOG_DEBUG( "CIRSettings::GetStartingViewIdL() - Entering" );
+    TInt value = 0;
+    User::LeaveIfError( iRepository->Get(KIRStartingViewId, value) );
+    IRLOG_DEBUG( "CIRSettings::GetStartingViewIdL() - Exiting" );
+    return value;
+    } 
+
+// ---------------------------------------------------------------------------
+// GetGlobalAdvFlagL()
+// Gets the global advertisement flag from cenrep
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CIRSettings::GetGlobalAdvFlagL()
+{
+  IRLOG_DEBUG( "CIRSettings::GetGlobalAdvFlagL() - Entering" );
+  TBool value = ETrue;
+  User::LeaveIfError( iRepository->Get(KIRGlobalAdvEnabled, value) );
+  IRLOG_DEBUG( "CIRSettings::GetGlobalAdvFlagL() - Exiting" );
+  return value;
+}
+
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const  TDesC& CIRSettings::GetManuallyInputtedStationUrlL() const
+    {
+        IRLOG_DEBUG( "CIRSettings::GetManuallyInputtedStationUrlL() - Entering" );
+        User::LeaveIfError( iRepository->Get(KIRManuallyInputStationUrl, (TDes&)iStationUrl) );
+        IRLOG_DEBUG( "CIRSettings::GetManuallyInputtedStationUrlL() - Exiting" );
+        return iStationUrl;
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetManuallyInputtedStationUrlL(const TDesC& aUrl)
+    {
+        IRLOG_DEBUG( "CIRSettings::SetManuallyInputtedStationUrlL() - Entering" );
+        User::LeaveIfError ( iRepository->Set(KIRManuallyInputStationUrl, aUrl) );
+        IRLOG_DEBUG( "CIRSettings::SetManuallyInputtedStationUrlL() - Exiting" );
+    }
+
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const  TDesC& CIRSettings::GetManuallyInputtedStationNameL() const
+    {
+        IRLOG_DEBUG( "CIRSettings::GetManuallyInputtedStationNameL() - Entering" );
+        User::LeaveIfError( iRepository->Get(KIRManuallyInputStationName, (TDes&)iStationName) );
+        IRLOG_DEBUG( "CIRSettings::GetManuallyInputtedStationNameL() - Exiting" );
+        return iStationName;
+    }
+    
+// ---------------------------------------------------------------------------
+// description_if_needed
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CIRSettings::SetManuallyInputtedStationNameL(const TDesC& aName)
+    {
+        IRLOG_DEBUG( "CIRSettings::SetManuallyInputtedStationNameL() - Entering" );
+        User::LeaveIfError ( iRepository->Set(KIRManuallyInputStationName, aName) );
+        IRLOG_DEBUG( "CIRSettings::SetManuallyInputtedStationNameL() - Exiting" );
+    }