mtpdataproviders/mtpplaybackcontroldp/src/cmtpplaybackmap.cpp
branchRCL_3
changeset 20 4a793f564d72
parent 19 0aa8cc770c8a
child 21 74aa6861c87d
--- a/mtpdataproviders/mtpplaybackcontroldp/src/cmtpplaybackmap.cpp	Tue Aug 31 16:03:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,378 +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:
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#include <mtp/cmtpobjectmetadata.h>
-#include <mtp/mmtpdataproviderframework.h>
-#include <mtp/mmtpobjectmgr.h>
-
-#include "cmtpplaybackmap.h"
-#include "cmtpplaybackcommand.h"
-#include "cmtpplaybackcontroldp.h"
-#include "mtpplaybackcontrolpanic.h"
-
-
-// Class constants.
-__FLOG_STMT(_LIT8(KComponent,"MTPPlaybackMap");)
-
-const TInt KPlaybackRatePlay = 1000;
-const TInt KPlaybackRatePause = 0;
-const TInt KPlaybackRateFF = 2000;
-const TInt KPlaybackRateREW = -2000;
-/**
-Two-phase constructor.
-@param aPlugin The data provider plugin
-@return a pointer to the created playback checker object
-*/  
-CMTPPlaybackMap* CMTPPlaybackMap::NewL(MMTPDataProviderFramework& aFramework,
-                                       CMTPPlaybackProperty& aProperty)
-    {
-    CMTPPlaybackMap* self = new (ELeave) CMTPPlaybackMap(aFramework, aProperty);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-/**
-Destructor.
-*/    
-CMTPPlaybackMap::~CMTPPlaybackMap()
-    {    
-    __FLOG(_L8("~CMTPPlaybackMap - Entry"));
-    __FLOG(_L8("~CMTPPlaybackMap - Exit"));
-    __FLOG_CLOSE;
-    }
-
-/**
-Constructor.
-*/    
-CMTPPlaybackMap::CMTPPlaybackMap(MMTPDataProviderFramework& aFramework, 
-                                 CMTPPlaybackProperty& aProperty):
-    iFramework(aFramework),iProperty(aProperty)
-    {    
-    }
-    
-/**
-Second-phase constructor.
-*/        
-void CMTPPlaybackMap::ConstructL()
-    {
-    __FLOG_OPEN(KMTPSubsystem, KComponent);
-    __FLOG(_L8("CMTPPlaybackMap: ConstructL - Entry")); 
-    __FLOG(_L8("CMTPPlaybackMap: ConstructL - Exit")); 
-    }
-
-TInt CMTPPlaybackMap::GetPlaybackControlCommand(const TMTPPbCtrlData& aData, 
-                                                CMTPPlaybackCommand** aCmd)
-    {
-    __FLOG(_L8("GetPlaybackControlCommand - Entry"));
-    TInt result = KErrNotSupported;
-    switch(aData.iOptCode)
-        {
-        case EMTPOpCodeSetDevicePropValue:
-        case EMTPOpCodeResetDevicePropValue:
-            {
-            result = HandleSetDevicePropValue(aData, aCmd);            
-            }
-            break;
-        case EMTPOpCodeGetDevicePropValue:
-        case EMTPOpCodeGetDevicePropDesc:
-            {
-            result = HandleGetDevicePropValue(aData, aCmd);            
-            }
-            break;
-        case EMTPOpCodeSkip:
-            {
-            result = HandleSkip(aData, aCmd);            
-            }
-            break;
-        default:
-            break;
-        }
-    __FLOG(_L8("GetPlaybackControlCommand - Exit"));
-    return result;
-    }
-
-TInt CMTPPlaybackMap::HandleSetDevicePropValue(const TMTPPbCtrlData& aData, 
-                                               CMTPPlaybackCommand** aCmd)
-    {
-    TRAPD(err, HandleSetDevicePropValueL(aData, aCmd));
-    return err;
-    }
-
-void CMTPPlaybackMap::HandleSetDevicePropValueL(const TMTPPbCtrlData& aData, 
-                                               CMTPPlaybackCommand** aCmd)
-    {
-    __FLOG(_L8("HandleSetDevicePropValueL - Entry"));
-    __ASSERT_DEBUG((aData.iOptCode == EMTPOpCodeSetDevicePropValue) ||
-                    (aData.iOptCode == EMTPOpCodeResetDevicePropValue),
-                    Panic(EMTPPBArgumentErr));
-
-    switch(aData.iDevPropCode)
-        {
-        case EMTPDevicePropCodeVolume:
-            {
-            TUint32 val = aData.iPropValUint32.Value();
-            CMTPPbCmdParam* param = CMTPPbCmdParam::NewL(val);
-            CleanupStack::PushL(param);
-            *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdSetVolume, param);
-            CleanupStack::Pop(param);
-            }
-            break;
-            
-        case EMTPDevicePropCodePlaybackRate:
-            {
-            TInt32 val = aData.iPropValInt32.Value();
-            TMTPPlaybackCommand cmd = EPlaybackCmdNone;
-            switch(val)
-                {
-                case KPlaybackRateFF:
-                    cmd = EPlaybackCmdSeekForward;
-                    break;
-                case KPlaybackRatePlay:
-                    cmd = EPlaybackCmdPlay;
-                    break;
-                case KPlaybackRatePause:
-                    cmd = EPlaybackCmdPause;
-                    break;
-                case KPlaybackRateREW:
-                    cmd = EPlaybackCmdSeekBackward;
-                    break;
-                default:
-                    User::Leave(KErrArgument);
-                    break;
-                }
-            if(cmd != EPlaybackCmdNone)
-                {
-                *aCmd = CMTPPlaybackCommand::NewL(cmd, NULL);
-                }
-            else
-                {
-                *aCmd = NULL;
-                }
-            }
-            break;
-            
-        case EMTPDevicePropCodePlaybackObject:
-            {
-            TUint32 handle = aData.iPropValUint32.Value();
-            if(handle == 0)
-                {
-                *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdStop, NULL);
-                }
-            else
-                {
-                TFileName suid;
-                TUint format;
-                GetObjecInfoFromHandleL(handle, suid, format);
-                TMTPPbCategory cat = EMTPPbCatNone;
-                switch(format)
-                    {
-                    case 0xBA05://Abstract Audio & Video Playlist
-                    case 0xBA11://M3U Playlist
-                        cat = EMTPPbCatPlayList;
-                        break;
-                    case 0xBA03://Abstract Audio Album
-                        cat = EMTPPbCatAlbum;
-                        break;
-                    case 0x3009://MP3
-                    case 0xB903://AAC (Advance Audio Coding)
-                    case 0xB901://WMA (Windows Media Audio)
-                    case 0x3008://WAV (Waveform audio format)
-                        cat = EMTPPbCatMusic;
-                        break;
-                    default:
-                        User::Leave(KErrArgument);
-                        break;
-                    }
-                if(cat != EMTPPbCatNone)
-                    {
-                    CMTPPbCmdParam* param = CMTPPbCmdParam::NewL(cat, suid);
-                    CleanupStack::PushL(param);
-                    *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdInitObject, param);
-                    CleanupStack::Pop(param);
-                    }
-                else
-                    {
-                    *aCmd = NULL;
-                    }
-                }
-            }
-            break;
-            
-        case EMTPDevicePropCodePlaybackContainerIndex:
-            {
-            TUint32 index = aData.iPropValUint32.Value();
-            CMTPPbCmdParam* param = CMTPPbCmdParam::NewL(index);
-            CleanupStack::PushL(param);
-            *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdInitIndex, param);
-            CleanupStack::Pop(param);
-            }
-            break;
-            
-        case EMTPDevicePropCodePlaybackPosition:
-            {
-            TUint32 position = aData.iPropValUint32.Value();
-            CMTPPbCmdParam* param = CMTPPbCmdParam::NewL(position);
-            CleanupStack::PushL(param);
-            *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdSetPosition, param);
-            CleanupStack::Pop(param);
-            }
-            break;
-            
-        default:
-            User::Leave(KErrArgument);
-            break;
-        }
-    __FLOG(_L8("HandleSetDevicePropValueL - Exit"));
-    }
-
-TInt CMTPPlaybackMap::HandleGetDevicePropValue(const TMTPPbCtrlData& aData, 
-                                               CMTPPlaybackCommand** aCmd)
-    {
-    TRAPD(err, HandleGetDevicePropValueL(aData, aCmd));
-    return err;
-    }
-void CMTPPlaybackMap::HandleGetDevicePropValueL(const TMTPPbCtrlData& aData, 
-                                               CMTPPlaybackCommand** aCmd)
-    {
-    __FLOG(_L8("HandleGetDevicePropValueL - Entry"));
-    __ASSERT_DEBUG((aData.iOptCode == EMTPOpCodeGetDevicePropValue) ||
-                    (aData.iOptCode == EMTPOpCodeGetDevicePropDesc),
-                    Panic(EMTPPBArgumentErr));
-
-    switch(aData.iDevPropCode)
-        {
-        case EMTPDevicePropCodeVolume:
-            {
-            TMTPPlaybackCommand cmd = EPlaybackCmdGetVolumeSet;
-            if(aData.iOptCode == EMTPOpCodeGetDevicePropValue)
-                {
-                cmd = EPlaybackCmdGetVolume;
-                }
-            *aCmd = CMTPPlaybackCommand::NewL(cmd, NULL);
-            }
-            break;
-            
-        case EMTPDevicePropCodePlaybackRate:
-            {
-            *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdGetState, NULL);
-            }
-            break;
-            
-        case EMTPDevicePropCodePlaybackObject:
-            {
-            *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdGetObject, NULL);
-            }
-            break;
-            
-        case EMTPDevicePropCodePlaybackContainerIndex:
-            {
-            *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdGetIndex, NULL);
-            }
-            break;
-            
-        case EMTPDevicePropCodePlaybackPosition:
-            {
-            *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdGetPosition, NULL);
-            }
-            break;
-            
-        default:
-            User::Leave(KErrArgument);
-            break;
-        }
-    __FLOG(_L8("HandleGetDevicePropValueL - Exit"));
-    }
-
-TInt CMTPPlaybackMap::HandleSkip(const TMTPPbCtrlData& aData, 
-                                 CMTPPlaybackCommand** aCmd)
-    {
-    TRAPD(err, HandleSkipL(aData, aCmd));
-    return err;
-    }
-
-void CMTPPlaybackMap::HandleSkipL(const TMTPPbCtrlData& aData, 
-                                 CMTPPlaybackCommand** aCmd)
-    {
-    __FLOG(_L8("HandleSkipL - Entry"));
-    TInt32 step = aData.iPropValInt32.Value();
-    CMTPPbCmdParam* param = CMTPPbCmdParam::NewL(step);
-    CleanupStack::PushL(param);
-    *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdSkip, param);
-    CleanupStack::Pop(param);
-    __FLOG(_L8("HandleSkipL - Exit"));
-    }
-
-TInt32 CMTPPlaybackMap::PlaybackRateL(TMTPPlaybackState aState)
-    {
-    __FLOG(_L8("PlaybackRate - Entry"));
-    TInt32 rate = KPlaybackRatePause;
-    switch(aState)
-        {
-        case EPlayStateForwardSeeking:
-            rate = KPlaybackRateFF;
-            break;
-            
-        case EPlayStatePlaying:
-            rate = KPlaybackRatePlay;
-            break;
-            
-        case EPlayStatePaused:
-            rate = KPlaybackRatePause;
-            break;
-            
-        case EPlayStateBackwardSeeking:
-            rate = KPlaybackRateREW;
-            break;
-            
-        default:
-            User::Leave(KErrArgument);
-            break;
-        }
-    __FLOG(_L8("PlaybackRate - Exit"));
-    return rate;
-    }
-
-TUint32 CMTPPlaybackMap::ObjectHandleL(const TDesC& aSuid)
-    {
-    __FLOG(_L8("ObjectHandleL - Entry"));
-    CMTPObjectMetaData* meta(CMTPObjectMetaData::NewLC());
-    TBool result = iFramework.ObjectMgr().ObjectL(aSuid, *meta);
-    __ASSERT_ALWAYS(result, User::Leave(KErrBadHandle));
-    __ASSERT_DEBUG(meta, Panic(EMTPPBDataNullErr));
-    TUint32 handle = meta->Uint(CMTPObjectMetaData::EHandle);
-    CleanupStack::PopAndDestroy(meta);
-    __FLOG(_L8("ObjectHandleL - Exit"));
-    return handle;
-    }
-
-void CMTPPlaybackMap::GetObjecInfoFromHandleL(TUint32 aHandle, TDes& aSuid, TUint& aFormat) const
-    {
-    __FLOG(_L8("GetObjecInfoFromHandleL - Entry"));
-    CMTPObjectMetaData* meta(CMTPObjectMetaData::NewLC());
-    TBool result = iFramework.ObjectMgr().ObjectL(aHandle, *meta);
-    __ASSERT_ALWAYS(result, User::Leave(KErrBadHandle));
-    __ASSERT_DEBUG(meta, Panic(EMTPPBDataNullErr));
-    aSuid = meta->DesC(CMTPObjectMetaData::ESuid);
-    aFormat = meta->Uint(CMTPObjectMetaData::EFormatCode);
-    CleanupStack::PopAndDestroy(meta);
-    __FLOG(_L8("GetObjecInfoFromHandleL - Exit"));
-    }