diff -r 058b1fc1663a -r 8a173132b0aa scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowPluginUtils.cpp --- a/scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowPluginUtils.cpp Mon Jan 18 20:19:52 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,327 +0,0 @@ -/* -* Copyright (c) 2006 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: SlideshowPlugin utility classes and functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include - -#include "SlideshowPluginUtils.h" - -_LIT(KSSPDriveLetterMC, "E"); - -// ============================ MEMBER FUNCTIONS =============================== - -// Repository watcher - -// --------------------------------------------------------------------------- -// CRepositoryWatcher::NewL -// --------------------------------------------------------------------------- -// -CRepositoryWatcher* CRepositoryWatcher::NewL( - const TUid aUid, - const TUint32 aKey, - CCenRepNotifyHandler::TCenRepKeyType aKeyType, - TCallBack aCallBack, - CRepository* aRepository) - { - CRepositoryWatcher* self = new(ELeave) - CRepositoryWatcher(aUid, aKey, aCallBack, aRepository); - - CleanupStack::PushL(self); - self->ConstructL(aKeyType); - CleanupStack::Pop(self); - - return self; - } - -// --------------------------------------------------------------------------- -// CRepositoryWatcher::NewL -// --------------------------------------------------------------------------- -// -CRepositoryWatcher* CRepositoryWatcher::NewL( - const TUid aUid, - TCallBack aCallBack, - CRepository* aRepository) - { - CRepositoryWatcher* self = new(ELeave) CRepositoryWatcher( - aUid, NCentralRepositoryConstants::KInvalidNotificationId, aCallBack, aRepository); - - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - - return self; - } - -// --------------------------------------------------------------------------- -// CRepositoryWatcher::~CRepositoryWatcher -// --------------------------------------------------------------------------- -// -CRepositoryWatcher::~CRepositoryWatcher() - { - if ( iNotifyHandler ) - { - iNotifyHandler->StopListening(); - delete iNotifyHandler; - } - } - -// --------------------------------------------------------------------------- -// CRepositoryWatcher::CRepositoryWatcher -// --------------------------------------------------------------------------- -// -CRepositoryWatcher::CRepositoryWatcher( - const TUid aUid, - const TUint32 aKey, - TCallBack aCallBack, - CRepository* aRepository) - : - iUid(aUid), iKey(aKey), iCallBack(aCallBack), iRepository(aRepository) - { - } - -// --------------------------------------------------------------------------- -// CRepositoryWatcher::ConstructL -// --------------------------------------------------------------------------- -// -void CRepositoryWatcher::ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType) - { - iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository, aKeyType, iKey); - iNotifyHandler->StartListeningL(); - } - -// --------------------------------------------------------------------------- -// CRepositoryWatcher::ConstructL -// --------------------------------------------------------------------------- -// -void CRepositoryWatcher::ConstructL() - { - iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository); - iNotifyHandler->StartListeningL(); - } - -// --------------------------------------------------------------------------- -// CRepositoryWatcher::ChangedKey -// --------------------------------------------------------------------------- -// -TUint32 CRepositoryWatcher::ChangedKey() - { - return iChangedKey; - } - -// --------------------------------------------------------------------------- -// CRepositoryWatcher::HandleNotifyInt -// --------------------------------------------------------------------------- -// -void CRepositoryWatcher::HandleNotifyInt( - TUint32 aKey, TInt /*aNewValue*/ ) - { - iChangedKey = aKey; - iCallBack.CallBack(); - iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId; - } - -// --------------------------------------------------------------------------- -// CRepositoryWatcher::HandleNotifyString -// --------------------------------------------------------------------------- -// -void CRepositoryWatcher::HandleNotifyString( TUint32 aKey, - const TDesC16& /*aNewValue*/ ) - { - iChangedKey = aKey; - iCallBack.CallBack(); - iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId; - } - -// --------------------------------------------------------------------------- -// CRepositoryWatcher::HandleNotifyGeneric -// --------------------------------------------------------------------------- -// -void CRepositoryWatcher::HandleNotifyGeneric(TUint32 aKey) - { - iChangedKey = aKey; - iCallBack.CallBack(); - iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId; - } - -// --------------------------------------------------------------------------- -// CRepositoryWatcher::HandleNotifyError -// --------------------------------------------------------------------------- -// -void CRepositoryWatcher::HandleNotifyError(TUint32 /*aKey*/, TInt /*aError*/, CCenRepNotifyHandler* /*aHandler*/) - { - } - - -// P & S subscriber - -// --------------------------------------------------------------------------- -// CPSSubscriber::CPSSubscriber -// --------------------------------------------------------------------------- -// -CPSSubscriber::CPSSubscriber(TCallBack aCallBack, RProperty& aProperty) - : CActive(EPriorityNormal), iCallBack(aCallBack), iProperty(aProperty) - { - CActiveScheduler::Add(this); - } - -// --------------------------------------------------------------------------- -// CPSSubscriber::~CPSSubscriber -// --------------------------------------------------------------------------- -// -CPSSubscriber::~CPSSubscriber() - { - Cancel(); - } - -// --------------------------------------------------------------------------- -// CPSSubscriber::SubscribeL -// --------------------------------------------------------------------------- -// -void CPSSubscriber::SubscribeL() - { - if (!IsActive()) - { - iProperty.Subscribe(iStatus); - SetActive(); - } - } - -// --------------------------------------------------------------------------- -// CPSSubscriber::StopSubscribe -// --------------------------------------------------------------------------- -// -void CPSSubscriber::StopSubscribe() - { - Cancel(); - } - -// --------------------------------------------------------------------------- -// CPSSubscriber::RunL -// --------------------------------------------------------------------------- -// -void CPSSubscriber::RunL() - { - if (iStatus.Int() == KErrNone) - { - iCallBack.CallBack(); - SubscribeL(); - } - } - -// --------------------------------------------------------------------------- -// CPSSubscriber::DoCancel -// --------------------------------------------------------------------------- -// -void CPSSubscriber::DoCancel() - { - iProperty.Cancel(); - } - - - -// ========== UTILITIES CLASS =============================== - -// Checks if memory card is present -TBool SlideshowUtil::IsMCPresent() - { - RFs& fs = CCoeEnv::Static()->FsSession(); - - TInt error = KErrNone; - TDriveInfo driveInfo; - TInt res = 0; - TInt err = fs.CharToDrive(PathInfo::MemoryCardRootPath()[0], res); - error = fs.Drive(driveInfo, res ); - - // Not present, locked or unknown is bad - if ((error != KErrNone) || - (driveInfo.iMediaAtt & KMediaAttLocked) || - (driveInfo.iType == EMediaNotPresent) || - (driveInfo.iType == EMediaUnknown)) - { - return EFalse; - } - - // Read-only is fine - return ETrue; - } - - -// Checks if the given file is on memory card -TBool SlideshowUtil::IsOnMC(TFileName aFile) - { - // Grab drive letter from path and compare to memory card drive letter - TBuf<1> driveLetterBuf; - driveLetterBuf.CopyUC(aFile.Left(1)); - - if (driveLetterBuf.Compare(KSSPDriveLetterMC) == 0) - { - return ETrue; - } - - return EFalse; - } - - -// Checks that the file has enough DRM rights to be displayed -TBool SlideshowUtil::DRMCheck(CDRMHelper *aDRMHelper, TDesC& /* aFileName */) - { - if (!aDRMHelper) - { - return EFalse; - } - - return ETrue; - } - - -// Checks that the slide has enough DRM rights to be displayed -TBool SlideshowUtil::DRMCheck(CDRMHelper *aDRMHelper, CSlideshowSlide* aSlide) - { - if (!aDRMHelper || !aSlide) - { - return EFalse; - } - - return (DRMCheck(aDRMHelper, *(aSlide->FileName()))); - } - - -// Consumes the slide's DRM rights -void SlideshowUtil::DRMConsume(CDRMHelper* aDRMHelper, CSlideshowSlide* aSlide) - { - if (!aDRMHelper || !aSlide) - { - return; - } - - aDRMHelper->ConsumeFile2(*(aSlide->FileName()), - ContentAccess::EView, - CDRMHelper::EStart); - aDRMHelper->ConsumeFile2(*(aSlide->FileName()), - ContentAccess::EView, - CDRMHelper::EFinish); - } - - -// End of File