Revision: 201013 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 14 Apr 2010 16:15:06 +0300
branchRCL_3
changeset 24 8cdda00a45da
parent 20 a20e54f39dd4
child 25 04da681812a9
Revision: 201013 Kit: 201015
drm_plat/drm_common_api/tsrc/data/mmc/DRM/content.dcf
drm_plat/drm_rights_api/tsrc/data/c/content.dcf
drm_plat/group/bld.inf
drm_plat/wmdrm_ota_access_api/group/bld.inf
drm_plat/wmdrm_ota_access_api/inc/wmdrmotaaccess.h
drm_plat/wmdrm_ota_access_api/inc/wmdrmotaaccessecominterface.h
drm_plat/wmdrm_ota_access_api/inc/wmdrmotaaccessecominterface.inl
drm_plat/wmdrm_ota_access_api/wmdrm_ota_access_api.metaxml
drm_pub/oma_drm_caf_agent_api/tsrc/bc/DRM_CAF/data/content.dcf
omadrm/drmengine/drmclock/Src/DRMClockClient.cpp
omadrm/drmengine/roapstorage/inc/RoapStorageSession.h
omadrm/drmengine/server/inc/DRMPointerArray.h
wmdrm/camese/wmdrmdlaapp/src/wmdrmdlabrowsercontainer.cpp
wmdrm/camese/wmdrmdladefaulthttpplugin/src/wmdrmdladefaulthttpmanager.cpp
wmdrm/group/bld.inf
wmdrm/wmdrmengine/wmdrmotaaccess/bwins/wmdrmotaaccessu.def
wmdrm/wmdrmengine/wmdrmotaaccess/eabi/wmdrmotaaccessu.def
wmdrm/wmdrmengine/wmdrmotaaccess/group/bld.inf
wmdrm/wmdrmengine/wmdrmotaaccess/group/wmdrmotaaccess.mmp
wmdrm/wmdrmengine/wmdrmotaaccess/rom/wmdrmotaaccess.iby
wmdrm/wmdrmengine/wmdrmotaaccess/src/wmdrmotaaccess.cpp
--- a/drm_plat/group/bld.inf	Wed Mar 31 22:01:10 2010 +0300
+++ b/drm_plat/group/bld.inf	Wed Apr 14 16:15:06 2010 +0300
@@ -30,6 +30,7 @@
 #include "../drm_agents_api/group/bld.inf"
 #include "../wmdrm_core_api/group/bld.inf"
 #include "../wmdrm_access_api/group/bld.inf"
