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 } |