mtpdataproviders/mtpplaybackcontroldp/src/cmtpplaybackmap.cpp
changeset 49 c20dd21d1eb4
parent 29 3ae5cb0b4c02
equal deleted inserted replaced
41:2c19c7cf5550 49:c20dd21d1eb4
    24 
    24 
    25 #include "cmtpplaybackmap.h"
    25 #include "cmtpplaybackmap.h"
    26 #include "cmtpplaybackcommand.h"
    26 #include "cmtpplaybackcommand.h"
    27 #include "cmtpplaybackcontroldp.h"
    27 #include "cmtpplaybackcontroldp.h"
    28 #include "mtpplaybackcontrolpanic.h"
    28 #include "mtpplaybackcontrolpanic.h"
    29 
    29 #include "OstTraceDefinitions.h"
    30 
    30 #ifdef OST_TRACE_COMPILER_IN_USE
    31 // Class constants.
    31 #include "cmtpplaybackmapTraces.h"
    32 __FLOG_STMT(_LIT8(KComponent,"MTPPlaybackMap");)
    32 #endif
       
    33 
    33 
    34 
    34 const TInt KPlaybackRatePlay = 1000;
    35 const TInt KPlaybackRatePlay = 1000;
    35 const TInt KPlaybackRatePause = 0;
    36 const TInt KPlaybackRatePause = 0;
    36 const TInt KPlaybackRateFF = 2000;
    37 const TInt KPlaybackRateFF = 2000;
    37 const TInt KPlaybackRateREW = -2000;
    38 const TInt KPlaybackRateREW = -2000;
    41 @return a pointer to the created playback checker object
    42 @return a pointer to the created playback checker object
    42 */  
    43 */  
    43 CMTPPlaybackMap* CMTPPlaybackMap::NewL(MMTPDataProviderFramework& aFramework,
    44 CMTPPlaybackMap* CMTPPlaybackMap::NewL(MMTPDataProviderFramework& aFramework,
    44                                        CMTPPlaybackProperty& aProperty)
    45                                        CMTPPlaybackProperty& aProperty)
    45     {
    46     {
       
    47     OstTraceFunctionEntry0( CMTPPLAYBACKMAP_NEWL_ENTRY );
    46     CMTPPlaybackMap* self = new (ELeave) CMTPPlaybackMap(aFramework, aProperty);
    48     CMTPPlaybackMap* self = new (ELeave) CMTPPlaybackMap(aFramework, aProperty);
    47     CleanupStack::PushL(self);
    49     CleanupStack::PushL(self);
    48     self->ConstructL();
    50     self->ConstructL();
    49     CleanupStack::Pop(self);
    51     CleanupStack::Pop(self);
       
    52     OstTraceFunctionExit0( CMTPPLAYBACKMAP_NEWL_EXIT );
    50     return self;
    53     return self;
    51     }
    54     }
    52 
    55 
    53 /**
    56 /**
    54 Destructor.
    57 Destructor.
    55 */    
    58 */    
    56 CMTPPlaybackMap::~CMTPPlaybackMap()
    59 CMTPPlaybackMap::~CMTPPlaybackMap()
    57     {    
    60     {    
    58     __FLOG(_L8("~CMTPPlaybackMap - Entry"));
    61     OstTraceFunctionEntry0( CMTPPLAYBACKMAP_CMTPPLAYBACKMAP_ENTRY );
    59     __FLOG(_L8("~CMTPPlaybackMap - Exit"));
    62     OstTraceFunctionExit0( CMTPPLAYBACKMAP_CMTPPLAYBACKMAP_EXIT );
    60     __FLOG_CLOSE;
       
    61     }
    63     }
    62 
    64 
    63 /**
    65 /**
    64 Constructor.
    66 Constructor.
    65 */    
    67 */    
    66 CMTPPlaybackMap::CMTPPlaybackMap(MMTPDataProviderFramework& aFramework, 
    68 CMTPPlaybackMap::CMTPPlaybackMap(MMTPDataProviderFramework& aFramework, 
    67                                  CMTPPlaybackProperty& aProperty):
    69                                  CMTPPlaybackProperty& aProperty):
    68     iFramework(aFramework),iProperty(aProperty)
    70     iFramework(aFramework),iProperty(aProperty)
    69     {    
    71     {    
       
    72     OstTraceFunctionEntry0( DUP1_CMTPPLAYBACKMAP_CMTPPLAYBACKMAP_ENTRY );
       
    73     OstTraceFunctionExit0( DUP1_CMTPPLAYBACKMAP_CMTPPLAYBACKMAP_EXIT );
    70     }
    74     }
    71     
    75     
    72 /**
    76 /**
    73 Second-phase constructor.
    77 Second-phase constructor.
    74 */        
    78 */        
    75 void CMTPPlaybackMap::ConstructL()
    79 void CMTPPlaybackMap::ConstructL()
    76     {
    80     {
    77     __FLOG_OPEN(KMTPSubsystem, KComponent);
    81     OstTraceFunctionEntry0( CMTPPLAYBACKMAP_CONSTRUCTL_ENTRY );
    78     __FLOG(_L8("CMTPPlaybackMap: ConstructL - Entry")); 
    82     OstTraceFunctionExit0( CMTPPLAYBACKMAP_CONSTRUCTL_EXIT );
    79     __FLOG(_L8("CMTPPlaybackMap: ConstructL - Exit")); 
       
    80     }
    83     }
    81 
    84 
    82 TInt CMTPPlaybackMap::GetPlaybackControlCommand(const TMTPPbCtrlData& aData, 
    85 TInt CMTPPlaybackMap::GetPlaybackControlCommand(const TMTPPbCtrlData& aData, 
    83                                                 CMTPPlaybackCommand** aCmd)
    86                                                 CMTPPlaybackCommand** aCmd)
    84     {
    87     {
    85     __FLOG(_L8("GetPlaybackControlCommand - Entry"));
    88     OstTraceFunctionEntry0( CMTPPLAYBACKMAP_GETPLAYBACKCONTROLCOMMAND_ENTRY );
    86     TInt result = KErrNotSupported;
    89     TInt result = KErrNotSupported;
    87     switch(aData.iOptCode)
    90     switch(aData.iOptCode)
    88         {
    91         {
    89         case EMTPOpCodeSetDevicePropValue:
    92         case EMTPOpCodeSetDevicePropValue:
    90         case EMTPOpCodeResetDevicePropValue:
    93         case EMTPOpCodeResetDevicePropValue:
   104             }
   107             }
   105             break;
   108             break;
   106         default:
   109         default:
   107             break;
   110             break;
   108         }
   111         }
   109     __FLOG(_L8("GetPlaybackControlCommand - Exit"));
   112     OstTraceFunctionExit0( CMTPPLAYBACKMAP_GETPLAYBACKCONTROLCOMMAND_EXIT );
   110     return result;
   113     return result;
   111     }
   114     }
   112 
   115 
   113 TInt CMTPPlaybackMap::HandleSetDevicePropValue(const TMTPPbCtrlData& aData, 
   116 TInt CMTPPlaybackMap::HandleSetDevicePropValue(const TMTPPbCtrlData& aData, 
   114                                                CMTPPlaybackCommand** aCmd)
   117                                                CMTPPlaybackCommand** aCmd)
   115     {
   118     {
       
   119     OstTraceFunctionEntry0( CMTPPLAYBACKMAP_HANDLESETDEVICEPROPVALUE_ENTRY );
   116     TRAPD(err, HandleSetDevicePropValueL(aData, aCmd));
   120     TRAPD(err, HandleSetDevicePropValueL(aData, aCmd));
       
   121     OstTraceFunctionExit0( CMTPPLAYBACKMAP_HANDLESETDEVICEPROPVALUE_EXIT );
   117     return err;
   122     return err;
   118     }
   123     }
   119 
   124 
   120 void CMTPPlaybackMap::HandleSetDevicePropValueL(const TMTPPbCtrlData& aData, 
   125 void CMTPPlaybackMap::HandleSetDevicePropValueL(const TMTPPbCtrlData& aData, 
   121                                                CMTPPlaybackCommand** aCmd)
   126                                                CMTPPlaybackCommand** aCmd)
   122     {
   127     {
   123     __FLOG(_L8("HandleSetDevicePropValueL - Entry"));
   128     OstTraceFunctionEntry0( CMTPPLAYBACKMAP_HANDLESETDEVICEPROPVALUEL_ENTRY );
   124     __ASSERT_DEBUG((aData.iOptCode == EMTPOpCodeSetDevicePropValue) ||
   129     __ASSERT_DEBUG((aData.iOptCode == EMTPOpCodeSetDevicePropValue) ||
   125                     (aData.iOptCode == EMTPOpCodeResetDevicePropValue),
   130                     (aData.iOptCode == EMTPOpCodeResetDevicePropValue),
   126                     Panic(EMTPPBArgumentErr));
   131                     Panic(EMTPPBArgumentErr));
   127 
   132 
   128     switch(aData.iDevPropCode)
   133     switch(aData.iDevPropCode)
   154                     break;
   159                     break;
   155                 case KPlaybackRateREW:
   160                 case KPlaybackRateREW:
   156                     cmd = EPlaybackCmdSeekBackward;
   161                     cmd = EPlaybackCmdSeekBackward;
   157                     break;
   162                     break;
   158                 default:
   163                 default:
   159                     User::Leave(KErrArgument);
   164                     LEAVEIFERROR( KErrArgument, 
       
   165                             OstTrace0( TRACE_ERROR, CMTPPLAYBACKMAP_HANDLESETDEVICEPROPVALUEL, "Error argument" ));
   160                     break;
   166                     break;
   161                 }
   167                 }
   162             if(cmd != EPlaybackCmdNone)
   168             if(cmd != EPlaybackCmdNone)
   163                 {
   169                 {
   164                 *aCmd = CMTPPlaybackCommand::NewL(cmd, NULL);
   170                 *aCmd = CMTPPlaybackCommand::NewL(cmd, NULL);
   197                     case 0xB901://WMA (Windows Media Audio)
   203                     case 0xB901://WMA (Windows Media Audio)
   198                     case 0x3008://WAV (Waveform audio format)
   204                     case 0x3008://WAV (Waveform audio format)
   199                         cat = EMTPPbCatMusic;
   205                         cat = EMTPPbCatMusic;
   200                         break;
   206                         break;
   201                     default:
   207                     default:
   202                         User::Leave(KErrArgument);
   208                         LEAVEIFERROR(KErrArgument, 
       
   209                                 OstTrace0( TRACE_ERROR, DUP1_CMTPPLAYBACKMAP_HANDLESETDEVICEPROPVALUEL, "Error argument" ));
   203                         break;
   210                         break;
   204                     }
   211                     }
   205                 if(cat != EMTPPbCatNone)
   212                 if(cat != EMTPPbCatNone)
   206                     {
   213                     {
   207                     CMTPPbCmdParam* param = CMTPPbCmdParam::NewL(cat, suid);
   214                     CMTPPbCmdParam* param = CMTPPbCmdParam::NewL(cat, suid);
   236             CleanupStack::Pop(param);
   243             CleanupStack::Pop(param);
   237             }
   244             }
   238             break;
   245             break;
   239             
   246             
   240         default:
   247         default:
   241             User::Leave(KErrArgument);
   248             LEAVEIFERROR(KErrArgument, 
       
   249                     OstTrace0( TRACE_ERROR, DUP2_CMTPPLAYBACKMAP_HANDLESETDEVICEPROPVALUEL, "Error argument" ));
   242             break;
   250             break;
   243         }
   251         }
   244     __FLOG(_L8("HandleSetDevicePropValueL - Exit"));
   252     OstTraceFunctionExit0( CMTPPLAYBACKMAP_HANDLESETDEVICEPROPVALUEL_EXIT );
   245     }
   253     }
   246 
   254 
   247 TInt CMTPPlaybackMap::HandleGetDevicePropValue(const TMTPPbCtrlData& aData, 
   255 TInt CMTPPlaybackMap::HandleGetDevicePropValue(const TMTPPbCtrlData& aData, 
   248                                                CMTPPlaybackCommand** aCmd)
   256                                                CMTPPlaybackCommand** aCmd)
   249     {
   257     {
       
   258     OstTraceFunctionEntry0( CMTPPLAYBACKMAP_HANDLEGETDEVICEPROPVALUE_ENTRY );
   250     TRAPD(err, HandleGetDevicePropValueL(aData, aCmd));
   259     TRAPD(err, HandleGetDevicePropValueL(aData, aCmd));
       
   260     OstTraceFunctionExit0( CMTPPLAYBACKMAP_HANDLEGETDEVICEPROPVALUE_EXIT );
   251     return err;
   261     return err;
   252     }
   262     }
   253 void CMTPPlaybackMap::HandleGetDevicePropValueL(const TMTPPbCtrlData& aData, 
   263 void CMTPPlaybackMap::HandleGetDevicePropValueL(const TMTPPbCtrlData& aData, 
   254                                                CMTPPlaybackCommand** aCmd)
   264                                                CMTPPlaybackCommand** aCmd)
   255     {
   265     {
   256     __FLOG(_L8("HandleGetDevicePropValueL - Entry"));
   266     OstTraceFunctionEntry0( CMTPPLAYBACKMAP_HANDLEGETDEVICEPROPVALUEL_ENTRY );
   257     __ASSERT_DEBUG((aData.iOptCode == EMTPOpCodeGetDevicePropValue) ||
   267     __ASSERT_DEBUG((aData.iOptCode == EMTPOpCodeGetDevicePropValue) ||
   258                     (aData.iOptCode == EMTPOpCodeGetDevicePropDesc),
   268                     (aData.iOptCode == EMTPOpCodeGetDevicePropDesc),
   259                     Panic(EMTPPBArgumentErr));
   269                     Panic(EMTPPBArgumentErr));
   260 
   270 
   261     switch(aData.iDevPropCode)
   271     switch(aData.iDevPropCode)
   294             *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdGetPosition, NULL);
   304             *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdGetPosition, NULL);
   295             }
   305             }
   296             break;
   306             break;
   297             
   307             
   298         default:
   308         default:
   299             User::Leave(KErrArgument);
   309             LEAVEIFERROR(KErrArgument, 
       
   310                                     OstTrace0( TRACE_ERROR, CMTPPLAYBACKMAP_HANDLEGETDEVICEPROPVALUEL, "Error argument" ));
   300             break;
   311             break;
   301         }
   312         }
   302     __FLOG(_L8("HandleGetDevicePropValueL - Exit"));
   313     OstTraceFunctionExit0( CMTPPLAYBACKMAP_HANDLEGETDEVICEPROPVALUEL_EXIT );
   303     }
   314     }
   304 
   315 
   305 TInt CMTPPlaybackMap::HandleSkip(const TMTPPbCtrlData& aData, 
   316 TInt CMTPPlaybackMap::HandleSkip(const TMTPPbCtrlData& aData, 
   306                                  CMTPPlaybackCommand** aCmd)
   317                                  CMTPPlaybackCommand** aCmd)
   307     {
   318     {
       
   319     OstTraceFunctionEntry0( CMTPPLAYBACKMAP_HANDLESKIP_ENTRY );
   308     TRAPD(err, HandleSkipL(aData, aCmd));
   320     TRAPD(err, HandleSkipL(aData, aCmd));
       
   321     OstTraceFunctionExit0( CMTPPLAYBACKMAP_HANDLESKIP_EXIT );
   309     return err;
   322     return err;
   310     }
   323     }
   311 
   324 
   312 void CMTPPlaybackMap::HandleSkipL(const TMTPPbCtrlData& aData, 
   325 void CMTPPlaybackMap::HandleSkipL(const TMTPPbCtrlData& aData, 
   313                                  CMTPPlaybackCommand** aCmd)
   326                                  CMTPPlaybackCommand** aCmd)
   314     {
   327     {
   315     __FLOG(_L8("HandleSkipL - Entry"));
   328     OstTraceFunctionEntry0( CMTPPLAYBACKMAP_HANDLESKIPL_ENTRY );
   316     TInt32 step = aData.iPropValInt32.Value();
   329     TInt32 step = aData.iPropValInt32.Value();
   317     CMTPPbCmdParam* param = CMTPPbCmdParam::NewL(step);
   330     CMTPPbCmdParam* param = CMTPPbCmdParam::NewL(step);
   318     CleanupStack::PushL(param);
   331     CleanupStack::PushL(param);
   319     *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdSkip, param);
   332     *aCmd = CMTPPlaybackCommand::NewL(EPlaybackCmdSkip, param);
   320     CleanupStack::Pop(param);
   333     CleanupStack::Pop(param);
   321     __FLOG(_L8("HandleSkipL - Exit"));
   334     OstTraceFunctionExit0( CMTPPLAYBACKMAP_HANDLESKIPL_EXIT );
   322     }
   335     }
   323 
   336 
   324 TInt32 CMTPPlaybackMap::PlaybackRateL(TMTPPlaybackState aState)
   337 TInt32 CMTPPlaybackMap::PlaybackRateL(TMTPPlaybackState aState)
   325     {
   338     {
   326     __FLOG(_L8("PlaybackRate - Entry"));
   339     OstTraceFunctionEntry0( CMTPPLAYBACKMAP_PLAYBACKRATEL_ENTRY );
   327     TInt32 rate = KPlaybackRatePause;
   340     TInt32 rate = KPlaybackRatePause;
   328     switch(aState)
   341     switch(aState)
   329         {
   342         {
   330         case EPlayStateForwardSeeking:
   343         case EPlayStateForwardSeeking:
   331             rate = KPlaybackRateFF;
   344             rate = KPlaybackRateFF;
   342         case EPlayStateBackwardSeeking:
   355         case EPlayStateBackwardSeeking:
   343             rate = KPlaybackRateREW;
   356             rate = KPlaybackRateREW;
   344             break;
   357             break;
   345             
   358             
   346         default:
   359         default:
   347             User::Leave(KErrArgument);
   360             LEAVEIFERROR(KErrArgument, 
       
   361                                     OstTrace0( TRACE_ERROR, CMTPPLAYBACKMAP_PLAYBACKRATEL, "Error argument" ));
   348             break;
   362             break;
   349         }
   363         }
   350     __FLOG(_L8("PlaybackRate - Exit"));
   364     OstTraceFunctionExit0( CMTPPLAYBACKMAP_PLAYBACKRATEL_EXIT );
   351     return rate;
   365     return rate;
   352     }
   366     }
   353 
   367 
   354 TUint32 CMTPPlaybackMap::ObjectHandleL(const TDesC& aSuid)
   368 TUint32 CMTPPlaybackMap::ObjectHandleL(const TDesC& aSuid)
   355     {
   369     {
   356     __FLOG(_L8("ObjectHandleL - Entry"));
   370     OstTraceFunctionEntry0( CMTPPLAYBACKMAP_OBJECTHANDLEL_ENTRY );
   357     CMTPObjectMetaData* meta(CMTPObjectMetaData::NewLC());
   371     CMTPObjectMetaData* meta(CMTPObjectMetaData::NewLC());
   358     TBool result = iFramework.ObjectMgr().ObjectL(aSuid, *meta);
   372     TBool result = iFramework.ObjectMgr().ObjectL(aSuid, *meta);
   359     __ASSERT_ALWAYS(result, User::Leave(KErrBadHandle));
   373     __ASSERT_ALWAYS_OST(result,OstTrace0( TRACE_ERROR, CMTPPLAYBACKMAP_OBJECTHANDLEL, "bad handle" ), User::Leave(KErrBadHandle));
   360     __ASSERT_DEBUG(meta, Panic(EMTPPBDataNullErr));
   374     __ASSERT_DEBUG(meta, Panic(EMTPPBDataNullErr));
   361     TUint32 handle = meta->Uint(CMTPObjectMetaData::EHandle);
   375     TUint32 handle = meta->Uint(CMTPObjectMetaData::EHandle);
   362     CleanupStack::PopAndDestroy(meta);
   376     CleanupStack::PopAndDestroy(meta);
   363     __FLOG(_L8("ObjectHandleL - Exit"));
   377     OstTraceFunctionExit0( CMTPPLAYBACKMAP_OBJECTHANDLEL_EXIT );
   364     return handle;
   378     return handle;
   365     }
   379     }
   366 
   380 
   367 void CMTPPlaybackMap::GetObjecInfoFromHandleL(TUint32 aHandle, TDes& aSuid, TUint& aFormat) const
   381 void CMTPPlaybackMap::GetObjecInfoFromHandleL(TUint32 aHandle, TDes& aSuid, TUint& aFormat) const
   368     {
   382     {
   369     __FLOG(_L8("GetObjecInfoFromHandleL - Entry"));
   383     OstTraceFunctionEntry0( CMTPPLAYBACKMAP_GETOBJECINFOFROMHANDLEL_ENTRY );
   370     CMTPObjectMetaData* meta(CMTPObjectMetaData::NewLC());
   384     CMTPObjectMetaData* meta(CMTPObjectMetaData::NewLC());
   371     TBool result = iFramework.ObjectMgr().ObjectL(aHandle, *meta);
   385     TBool result = iFramework.ObjectMgr().ObjectL(aHandle, *meta);
   372     __ASSERT_ALWAYS(result, User::Leave(KErrBadHandle));
   386     __ASSERT_ALWAYS_OST(result, OstTrace0( TRACE_ERROR, CMTPPLAYBACKMAP_GETOBJECINFOFROMHANDLEL, "bad handle" ), User::Leave(KErrBadHandle));
   373     __ASSERT_DEBUG(meta, Panic(EMTPPBDataNullErr));
   387     __ASSERT_DEBUG(meta, Panic(EMTPPBDataNullErr));
   374     aSuid = meta->DesC(CMTPObjectMetaData::ESuid);
   388     aSuid = meta->DesC(CMTPObjectMetaData::ESuid);
   375     aFormat = meta->Uint(CMTPObjectMetaData::EFormatCode);
   389     aFormat = meta->Uint(CMTPObjectMetaData::EFormatCode);
   376     CleanupStack::PopAndDestroy(meta);
   390     CleanupStack::PopAndDestroy(meta);
   377     __FLOG(_L8("GetObjecInfoFromHandleL - Exit"));
   391     OstTraceFunctionExit0( CMTPPLAYBACKMAP_GETOBJECINFOFROMHANDLEL_EXIT );
   378     }
   392     }