diff -r 000000000000 -r 95b198f216e5 wmdrm/camese/wmdrmdladefaulthttpplugin/src/wmdrmdladefaulthttpplugin.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wmdrm/camese/wmdrmdladefaulthttpplugin/src/wmdrmdladefaulthttpplugin.cpp Thu Dec 17 08:52:27 2009 +0200 @@ -0,0 +1,394 @@ +/* +* Copyright (c) 2008 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: WMDRM DLA Default HTTP Plugin +* +*/ + + +#include +#include +#include "wmdrmdladefaulthttpplugin.h" +#include "wmdrmdladefaultlicacq.h" +#include "wmdrmdladefaultmetering.h" +#include "wmdrmdladefaultplayready.h" + +#define _LOGGING_FILE L"wmdrmdladefaulthttpplugin.txt" +#include "logfn.h" + +// CONSTANTS +const TUid KWmDrmDlaDefaultUiPluginUid = { 0x20019575 }; + +// ======== LOCAL FUNCTIONS ======== + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::ConstructL +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::ConstructL() + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::ConstructL" ); + iLicenseAcquisition = CWmDrmDlaDefaultLicAcq::NewL( this ); + iMetering = CWmDrmDlaDefaultMetering::NewL( this ); + iPlayReady = CWmDrmDlaDefaultPlayReady::NewL( this ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::CWmDrmDlaDefaultHttpPlugin +// --------------------------------------------------------------------------- +// +CWmDrmDlaDefaultHttpPlugin::CWmDrmDlaDefaultHttpPlugin() + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::CWmDrmDlaDefaultHttpPlugin" ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::NewL +// --------------------------------------------------------------------------- +// +CWmDrmDlaDefaultHttpPlugin* CWmDrmDlaDefaultHttpPlugin::NewL() + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::NewL" ); + CWmDrmDlaDefaultHttpPlugin* self = + new( ELeave ) CWmDrmDlaDefaultHttpPlugin; + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::~CWmDrmDlaDefaultHttpPlugin +// --------------------------------------------------------------------------- +// +CWmDrmDlaDefaultHttpPlugin::~CWmDrmDlaDefaultHttpPlugin() + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::~CWmDrmDlaDefaultHttpPlugin" ); + delete iLicenseAcquisition; + delete iMetering; + delete iPlayReady; + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::ServiceIcon +// --------------------------------------------------------------------------- +// +CGulIcon* CWmDrmDlaDefaultHttpPlugin::ServiceIcon() + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::ServiceIcon" ); + return NULL; + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::SupportedFileL +// --------------------------------------------------------------------------- +// +TBool CWmDrmDlaDefaultHttpPlugin::SupportedFileL( + const RFile& aFile, + CWmDrmDlaUiNotifier*& aUiNotifier) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::SupportedFileL" ); + return iLicenseAcquisition->SupportedFileL( aFile, aUiNotifier ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::SupportedDrmHeaderL +// --------------------------------------------------------------------------- +// +TBool CWmDrmDlaDefaultHttpPlugin::SupportedDrmHeaderL( + const TDesC8& aHeader, + CWmDrmDlaUiNotifier*& aUiNotifier ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::SupportedDrmHeaderL" ); + return iLicenseAcquisition->SupportedDrmHeaderL( aHeader, aUiNotifier ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::SupportedMeteringCertificateL +// --------------------------------------------------------------------------- +// +TBool CWmDrmDlaDefaultHttpPlugin::SupportedMeteringCertificateL( + const TDesC8& aCertificate, + CWmDrmDlaUiNotifier*& aUiNotifier ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::SupportedMeteringCertificateL" ); + return iMetering->SupportedMeteringCertificateL( aCertificate, + aUiNotifier ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::SupportedInitiatorL +// --------------------------------------------------------------------------- +// +TBool CWmDrmDlaDefaultHttpPlugin::SupportedInitiatorL( + const TDesC8& aInitiator, + CWmDrmDlaUiNotifier*& aUiNotifier ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::SupportedInitiatorL" ); + return iPlayReady->SupportedInitiatorL( aInitiator, aUiNotifier ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::SilentL +// --------------------------------------------------------------------------- +// +TBool CWmDrmDlaDefaultHttpPlugin::SilentL( + const RFile& aFile ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::SilentL" ); + return iLicenseAcquisition->SilentL( aFile ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::ProcessDrmHeaderL +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::ProcessDrmHeaderL( + const TDesC8& aDrmHeader ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::ProcessDrmHeaderL" ); + iLicenseAcquisition->ProcessDrmHeaderL( aDrmHeader ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::ProcessInitiatorL +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::ProcessInitiatorL( + const TDesC8& aInitiator ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::ProcessInitiatorL" ); + iPlayReady->ProcessInitiatorL( aInitiator ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::AcquireLicense +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::AcquireLicense( + const TDesC8& aLicenseChallenge, + HBufC* aLicenseServerUrl, + TRequestStatus& aStatus ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::AcquireLicense" ); + iLicenseAcquisition->AcquireLicense( aLicenseChallenge, + aLicenseServerUrl, + aStatus ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::GetLicenseResponseL +// --------------------------------------------------------------------------- +// +HBufC8* CWmDrmDlaDefaultHttpPlugin::GetLicenseResponseL() + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::GetLicenseResponseL" ); + return iLicenseAcquisition->GetLicenseResponseL(); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::SendLicenseStorageStatus +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::SendLicenseStorageStatus( + HBufC8* aTid, + const TDesC& aUrl, + TInt aError, + TRequestStatus& aStatus ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::SendLicenseStorageStatus" ); + iLicenseAcquisition->SendLicenseStorageStatus( aTid, + aUrl, + aError, + aStatus ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::SendDrmHeaderError +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::SendDrmHeaderError( + const TDesC& aErrorUrl, + TInt aError, + TRequestStatus& aStatus ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::SendDrmHeaderError" ); + iLicenseAcquisition->SendDrmHeaderError( aErrorUrl, aError, aStatus ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::GetContentUrlL +// --------------------------------------------------------------------------- +// +HBufC* CWmDrmDlaDefaultHttpPlugin::GetContentUrlL() + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::GetContentUrlL" ); + return iLicenseAcquisition->GetContentUrlL(); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::GetHtmlDataL +// --------------------------------------------------------------------------- +// +HBufC* CWmDrmDlaDefaultHttpPlugin::GetHtmlDataL() + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::GetHtmlDataL" ); + return iLicenseAcquisition->GetHtmlDataL(); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::CancelLicenseAcquisition +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::CancelLicenseAcquisition() + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::CancelLicenseAcquisition" ); + iLicenseAcquisition->CancelLicenseAcquisition(); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::ProcessMeteringChallenge +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::ProcessMeteringChallenge( + const TDesC8& aMeteringChallenge, + const TDesC& aUrl, + TRequestStatus& aStatus ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::ProcessMeteringChallenge" ); + iMetering->ProcessMeteringChallenge( aMeteringChallenge, aUrl, aStatus ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::GetMeteringResponse +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::GetMeteringResponse( + HBufC8*& aResponse, + TRequestStatus& aStatus ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::GetMeteringResponse" ); + iMetering->GetMeteringResponse( aResponse, aStatus ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::MeteringFinished +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::MeteringFinished() + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::MeteringFinished" ); + iMetering->MeteringFinished(); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::CancelMetering +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::CancelMetering() + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::CancelMetering" ); + iMetering->CancelMetering(); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::ProcessJoinDomainChallenge +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::ProcessJoinDomainChallenge( + const TDesC8& aJoinDomainChallenge, + const TDesC& aUrl, + TRequestStatus& aStatus ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::ProcessJoinDomainChallenge" ); + iPlayReady->ProcessJoinDomainChallenge( aJoinDomainChallenge, + aUrl, + aStatus ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::ProcessLeaveDomainChallenge +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::ProcessLeaveDomainChallenge( + const TDesC8& aLeaveDomainChallenge, + const TDesC& aUrl, + TRequestStatus& aStatus ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::ProcessLeaveDomainChallenge" ); + iPlayReady->ProcessLeaveDomainChallenge( aLeaveDomainChallenge, + aUrl, + aStatus ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::SetIapId +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::SetIapId( TInt aIapId ) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::SetIapId" ); + iLicenseAcquisition->SetIapId( aIapId ); + iMetering->SetIapId( aIapId ); + iPlayReady->SetIapId( aIapId ); + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::InitializeUiNotifierL +// --------------------------------------------------------------------------- +// +void CWmDrmDlaDefaultHttpPlugin::InitializeUiNotifierL() + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::InitializeUiNotifierL" ); + //Tries to initialize UiNotifier. If UiNotifier can't be created or + //initialization fails, then leaves with error code, won't take ownership + //of the notifier + iUiNotifier = NULL; + iUiNotifier = CWmDrmDlaUiNotifier::NewL(); + TRAPD( err, iUiNotifier->InitializeL( KWmDrmDlaDefaultUiPluginUid ) ); + if ( err ) + { + delete iUiNotifier; + iUiNotifier = NULL; + User::Leave( err ); + } + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::UiNotifier +// --------------------------------------------------------------------------- +// +CWmDrmDlaUiNotifier* CWmDrmDlaDefaultHttpPlugin::UiNotifier() + { + return iUiNotifier; + } + +// --------------------------------------------------------------------------- +// CWmDrmDlaDefaultHttpPlugin::Supported +// --------------------------------------------------------------------------- +// +TBool CWmDrmDlaDefaultHttpPlugin::Supported( + const TDesC8& aString, + const TDesC8& aIdentifier) + { + LOGFN( "CWmDrmDlaDefaultHttpPlugin::Supported" ); + TBool supported( EFalse ); + if ( aString.FindF( aIdentifier ) != KErrNotFound ) + { + supported = ETrue; + } + LOG2( "supported: %d", supported ); + return supported; + }