mediasettings/videoplayersettingsengine/src/videoplayersettingsengine.cpp
changeset 0 96612d01cf9f
child 1 6711b85517b7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mediasettings/videoplayersettingsengine/src/videoplayersettingsengine.cpp	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,351 @@
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:   App settings handles storing and loading of application settings*
+*/
+
+
+
+// INCLUDE FILES
+#include <e32def.h>
+#include <bldvariant.hrh>
+#include <bautils.h>
+#include <centralrepository.h>
+#include <commdb.h>
+#include <sysutil.h>
+#include <mmtsy_names.h>
+#include <SecUi.h>
+#include <SecUiSecurityHandler.h>
+
+#include "videosettingsdrivemonitor.h"
+
+#include "videoplayersettingsengine.pan"
+#include "videoplayersettingsengine.h"
+#include "videoplayercenrepkeys.h"
+#include "mpxlog.h"
+
+// CONSTANTS
+const TInt KTimeBeforeRetryingServerConnection = 50000;
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::CVcxNsSettings()
+// -----------------------------------------------------------------------------
+//
+CVcxNsSettingsEngine::CVcxNsSettingsEngine( )
+ :  iPhoneConnected( EFalse )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CVcxNsSettingsEngine::ConstructL()
+    {
+    iCenRep = CRepository::NewL( KIptvCenRepUid );
+    iAlrCenRep = CRepository::NewL( KIptvAlrCenRepUid );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::NewL()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CVcxNsSettingsEngine* CVcxNsSettingsEngine::NewL( )
+    {
+    MPX_FUNC("IptvUiEngine ## CIptvAppSettings::NewL()");
+    
+    CVcxNsSettingsEngine* self = new (ELeave) CVcxNsSettingsEngine();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::~CIptvAppSettings()
+// -----------------------------------------------------------------------------
+//
+CVcxNsSettingsEngine::~CVcxNsSettingsEngine()
+    {
+    MPX_FUNC("IptvUiEngine ## CIptvAppSettings::~CIptvAppSettings()");
+
+    if ( iPhoneConnected )
+	    {
+	    // close phone
+	    if ( iPhone.SubSessionHandle() )
+	        {
+	        iPhone.Close();
+	        }
+
+	    //close ETel connection
+	    if ( iServer.Handle() )
+	        {
+	        iServer.UnloadPhoneModule( KMmTsyModuleName );
+	        iServer.Close();
+	        }
+    	}
+
+    delete iCenRep;
+    delete iAlrCenRep;
+
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::GetUsedMemory()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CVcxNsSettingsEngine::GetUsedMemoryL( TInt& aUsedMemory )
+    {
+    MPX_FUNC("CVcxNsSettingsEngine::GetUsedMemoryL() start");
+
+    CVideoSettingsDriveMonitor* driveMonitor = CVideoSettingsDriveMonitor::NewL();
+    CleanupStack::PushL( driveMonitor ); // 1->
+                
+    driveMonitor->GetUsedMemoryL( aUsedMemory );
+
+    CleanupStack::PopAndDestroy( driveMonitor ); // <-1    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::SetUsedMemory()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CVcxNsSettingsEngine::SetUsedMemory( TInt aUsedMemory )
+    {
+    return SetCenRepIntKey( KIptvCenRepUid, 
+                            KIptvCenRepPreferredMemoryKey, 
+                            aUsedMemory );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::GetParentControl()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CVcxNsSettingsEngine::GetParentControl( TInt& aParentControl )
+    {
+    return GetCenRepIntKey( KIptvCenRepUid, 
+                            KIptvCenRepParentControlKey,
+                            aParentControl );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::SetParentControl()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CVcxNsSettingsEngine::SetParentControl( TInt aParentControl )
+    {
+    return SetCenRepIntKey( KIptvCenRepUid, 
+                            KIptvCenRepParentControlKey, 
+                            aParentControl );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::GetVideoOnDemandThumbnails()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CVcxNsSettingsEngine::GetVideoOnDemandThumbnails( TInt& aVodThumbnails )
+    {
+    return GetCenRepIntKey( KIptvCenRepUid, 
+                            KIptvCenRepVoDThumbnailsKey, 
+                            aVodThumbnails ); 
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::SetVideoOnDemandThumbnails()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CVcxNsSettingsEngine::SetVideoOnDemandThumbnails( TInt aVodThumbnails )
+    {
+    return SetCenRepIntKey( KIptvCenRepUid, KIptvCenRepVoDThumbnailsKey, aVodThumbnails );
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::GetUsedSnapId()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CVcxNsSettingsEngine::GetUsedSnapId( TInt& aUsedSnapId )
+    {
+    return GetCenRepIntKey( KIptvAlrCenRepUid, KIptvCenRepUsedSnapIdKey, aUsedSnapId );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::SetUsedSnapId()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CVcxNsSettingsEngine::SetUsedSnapId( TInt aUsedSnapId )
+    {
+    return SetCenRepIntKey( KIptvAlrCenRepUid, KIptvCenRepUsedSnapIdKey, aUsedSnapId );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::GetAllowUseGprs()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CVcxNsSettingsEngine::GetAllowUseGprs( TInt& aAllowUseGprs )
+    {
+    return GetCenRepIntKey( KIptvAlrCenRepUid, KIptvCenRepAllowUseGprsKey, aAllowUseGprs );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::SetAllowUseGprs()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CVcxNsSettingsEngine::SetAllowUseGprs( TInt aAllowUseGprs )
+    {
+    return SetCenRepIntKey( KIptvAlrCenRepUid, KIptvCenRepAllowUseGprsKey, aAllowUseGprs );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::GetAllowRoaming()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CVcxNsSettingsEngine::GetAllowRoaming( TInt& aAllowRoaming )
+    {
+    return GetCenRepIntKey( KIptvAlrCenRepUid, KIptvCenRepAllowRoamingKey, aAllowRoaming );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::SetAllowRoaming()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CVcxNsSettingsEngine::SetAllowRoaming( TInt aAllowRoaming )
+    {
+    return SetCenRepIntKey( KIptvAlrCenRepUid, KIptvCenRepAllowRoamingKey, aAllowRoaming );
+    }
+
+    
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::CheckLockCodeL()
+// -----------------------------------------------------------------------------
+//   
+EXPORT_C TBool CVcxNsSettingsEngine::CheckLockCodeL()
+    {
+    TBool lockCodeAccepted = EFalse ;
+    
+    if ( !iPhoneConnected )
+        {
+        // Connect to ETel server
+        // All server connections are retried because occasional
+        // fails on connections are possible, at least on some servers.
+        TInt err = iServer.Connect();
+        if ( err != KErrNone )
+            {
+            User::After( KTimeBeforeRetryingServerConnection );
+            TInt err = iServer.Connect();
+            }
+        User::LeaveIfError( err );
+        User::LeaveIfError( iServer.SetExtendedErrorGranularity(
+            RTelServer::EErrorExtended ) );
+
+        // Load TSY.
+        err = iServer.LoadPhoneModule( KMmTsyModuleName );
+        if ( KErrAlreadyExists != err )
+            {
+            // May also return KErrAlreadyExists if something else
+            // has already loaded the TSY module. And that is
+            // not an error.
+            User::LeaveIfError( err );
+            }
+
+        // Open phones
+        User::LeaveIfError( iPhone.Open( iServer, KMmTsyPhoneName ) );
+        iPhoneConnected = ETrue;
+        }
+
+#ifndef __WINS__
+    // Initialize sec ui.
+    CSecurityHandler* handler = new( ELeave ) CSecurityHandler( iPhone );
+    CleanupStack::PushL( handler );
+    TSecUi::InitializeLibL();
+
+    lockCodeAccepted = handler->AskSecCodeL();
+
+	// Uninitialize security ui.
+	CleanupStack::PopAndDestroy( handler );
+	TSecUi::UnInitializeLib();
+#else
+        lockCodeAccepted = ETrue;
+#endif
+
+    return lockCodeAccepted;
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::GetCenRepIntKey()
+// -----------------------------------------------------------------------------
+//            
+TBool CVcxNsSettingsEngine::GetCenRepIntKey( TUid aCategory, TInt aKey, TInt& aValue )
+    {
+    TInt error = KErrNotFound;
+
+    if ( aCategory == KIptvCenRepUid && iCenRep )
+        {
+        error = iCenRep->Get( aKey, aValue );
+        }
+    else if ( aCategory == KIptvAlrCenRepUid && iAlrCenRep )
+        {
+        error = iAlrCenRep->Get( aKey, aValue );
+        }
+    
+    return (error == KErrNone) ? ETrue : EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::SetCenRepIntKey()
+// -----------------------------------------------------------------------------
+//
+TBool CVcxNsSettingsEngine::SetCenRepIntKey( TUid aCategory, TInt aKey, TInt aValue )
+    {
+    TInt error = KErrNotFound;
+
+    if ( aCategory == KIptvCenRepUid && iCenRep )
+        {
+        error = iCenRep->Set( aKey, aValue );
+        }
+
+    else if ( aCategory == KIptvAlrCenRepUid && iAlrCenRep )
+        {
+        error = iAlrCenRep->Set( aKey, aValue );
+        }
+
+    return (error == KErrNone) ? ETrue : EFalse;    
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::GetPlayerVolume()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CVcxNsSettingsEngine::GetPlayerVolume( TInt& aVolume )
+    {
+    return GetCenRepIntKey( KIptvCenRepUid, 
+                            KIptvCenRepVideoPlayerVolumeKey, 
+                            aVolume );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxNsSettingsEngine::SetPlayerVolume()
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CVcxNsSettingsEngine::SetPlayerVolume( TInt aVolume )
+    {
+    return SetCenRepIntKey( KIptvCenRepUid, 
+                            KIptvCenRepVideoPlayerVolumeKey, 
+                            aVolume );
+    }
+
+// End of File