--- a/mmserv/tms/tmsserver/src/tmsrtcontainer.cpp Tue Aug 31 15:43:02 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,257 +0,0 @@
-/*
- * 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: Class representing ringing tone
- *
- */
-
-// INCLUDE FILES
-#include <apgcli.h>
-#include <DRMHelper.h>
-#include <bldvariant.hrh>
-#include "tmsrtcontainer.h"
-
-using namespace TMS;
-
-// CONSTANTS
-// Rich audio file MIME types
-_LIT(KAac, "audio/aac");
-_LIT(KMp3, "audio/mp3");
-_LIT(KMpeg, "audio/mpeg");
-_LIT(K3gpp, "audio/3gpp");
-_LIT(KMp4, "audio/mp4");
-_LIT(KAmrWb, "audio/amr-wb");
-_LIT(KWavX, "audio/x-wav");
-_LIT(KWav, "audio/wav");
-// Rich video file MIME types
-_LIT(KV3gpp, "video/3gpp");
-_LIT(KVMp4, "video/mp4");
-_LIT(KV3gpp2, "video/3gpp2");
-// Used in CPhoneRingingTone
-_LIT(KPhoneRingingToneDriveZ, "z:");
-#ifdef RD_VIDEO_AS_RINGING_TONE
-_LIT(KPhoneRingingToneVideoMime, "video/*");
-_LIT(KPhoneRingingToneRealVideoMime, "*realmedia");
-#endif
-
-// -----------------------------------------------------------------------------
-// TMSRtContainer::TMSRtContainer
-// C++ default constructor
-// -----------------------------------------------------------------------------
-//
-TMSRtContainer::TMSRtContainer(TBool aDrmInPlayback) :
- iDrmInPlayback(aDrmInPlayback)
- {
- }
-
-// -----------------------------------------------------------------------------
-// TMSRtContainer::ConstructL
-// Symbian 2nd phase constructor
-// -----------------------------------------------------------------------------
-//
-void TMSRtContainer::ConstructL(const TDesC& aFileName)
- {
- iFileName = aFileName.AllocL();
- }
-
-// -----------------------------------------------------------------------------
-// TMSRtContainer::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-TMSRtContainer* TMSRtContainer::NewL(const TDesC& aFileName,
- TBool aDrmInPlayback)
- {
- TMSRtContainer* self = new (ELeave) TMSRtContainer(aDrmInPlayback);
- CleanupStack::PushL(self);
- self->ConstructL(aFileName);
- CleanupStack::Pop(self);
- return self;
- }
-
-// Destructor
-TMSRtContainer::~TMSRtContainer()
- {
- delete iFileName;
- delete iMimeType;
- }
-
-// -----------------------------------------------------------------------------
-// TMSRtContainer::SetFileName
-// -----------------------------------------------------------------------------
-//
-void TMSRtContainer::SetFileName(const TDesC& aFileName)
- {
- delete iFileName;
- iFileName = aFileName.Alloc();
- }
-
-// -----------------------------------------------------------------------------
-// TMSRtContainer::FileName
-// -----------------------------------------------------------------------------
-//
-const TDesC& TMSRtContainer::FileName() const
- {
- // iFileName is never NULL
- return *iFileName;
- }
-
-// -----------------------------------------------------------------------------
-// TMSRtContainer::MimeType
-// -----------------------------------------------------------------------------
-//
-const TDesC& TMSRtContainer::MimeType() const
- {
- if (iMimeType)
- {
- return *iMimeType;
- }
- else
- {
- return KNullDesC;
- }
- }
-
-// -----------------------------------------------------------------------------
-// TMSRtContainer::IsVideoRingingTone
-// -----------------------------------------------------------------------------
-//
-TBool TMSRtContainer::IsVideoRingingTone()
- {
-#ifdef RD_VIDEO_AS_RINGING_TONE
- if (RefreshMime() != KErrNone)
- {
- // try to handle as audio
- return EFalse;
- }
-
- TBool isVideo(EFalse);
-
- if (iMimeType && iMimeType->MatchF(KPhoneRingingToneVideoMime)
- != KErrNotFound)
- {
- isVideo = ETrue;
- }
- else if (iMimeType && iMimeType->MatchF(KPhoneRingingToneRealVideoMime)
- != KErrNotFound)
- {
- isVideo = ETrue;
- }
-
- if (isVideo)
- {
- if (IsFileInRom() && !IsFileInVideoDirectory())
- {
- // For ROM files check also location, because
- // MIME check is not fully reliable.
- isVideo = EFalse;
- }
- }
-
- return isVideo;
-
-#else
- // if extended security -> refresh MIME
- if (iDrmInPlayback)
- {
- RefreshMime();
- }
-
- return EFalse;
-#endif
- }
-
-// -----------------------------------------------------------------------------
-// TMSRtContainer::IsFileDrmProtected
-// -----------------------------------------------------------------------------
-//
-TBool TMSRtContainer::IsFileDrmProtected() const
- {
- const TDesC& type = MimeType();
-
- if (type == KAac || type == KMp3 || type == KMpeg || type == K3gpp ||
- type == KMp4 || type == KAmrWb || type == KWavX || type == KWav ||
- type == KV3gpp || type == KVMp4 || type == KV3gpp2)
- {
- ContentAccess::CContent* content = NULL;
- TRAPD(err, content = ContentAccess::CContent::NewL(*iFileName));
- if (err == KErrNone && content)
- {
- TInt drmProtected(0);
- content->GetAttribute(ContentAccess::EIsProtected, drmProtected);
- delete content;
- return drmProtected;
- }
- }
-
- return ETrue; // Other MIMEs can be played without DRM check.
- }
-
-// -----------------------------------------------------------------------------
-// TMSRtContainer::IsFileInRom
-// -----------------------------------------------------------------------------
-//
-TBool TMSRtContainer::IsFileInRom() const
- {
- TParsePtrC parsedName(*iFileName);
-
- // Files on ROM don't need to be checked for DRM
- if (parsedName.Drive().CompareF(KPhoneRingingToneDriveZ) == 0)
- {
- return ETrue;
- }
- else
- {
- return EFalse;
- }
- }
-
-// -----------------------------------------------------------------------------
-// TMSRtContainer::IsFileInVideoDirectory
-// -----------------------------------------------------------------------------
-//
-TBool TMSRtContainer::IsFileInVideoDirectory() const
- {
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// TMSRtContainer::RefreshMime
-// -----------------------------------------------------------------------------
-//
-TInt TMSRtContainer::RefreshMime()
- {
- TRAPD(err, RefreshMimeL());
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// TMSRtContainer::RefreshMimeL
-// -----------------------------------------------------------------------------
-//
-void TMSRtContainer::RefreshMimeL()
- {
- RApaLsSession apaLsSession;
- User::LeaveIfError(apaLsSession.Connect());
- CleanupClosePushL(apaLsSession);
- TUid dummyUid = {0};
- TDataType dataType(dummyUid);
- User::LeaveIfError(apaLsSession.AppForDocument(*iFileName, dummyUid,
- dataType));
- CleanupStack::PopAndDestroy(); // CleanupClosePushL
- delete iMimeType;
- iMimeType = NULL;
- iMimeType = dataType.Des().AllocL();
- }
-
-// End of File