+#include "../wmdrm_ota_access_api/group/bld.inf"
 
 #if (defined __WINDOWS_MEDIA_DRM)
 #include "../camese_utility_api/group/bld.inf"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/drm_plat/wmdrm_ota_access_api/group/bld.inf	Wed Apr 14 16:15:06 2010 +0300
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 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:
+* File that exports the files belonging to WMDRM Ota API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+../inc/wmdrmotaaccess.h     MW_LAYER_PLATFORM_EXPORT_PATH(wmdrmotaaccess.h)
+
+../inc/wmdrmotaaccessecominterface.h \
+    MW_LAYER_PLATFORM_EXPORT_PATH(wmdrmotaaccessecominterface.h)
+
+../inc/wmdrmotaaccessecominterface.inl \
+    MW_LAYER_PLATFORM_EXPORT_PATH(wmdrmotaaccessecominterface.inl)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/drm_plat/wmdrm_ota_access_api/inc/wmdrmotaaccess.h	Wed Apr 14 16:15:06 2010 +0300
@@ -0,0 +1,118 @@
+/*
+* Copyright (c) 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:
+*  wmdrmotaaccess.h
+*
+*/
+
+#ifndef _WMDRM_OTA_ACCESS_API_H_
+#define _WMDRM_OTA_ACCESS_API_H_
+
+// Forward declarations
+class CWmDrmOtaAccessEcomInterface;
+
+// Class declaration
+/**
+*  Provides access to WM DRM Over-the-Air
+*  Functionality
+*
+*  @code
+*  // Way to use CWmDrmOtaAccess
+*
+*  CWmDrmOtaAccess* access( CWmDrmOtaAccess::NewL() );
+*  delete access;
+*  @endcode
+*
+*/
+NONSHARABLE_CLASS( CWmDrmOtaAccess ) : public CBase
+    {     
+public:
+    /** Constructors */
+    IMPORT_C static CWmDrmOtaAccess* NewL();
+    IMPORT_C static CWmDrmOtaAccess* NewLC();
+
+    /** Destructor */
+    IMPORT_C virtual ~CWmDrmOtaAccess();
+    
+    /**
+    *  GetLicenseChallengeL
+    *  Syncronous method
+    *
+    *  Get the license challenge that can be sent to the server to fetch
+    *  a license
+    *
+    *  @param   aDrmHeader  IN  The drm header
+    *  @param   aChallenge  OUT Resulting Challenge
+    *  @return  None
+    *  @leave   Symbian OS error codes      
+    */
+    IMPORT_C void GetLicenseChallengeL( const TDesC8& aDrmHeader, 
+                                        HBufC8*& aChallenge );
+
+    /**
+    *  GetLicenseChallengeL
+    *  Asyncronous method
+    *
+    *  Get the license challenge that can be sent to the server to fetch
+    *  a license    
+    *
+    *  @param   aDrmHeader  IN  The drm header
+    *  @param   aChallenge  OUT Resulting Challenge
+    *  @param   aStatus     OUT Asyncronous request status
+    *  @return  None
+    *  @leave   Symbian OS error codes      
+    */
+    IMPORT_C void GetLicenseChallengeL( const TDesC8& aDrmHeader, 
+                                        HBufC8*& aChallenge, 
+                                        TRequestStatus& aStatus );
+    
+    /**
+    *  HandleLicenseResponseL
+    *  Syncronous method
+    *
+    *  Handle the response received from the server in correspondence
+    *  to the license challenge
+    *
+    *  @param   aResponse   IN  The license response
+    *  @return  None
+    *  @leave   Symbian OS error codes        
+    */
+    IMPORT_C void HandleLicenseResponseL( const TDesC8& aResponse );
+
+    /**
+    *  GetLicenseChallengeL
+    *  Asyncronous method
+    *
+    *  Handle the response received from the server in correspondence
+    *  to the license challenge
+    *    
+    *  @param   aResponse   IN  The license response
+    *  @param   aStatus     OUT Asyncronous request status    
+    *  @return  None
+    *  @leave   Symbian OS error codes      
+    */
+    IMPORT_C void HandleLicenseResponseL( const TDesC8& aResponse, 
+                                          TRequestStatus& aStatus );
+
+private:
+    /** Default constructor */
+    CWmDrmOtaAccess();
+    /** Second phase constructor */
+    void ConstructL();
+
+    /** Internal interface to the WM DRM system */
+    CWmDrmOtaAccessEcomInterface* iWmDrmOtaAccessEcomInterface;
+
+    };
+#endif // _WMDRM_OTA_ACCESS_API_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/drm_plat/wmdrm_ota_access_api/inc/wmdrmotaaccessecominterface.h	Wed Apr 14 16:15:06 2010 +0300
@@ -0,0 +1,104 @@
+/*
+* Copyright (c) 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:
+*  wmdrmotaaccessecominterface.h
+*
+*/
+
+#ifndef _WMDRMOTAACCESSECOMINTERFACE_H_
+#define _WMDRMOTAACCESSECOMINTERFACE_H_
+
+#include <e32base.h>
+
+// Class declaration
+// CWmDrmAccessEcomInterface
+// ecom plugin interface for WM DRM access implementation
+// @see CWmDrmAccess
+NONSHARABLE_CLASS( CWmDrmOtaAccessEcomInterface ) : public CBase
+    {
+public:
+    // Constructors
+    static CWmDrmOtaAccessEcomInterface* NewL();
+    static CWmDrmOtaAccessEcomInterface* NewLC();
+
+    // Destructor
+    virtual ~CWmDrmOtaAccessEcomInterface();
+
+    /**
+    *  GetLicenseChallengeL
+    *  Syncronous method
+    *
+    *  Get the license challenge that can be sent to the server to fetch
+    *  a license
+    *
+    *  @param   aDrmHeader  IN  The drm header
+    *  @param   aChallenge  OUT Resulting Challenge
+    *  @return  None
+    *  @leave   Symbian OS error codes      
+    */
+    virtual void GetLicenseChallengeL( const TDesC8& aDrmHeader, 
+                               HBufC8*& aChallenge ) = 0;
+
+    /**
+    *  GetLicenseChallengeL
+    *  Asyncronous method
+    *
+    *  Get the license challenge that can be sent to the server to fetch
+    *  a license    
+    *
+    *  @param   aDrmHeader  IN  The drm header
+    *  @param   aChallenge  OUT Resulting Challenge
+    *  @param   aStatus     OUT Asyncronous request status
+    *  @return  None
+    *  @leave   Symbian OS error codes      
+    */
+    virtual void GetLicenseChallengeL( const TDesC8& aDrmHeader, 
+                                       HBufC8*& aChallenge, 
+                                       TRequestStatus& aStatus ) = 0;
+    
+    /**
+    *  HandleLicenseResponseL
+    *  Syncronous method
+    *
+    *  Handle the response received from the server in correspondence
+    *  to the license challenge
+    *
+    *  @param   aResponse   IN  The license response
+    *  @return  None
+    *  @leave   Symbian OS error codes        
+    */
+    virtual void HandleLicenseResponseL( const TDesC8& aResponse ) = 0;
+
+    /**
+    *  GetLicenseChallengeL
+    *  Asyncronous method
+    *
+    *  Handle the response received from the server in correspondence
+    *  to the license challenge
+    *    
+    *  @param   aResponse   IN  The license response
+    *  @param   aStatus     OUT Asyncronous request status    
+    *  @return  None
+    *  @leave   Symbian OS error codes      
+    */
+    virtual void HandleLicenseResponseL( const TDesC8& aResponse, 
+                                         TRequestStatus& aStatus ) = 0;
+
+private:
+    // internal variable used on freeing ecom related resources
+    TUid iDtor_ID_Key;
+    };
+
+#include "wmdrmotaaccessecominterface.inl"
+#endif _WMDRMOTAACCESSECOMINTERFACE_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/drm_plat/wmdrm_ota_access_api/inc/wmdrmotaaccessecominterface.inl	Wed Apr 14 16:15:06 2010 +0300
@@ -0,0 +1,67 @@
+/*
+* Copyright (c) 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:
+*  wmdrmotaaccessecominterface.inl
+*
+*/
+
+#include <ecom/ecom.h> // for interface
+
+// ---------------------------------------------------------------------------
+// CWmDrmOtaAccessEcomInterface::NewL
+// ---------------------------------------------------------------------------
+//
+CWmDrmOtaAccessEcomInterface* CWmDrmOtaAccessEcomInterface::NewL()
+    {
+    const TUid KWmdrmOtaAccessEcomInterfaceUid =
+        {
+        0x2002E67D
+        };
+    TAny* theImplementation( NULL );
+
+    TEComResolverParams resolveParams;
+    resolveParams.SetWildcardMatch( ETrue );
+
+    theImplementation = REComSession::CreateImplementationL(
+        KWmdrmOtaAccessEcomInterfaceUid,
+        _FOFF( CWmDrmOtaAccessEcomInterface, iDtor_ID_Key ),
+        resolveParams );
+
+    return reinterpret_cast<CWmDrmOtaAccessEcomInterface*>( theImplementation );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CWmDrmOtaAccessEcomInterface::NewLC
+// ---------------------------------------------------------------------------
+//
+CWmDrmOtaAccessEcomInterface* CWmDrmOtaAccessEcomInterface::NewLC()
+    {
+    CWmDrmOtaAccessEcomInterface* self( CWmDrmOtaAccessEcomInterface::NewL() );
+
+    CleanupStack::PushL( self );
+    return self;
+    }
+
+
+
+// ---------------------------------------------------------------------------
+// CWmDrmOtaAccessEcomInterface::~CWmDrmOtaAccessEcomInterface
+// ---------------------------------------------------------------------------
+//
+CWmDrmOtaAccessEcomInterface::~CWmDrmOtaAccessEcomInterface()
+    {
+    REComSession::DestroyedImplementation( iDtor_ID_Key );
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/drm_plat/wmdrm_ota_access_api/wmdrm_ota_access_api.metaxml	Wed Apr 14 16:15:06 2010 +0300
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<api id="49fc416669cd9affd6778815e848f92b" dataversion="2.0">
+  <name>WMDRM Ota Access API</name>
+  <description>Platform API to access WMDRM Ota Interface</description>
+  <type>c++</type>
+  <collection>wmdrm</collection>
+  <libs>
+    <lib name="wmdrmotaaccess.lib"/>
+  </libs>
+  <release category="platform" sinceversion="5.0"/>
+  <attributes>
+    <htmldocprovided>no</htmldocprovided>
+    <adaptation>no</adaptation>
+  </attributes>
+</api>
--- a/omadrm/drmengine/drmclock/Src/DRMClockClient.cpp	Wed Mar 31 22:01:10 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +0,0 @@
-/*
-* Copyright (c) 2003 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:  Client side class implementation
-*
-*/
-
-
-// INCLUDE FILES
-#include "DRMClockClient.h"
-#include "DRMClientServer.h"
-
-#include "DRMLog.h"
-
-// EXTERNAL DATA STRUCTURES
-// EXTERNAL FUNCTION PROTOTYPES  
-
-// CONSTANTS
-// MACROS
-
-// LOCAL CONSTANTS AND MACROS
-// To initialize C/S parameters.
-#define PARAMS TAny* params[ KMaxMessageArguments ]; \
-for ( TUint8 i = 0; i < KMaxMessageArguments; ++i ) { params[ i ] = NULL; }
-#define CLEARPARAM Mem::FillZ( params, \
-KMaxMessageArguments * sizeof( TAny* ) );
-
-// Maximum number of message slots that we use
-const TInt KMaxMessageSlots = 3;
-
-
-// MODULE DATA STRUCTURES
-// LOCAL FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// RDRMClockClient::RDRMClockClient
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C RDRMClockClient::RDRMClockClient()
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// RDRMClockClient::~RDRMClockClient
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C RDRMClockClient::~RDRMClockClient()
-    {
-    }    
-
-// -----------------------------------------------------------------------------
-// RDRMClockClient::Connect
-// Opens connection to the server.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RDRMClockClient::Connect()
-    {
-    TInt ret = KErrNone;
-    
-    DRMLOG( _L( "RDRMClockClient::Connect" ) );
-
-    const TVersion requiredVersion( 
-        DRMClock::KServerMajorVersion,
-        DRMClock::KServerMinorVersion,
-        DRMClock::KServerBuildVersion );
-    
-    DRMLOG( _L("RDRMClockClient: Create a new session" ) );
-    ret = CreateSession( DRMClock::KDRMServerName,
-                         requiredVersion, 
-                         KMaxMessageSlots );
-
-    DRMLOG2( _L( "Result: %d") , ret );
-    
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// RDRMClockClient::Close
-// Closes the connection to the server.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void RDRMClockClient::Close() 
-    {
-    DRMLOG( _L( "RDRMClockClient::Close" ) );
-
-    RHandleBase::Close();
-    }
-
-// -----------------------------------------------------------------------------
-// RDRMClockClient::GetSecureTime
-// Gets the secure time from the DRMClockServer
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RDRMClockClient::GetSecureTime( TTime& aTime, TInt& aTimeZone,
-                                     DRMClock::ESecurityLevel& aSecurityLevel )
-    {
-    TPckg<TTime> package(aTime);
-    TPckg<TInt> package2(aTimeZone);
-    TPckg<DRMClock::ESecurityLevel> package3(aSecurityLevel);
-                    
-    DRMLOG( _L( "RDRMClockClient::GetSecureTime" ) );
-    TInt error = KErrNone;
-    
-    // For C/S communications.
-    PARAMS;
-    
-    // Set the parameters.
-    params[ 0 ] = reinterpret_cast< TAny* >( &package );
-    params[ 1 ] = reinterpret_cast< TAny* >( &package2 );
-    params[ 2 ] = reinterpret_cast< TAny* >( &package3 );
-    
-    // Send the message.
-    error = SendReceive( DRMClock::EGetDRMTime, params );
-    
-    // Reset
-    CLEARPARAM;
-    
-    DRMLOG2( _L( "RDRMClockClient::GetSecureTime: %d" ), error );
-
-    return error;
-    }
-
-
-// -----------------------------------------------------------------------------
-// RDRMClockClient::UpdateSecureTime
-// Updates the secure time on the DRMClockServer
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RDRMClockClient::UpdateSecureTime( const TTime& aTime, const TInt& aTimeZone )
-    {
-    TInt error = KErrNone;
-    TPckg<TTime> package(aTime);
-    TPckg<TInt> package2(aTimeZone);
-    
-    DRMLOG( _L( "RDRMClockClient::UpdateSecureTime" ) );
-    
-    // For C/S communications.
-    PARAMS;
-    
-    params[ 0 ] = reinterpret_cast< TAny* >( &package );
-    params[ 1 ] = reinterpret_cast< TAny* >( &package2 );
-    
-    error = SendReceive( DRMClock::EUpdateDRMTime, params );
-    
-    CLEARPARAM;
-    
-    DRMLOG2( _L( "RDRMClockClient::UpdateSecureTime: " ), error );
-
-    // All done.
-    return error;
-    }
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-//  End of File  
--- a/omadrm/drmengine/roapstorage/inc/RoapStorageSession.h	Wed Mar 31 22:01:10 2010 +0300
+++ b/omadrm/drmengine/roapstorage/inc/RoapStorageSession.h	Wed Apr 14 16:15:06 2010 +0300
@@ -157,8 +157,7 @@
 
     void UpdateDrmTimeL( const RMessage2& aMessage );
 
-    void
-        CRoapStorageSession::VerifyOcspResponsesL( const RMessage2& aMessage );
+    void VerifyOcspResponsesL( const RMessage2& aMessage );
 
     void GetOcspResponderIdL( const RMessage2& aMessage );
 
--- a/omadrm/drmengine/server/inc/DRMPointerArray.h	Wed Mar 31 22:01:10 2010 +0300
+++ b/omadrm/drmengine/server/inc/DRMPointerArray.h	Wed Apr 14 16:15:06 2010 +0300
@@ -39,7 +39,7 @@
         TBool iDoResetAndDestroy;
     };
 
-template < class T > NONSHARABLE_CLASS( CDRMPointerArray ) : public CBase, public RDRMPointerArray< class T >
+template < class T > NONSHARABLE_CLASS( CDRMPointerArray ) : public CBase, public RDRMPointerArray< T >
     {
     public:
         static CDRMPointerArray* NewLC( TInt aGranularity );
--- a/wmdrm/camese/wmdrmdlaapp/src/wmdrmdlabrowsercontainer.cpp	Wed Mar 31 22:01:10 2010 +0300
+++ b/wmdrm/camese/wmdrmdlaapp/src/wmdrmdlabrowsercontainer.cpp	Wed Apr 14 16:15:06 2010 +0300
@@ -34,8 +34,7 @@
     {
     CreateWindowL();
     SetRect( iView->ClientRect() );
-    ActivateL();
-
+    
     iBrCtlInterface = CreateBrowserControlL(
             this,                                      // parent control
             iView->ClientRect(),                       // client rect
@@ -59,6 +58,7 @@
                                          ETrue );
     iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsEmbedded,
                                          ETrue );
+    ActivateL();
     }
 
 // ---------------------------------------------------------------------------
--- a/wmdrm/camese/wmdrmdladefaulthttpplugin/src/wmdrmdladefaulthttpmanager.cpp	Wed Mar 31 22:01:10 2010 +0300
+++ b/wmdrm/camese/wmdrmdladefaulthttpplugin/src/wmdrmdladefaulthttpmanager.cpp	Wed Apr 14 16:15:06 2010 +0300
@@ -660,9 +660,9 @@
     if ( (iState == EOpen) && iKeepAlive )
         {
         TConnectionInfo connectionInfo;
-        GetConnectionInfoL(connectionInfo);
-        if ( connectionInfo.iIapId != iIapNumber &&
-             iIapNumber != 0 && connectionInfo.iIapId != 0 )
+        TRAPD(err, GetConnectionInfoL(connectionInfo) );
+        if ( err || ( connectionInfo.iIapId != iIapNumber &&
+             iIapNumber != 0 && connectionInfo.iIapId != 0 ) )
             {
             CleanupConnection();
             iState = EStart;
--- a/wmdrm/group/bld.inf	Wed Mar 31 22:01:10 2010 +0300
+++ b/wmdrm/group/bld.inf	Wed Apr 14 16:15:06 2010 +0300
@@ -69,3 +69,5 @@
 #endif // __WINDOWS_MEDIA_DRM
 
 #include "../wmdrmengine/wmdrmaccess/group/bld.inf"
+
+#include "../wmdrmengine/wmdrmotaaccess/group/bld.inf"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wmdrm/wmdrmengine/wmdrmotaaccess/bwins/wmdrmotaaccessu.def	Wed Apr 14 16:15:06 2010 +0300
@@ -0,0 +1,9 @@
+EXPORTS
+	??1CWmDrmOtaAccess@@UAE@XZ @ 1 NONAME ; CWmDrmOtaAccess::~CWmDrmOtaAccess(void)
+	?NewL@CWmDrmOtaAccess@@SAPAV1@XZ @ 2 NONAME ; class CWmDrmOtaAccess * CWmDrmOtaAccess::NewL(void)
+	?NewLC@CWmDrmOtaAccess@@SAPAV1@XZ @ 3 NONAME ; class CWmDrmOtaAccess * CWmDrmOtaAccess::NewLC(void)
+	?HandleLicenseResponseL@CWmDrmOtaAccess@@QAEXABVTDesC8@@@Z @ 4 NONAME ; void CWmDrmOtaAccess::HandleLicenseResponseL(class TDesC8 const &)
+	?GetLicenseChallengeL@CWmDrmOtaAccess@@QAEXABVTDesC8@@AAPAVHBufC8@@AAVTRequestStatus@@@Z @ 5 NONAME ; void CWmDrmOtaAccess::GetLicenseChallengeL(class TDesC8 const &, class HBufC8 * &, class TRequestStatus &)
+	?HandleLicenseResponseL@CWmDrmOtaAccess@@QAEXABVTDesC8@@AAVTRequestStatus@@@Z @ 6 NONAME ; void CWmDrmOtaAccess::HandleLicenseResponseL(class TDesC8 const &, class TRequestStatus &)
+	?GetLicenseChallengeL@CWmDrmOtaAccess@@QAEXABVTDesC8@@AAPAVHBufC8@@@Z @ 7 NONAME ; void CWmDrmOtaAccess::GetLicenseChallengeL(class TDesC8 const &, class HBufC8 * &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wmdrm/wmdrmengine/wmdrmotaaccess/eabi/wmdrmotaaccessu.def	Wed Apr 14 16:15:06 2010 +0300
@@ -0,0 +1,11 @@
+EXPORTS
+	_ZN15CWmDrmOtaAccess4NewLEv @ 1 NONAME
+	_ZN15CWmDrmOtaAccess5NewLCEv @ 2 NONAME
+	_ZN15CWmDrmOtaAccessD0Ev @ 3 NONAME
+	_ZN15CWmDrmOtaAccessD1Ev @ 4 NONAME
+	_ZN15CWmDrmOtaAccessD2Ev @ 5 NONAME
+	_ZN15CWmDrmOtaAccess20GetLicenseChallengeLERK6TDesC8RP6HBufC8 @ 6 NONAME
+	_ZN15CWmDrmOtaAccess20GetLicenseChallengeLERK6TDesC8RP6HBufC8R14TRequestStatus @ 7 NONAME
+	_ZN15CWmDrmOtaAccess22HandleLicenseResponseLERK6TDesC8 @ 8 NONAME
+	_ZN15CWmDrmOtaAccess22HandleLicenseResponseLERK6TDesC8R14TRequestStatus @ 9 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wmdrm/wmdrmengine/wmdrmotaaccess/group/bld.inf	Wed Apr 14 16:15:06 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 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:
+*  bld.inf
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_EXPORTS
+../rom/wmdrmotaaccess.iby      CORE_MW_LAYER_IBY_EXPORT_PATH( wmdrmotaaccess.iby )
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_MMPFILES
+wmdrmotaaccess.mmp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wmdrm/wmdrmengine/wmdrmotaaccess/group/wmdrmotaaccess.mmp	Wed Apr 14 16:15:06 2010 +0300
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 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:
+*  wmdrmotaaccess.mmp
+*
+*/
+
+#include <platform_paths.hrh>
+
+TARGET          wmdrmotaaccess.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x2002E680
+
+CAPABILITY      ALL -TCB
+
+DEFFILE         wmdrmotaaccess.def
+
+SOURCEPATH      ../src
+SOURCE          wmdrmotaaccess.cpp
+
+MW_LAYER_SYSTEMINCLUDE
+
+USERINCLUDE     ../inc
+
+LIBRARY         euser.lib
+LIBRARY         ecom.lib
+
+LANG            SC
+
+SMPSAFE
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wmdrm/wmdrmengine/wmdrmotaaccess/rom/wmdrmotaaccess.iby	Wed Apr 14 16:15:06 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 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:
+*  wmdrmotaaccess.iby
+*
+*/
+
+#ifndef _WMDRMOTAACCESS_IBY_
+#define _WMDRMOTAACCESS_IBY_
+#include <data_caging_paths_for_iby.hrh>
+
+#if (defined __WINDOWS_MEDIA_DRM)
+file=ABI_DIR\BUILD_DIR\wmdrmotaaccess.dll          PROGRAMS_DIR\wmdrmotaaccess.dll
+#endif // __WINDOWS_MEDIA_DRM
+
+#endif // _WMDRMACCESS_IBY_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wmdrm/wmdrmengine/wmdrmotaaccess/src/wmdrmotaaccess.cpp	Wed Apr 14 16:15:06 2010 +0300
@@ -0,0 +1,143 @@
+/*
+* Copyright (c) 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:
+*  wmdrmotaaccess.cpp
+*
+*/
+
+#include <e32base.h>
+#include <ecom/ecom.h>
+
+#include <wmdrmotaaccess.h>
+#include <wmdrmotaaccessecominterface.h>
+
+// ---------------------------------------------------------------------------
+// CWmDrmOtaAccess::NewL
+// ---------------------------------------------------------------------------
+EXPORT_C CWmDrmOtaAccess* CWmDrmOtaAccess::NewL()
+    {
+    CWmDrmOtaAccess* self(CWmDrmOtaAccess::NewLC());
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CWmDrmOtaAccess::NewLC
+// ---------------------------------------------------------------------------
+EXPORT_C CWmDrmOtaAccess* CWmDrmOtaAccess::NewLC()
+    {
+    CWmDrmOtaAccess* self(new (ELeave) CWmDrmOtaAccess);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CWmDrmOtaAccess::ConstructL
+// ---------------------------------------------------------------------------
+void CWmDrmOtaAccess::ConstructL()
+    {
+    iWmDrmOtaAccessEcomInterface = CWmDrmOtaAccessEcomInterface::NewL();
+    }
+
+
+// ---------------------------------------------------------------------------
+// CWmDrmOtaAccess::CWmDrmOtaAccess
+// ---------------------------------------------------------------------------
+CWmDrmOtaAccess::CWmDrmOtaAccess()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CWmDrmOtaAccess::~CWmDrmOtaAccess
+// ---------------------------------------------------------------------------
+EXPORT_C CWmDrmOtaAccess::~CWmDrmOtaAccess()
+    {
+    if (iWmDrmOtaAccessEcomInterface)
+        {
+        delete iWmDrmOtaAccessEcomInterface;
+        }
+    REComSession::FinalClose();
+    }
+
+
+// ---------------------------------------------------------------------------
+// CWmDrmOtaAccess::GetLicenseChallengeL
+// ---------------------------------------------------------------------------
+EXPORT_C void CWmDrmOtaAccess::GetLicenseChallengeL( const TDesC8& aDrmHeader, 
+                                                     HBufC8*& aChallenge )
+    {
+    // Ecom interface not available    
+    if( !iWmDrmOtaAccessEcomInterface )
+        {
+        User::Leave( KErrNotReady );    
+        }   
+    
+    iWmDrmOtaAccessEcomInterface->GetLicenseChallengeL( aDrmHeader, 
+                                                        aChallenge );                                 
+    }
+
+// ---------------------------------------------------------------------------
+// CWmDrmOtaAccess::GetLicenseChallengeL
+// ---------------------------------------------------------------------------
+EXPORT_C void CWmDrmOtaAccess::GetLicenseChallengeL( const TDesC8& aDrmHeader, 
+                                                     HBufC8*& aChallenge, 
+                                                     TRequestStatus& aStatus )
+    {
+    // Ecom interface not available    
+    if( !iWmDrmOtaAccessEcomInterface )
+        {
+        User::Leave( KErrNotReady );    
+        }   
+    
+    iWmDrmOtaAccessEcomInterface->GetLicenseChallengeL( aDrmHeader, 
+                                                        aChallenge,
+                                                        aStatus );                                 
+    }                                                     
+    
+// ---------------------------------------------------------------------------
+// CWmDrmOtaAccess::HandleLicenseResponseL
+// ---------------------------------------------------------------------------
+EXPORT_C void CWmDrmOtaAccess::HandleLicenseResponseL( const TDesC8& aResponse )
+    {
+    // Ecom interface not available    
+    if( !iWmDrmOtaAccessEcomInterface )
+        {
+        User::Leave( KErrNotReady );    
+        }   
+    
+    iWmDrmOtaAccessEcomInterface->HandleLicenseResponseL( aResponse );                                
+    }    
+// ---------------------------------------------------------------------------
+// CWmDrmOtaAccess::HandleLicenseResponseL
+// ---------------------------------------------------------------------------
+EXPORT_C void CWmDrmOtaAccess::HandleLicenseResponseL( const TDesC8& aResponse, 
+                                                       TRequestStatus& aStatus )
+    {
+    // Ecom interface not available    
+    if( !iWmDrmOtaAccessEcomInterface )
+        {
+        User::Leave( KErrNotReady );    
+        }   
+    
+    iWmDrmOtaAccessEcomInterface->HandleLicenseResponseL( aResponse,
+                                                          aStatus );                                 
+    }                                                           
+
+
+
+    
+// End of file