45 // CONSTANTS |
45 // CONSTANTS |
46 const TInt KMPXSliderHeight = 30; |
46 const TInt KMPXSliderHeight = 30; |
47 const TInt KMPXSliderWidth = 18; |
47 const TInt KMPXSliderWidth = 18; |
48 const TInt KMPXVolumeDragEventTimeOut = 100000; |
48 const TInt KMPXVolumeDragEventTimeOut = 100000; |
49 const TInt KMPXPtrEventRepeatRequestTime = 200000; |
49 const TInt KMPXPtrEventRepeatRequestTime = 200000; |
|
50 const TInt KDynamicSliderFeedbackTimeOut = 100000; |
|
51 const TInt KDynamicSliderFeedbackIntensity = 100; |
50 |
52 |
51 using namespace AknLayoutScalable_Apps; |
53 using namespace AknLayoutScalable_Apps; |
52 using namespace AknLayoutScalable_Avkon; |
54 using namespace AknLayoutScalable_Avkon; |
53 |
55 |
54 // ============================ MEMBER FUNCTIONS =================================================== |
56 // ============================ MEMBER FUNCTIONS =================================================== |
68 // Symbian 2nd phase constructor can leave. |
70 // Symbian 2nd phase constructor can leave. |
69 // ------------------------------------------------------------------------------------------------- |
71 // ------------------------------------------------------------------------------------------------- |
70 // |
72 // |
71 void CMPXVideoPlaybackVolumeBar::ConstructL() |
73 void CMPXVideoPlaybackVolumeBar::ConstructL() |
72 { |
74 { |
73 MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::ConstructL()")); |
75 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::ConstructL()")); |
74 |
76 |
75 SetLayout(); |
77 SetLayout(); |
76 SkinChangeL(); |
78 SkinChangeL(); |
77 |
79 |
78 iDraggingHandlerTimer = CPeriodic::NewL( CActive::EPriorityStandard ); |
80 iDraggingHandlerTimer = CPeriodic::NewL( CActive::EPriorityStandard ); |
88 // ------------------------------------------------------------------------------------------------- |
90 // ------------------------------------------------------------------------------------------------- |
89 // |
91 // |
90 CMPXVideoPlaybackVolumeBar* CMPXVideoPlaybackVolumeBar::NewL( |
92 CMPXVideoPlaybackVolumeBar* CMPXVideoPlaybackVolumeBar::NewL( |
91 CMPXVideoPlaybackControlsController* aController, TRect aRect ) |
93 CMPXVideoPlaybackControlsController* aController, TRect aRect ) |
92 { |
94 { |
93 MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::NewL()")); |
|
94 |
|
95 CMPXVideoPlaybackVolumeBar* self = |
95 CMPXVideoPlaybackVolumeBar* self = |
96 new ( ELeave ) CMPXVideoPlaybackVolumeBar( aController, aRect ); |
96 new ( ELeave ) CMPXVideoPlaybackVolumeBar( aController, aRect ); |
97 |
97 |
98 CleanupStack::PushL( self ); |
98 CleanupStack::PushL( self ); |
99 self->ConstructL(); |
99 self->ConstructL(); |
106 // Destructor. |
106 // Destructor. |
107 // ------------------------------------------------------------------------------------------------- |
107 // ------------------------------------------------------------------------------------------------- |
108 // |
108 // |
109 CMPXVideoPlaybackVolumeBar::~CMPXVideoPlaybackVolumeBar() |
109 CMPXVideoPlaybackVolumeBar::~CMPXVideoPlaybackVolumeBar() |
110 { |
110 { |
111 MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::~CMPXVideoPlaybackVolumeBar()")); |
111 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::~CMPXVideoPlaybackVolumeBar()")); |
112 |
112 |
113 if ( iDraggingHandlerTimer ) |
113 if ( iDraggingHandlerTimer ) |
114 { |
114 { |
115 iDraggingHandlerTimer->Cancel(); |
115 iDraggingHandlerTimer->Cancel(); |
116 delete iDraggingHandlerTimer; |
116 delete iDraggingHandlerTimer; |
176 delete iNoAudioIcon; |
176 delete iNoAudioIcon; |
177 iNoAudioIcon = NULL; |
177 iNoAudioIcon = NULL; |
178 } |
178 } |
179 |
179 |
180 #ifdef RD_TACTILE_FEEDBACK |
180 #ifdef RD_TACTILE_FEEDBACK |
181 if (iFeedback) |
181 if ( iFeedback ) |
182 { |
182 { |
183 iFeedback->RemoveFeedbackForControl(this); |
183 iFeedback->RemoveFeedbackForControl(this); |
184 } |
184 } |
185 #endif //RD_TACTILE_FEEDBACK |
185 #endif //RD_TACTILE_FEEDBACK |
186 |
|
187 } |
186 } |
188 |
187 |
189 // ------------------------------------------------------------------------------------------------- |
188 // ------------------------------------------------------------------------------------------------- |
190 // CMPXVideoPlaybackVolumeBar::HandleResourceChange() |
189 // CMPXVideoPlaybackVolumeBar::HandleResourceChange() |
191 // ------------------------------------------------------------------------------------------------- |
190 // ------------------------------------------------------------------------------------------------- |
192 // |
191 // |
193 void CMPXVideoPlaybackVolumeBar::HandleResourceChange( TInt aType ) |
192 void CMPXVideoPlaybackVolumeBar::HandleResourceChange( TInt aType ) |
194 { |
193 { |
195 MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::HandleResourceChange(0x%X)"), aType); |
194 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleResourceChange()"), |
|
195 _L("aType = 0x%X"), aType); |
196 |
196 |
197 if ( aType == KAknsMessageSkinChange ) |
197 if ( aType == KAknsMessageSkinChange ) |
198 { |
198 { |
199 TRAP_IGNORE( SkinChangeL() ); |
199 TRAP_IGNORE( SkinChangeL() ); |
200 } |
200 } |
206 // CMPXVideoPlaybackVolumeBar::SetLayout() |
206 // CMPXVideoPlaybackVolumeBar::SetLayout() |
207 // ------------------------------------------------------------------------------------------------- |
207 // ------------------------------------------------------------------------------------------------- |
208 // |
208 // |
209 void CMPXVideoPlaybackVolumeBar::SetLayout() |
209 void CMPXVideoPlaybackVolumeBar::SetLayout() |
210 { |
210 { |
211 MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::SetLayout()")); |
211 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::SetLayout()")); |
212 |
212 |
213 TAknLayoutRect tmpLayoutRect; |
213 TAknLayoutRect tmpLayoutRect; |
214 |
214 |
215 iRect = TRect( 0, 0, iRect.Width(), iRect.Height() ); |
215 iRect = TRect( 0, 0, iRect.Width(), iRect.Height() ); |
216 |
216 |
271 // CMPXVideoPlaybackVolumeBar::SkinChangeL() |
271 // CMPXVideoPlaybackVolumeBar::SkinChangeL() |
272 // ------------------------------------------------------------------------------------------------- |
272 // ------------------------------------------------------------------------------------------------- |
273 // |
273 // |
274 void CMPXVideoPlaybackVolumeBar::SkinChangeL() |
274 void CMPXVideoPlaybackVolumeBar::SkinChangeL() |
275 { |
275 { |
276 MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::SkinChangeL()")); |
276 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::SkinChangeL()")); |
277 |
277 |
278 // |
278 // |
279 // Create icons |
279 // Create icons |
280 // |
280 // |
281 MAknsSkinInstance* skin = AknsUtils::SkinInstance(); |
281 MAknsSkinInstance* skin = AknsUtils::SkinInstance(); |
285 |
285 |
286 delete iSpeakerIcon; |
286 delete iSpeakerIcon; |
287 iSpeakerIcon = NULL; |
287 iSpeakerIcon = NULL; |
288 iSpeakerIcon = AknsUtils::CreateGulIconL( |
288 iSpeakerIcon = AknsUtils::CreateGulIconL( |
289 skin, |
289 skin, |
290 KAknsIIDQgnIndiNsliderUnmuted, |
290 KAknsIIDQgnIndiNsliderUnmuted, |
291 iconsPath, |
291 iconsPath, |
292 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_unmuted, |
292 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_unmuted, |
293 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_unmuted_mask ); |
293 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_unmuted_mask ); |
294 |
294 |
295 if ( iSpeakerIcon ) |
295 if ( iSpeakerIcon ) |
296 { |
296 { |
297 AknIconUtils::SetSize( iSpeakerIcon->Bitmap(), |
297 AknIconUtils::SetSize( iSpeakerIcon->Bitmap(), |
298 iSpeakerRect.Size(), |
298 iSpeakerRect.Size(), |
301 |
301 |
302 delete iSpeakerMuteIcon; |
302 delete iSpeakerMuteIcon; |
303 iSpeakerMuteIcon = NULL; |
303 iSpeakerMuteIcon = NULL; |
304 iSpeakerMuteIcon = AknsUtils::CreateGulIconL( |
304 iSpeakerMuteIcon = AknsUtils::CreateGulIconL( |
305 skin, |
305 skin, |
306 KAknsIIDQgnIndiNsliderMuted, |
306 KAknsIIDQgnIndiNsliderMuted, |
307 iconsPath, |
307 iconsPath, |
308 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_muted, |
308 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_muted, |
309 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_muted_mask ); |
309 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_muted_mask ); |
310 |
310 |
311 |
311 |
312 if ( iSpeakerMuteIcon ) |
312 if ( iSpeakerMuteIcon ) |
313 { |
313 { |
314 AknIconUtils::SetSize( iSpeakerMuteIcon->Bitmap(), |
314 AknIconUtils::SetSize( iSpeakerMuteIcon->Bitmap(), |
335 |
335 |
336 delete iSliderIcon; |
336 delete iSliderIcon; |
337 iSliderIcon = NULL; |
337 iSliderIcon = NULL; |
338 iSliderIcon = AknsUtils::CreateGulIconL( |
338 iSliderIcon = AknsUtils::CreateGulIconL( |
339 skin, |
339 skin, |
340 KAknsIIDQgnGrafNsliderVerticalMarker, |
340 KAknsIIDQgnGrafNsliderVerticalMarker, |
341 iconsPath, |
341 iconsPath, |
342 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker, |
342 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker, |
343 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker_mask ); |
343 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker_mask ); |
344 |
344 |
345 if ( iSliderIcon ) |
345 if ( iSliderIcon ) |
346 { |
346 { |
347 AknIconUtils::SetSize( iSliderIcon->Bitmap(), |
347 AknIconUtils::SetSize( iSliderIcon->Bitmap(), |
348 TSize(KMPXSliderWidth, KMPXSliderHeight), |
348 TSize(KMPXSliderWidth, KMPXSliderHeight), |
351 |
351 |
352 delete iSliderSelectedIcon; |
352 delete iSliderSelectedIcon; |
353 iSliderSelectedIcon = NULL; |
353 iSliderSelectedIcon = NULL; |
354 iSliderSelectedIcon = AknsUtils::CreateGulIconL( |
354 iSliderSelectedIcon = AknsUtils::CreateGulIconL( |
355 skin, |
355 skin, |
356 KAknsIIDQgnGrafNsliderVerticalMarkerSelected, |
356 KAknsIIDQgnGrafNsliderVerticalMarkerSelected, |
357 iconsPath, |
357 iconsPath, |
358 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker_selected, |
358 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker_selected, |
359 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker_selected_mask ); |
359 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker_selected_mask ); |
360 |
360 |
361 if ( iSliderSelectedIcon ) |
361 if ( iSliderSelectedIcon ) |
362 { |
362 { |
363 AknIconUtils::SetSize( iSliderSelectedIcon->Bitmap(), |
363 AknIconUtils::SetSize( iSliderSelectedIcon->Bitmap(), |
364 TSize(KMPXSliderWidth, KMPXSliderHeight), |
364 TSize(KMPXSliderWidth, KMPXSliderHeight), |
367 |
367 |
368 delete iVolumeUpIcon; |
368 delete iVolumeUpIcon; |
369 iVolumeUpIcon = NULL; |
369 iVolumeUpIcon = NULL; |
370 iVolumeUpIcon = AknsUtils::CreateGulIconL( |
370 iVolumeUpIcon = AknsUtils::CreateGulIconL( |
371 skin, |
371 skin, |
372 KAknsIIDQgnIndiCam4ZoomMax, |
372 KAknsIIDQgnIndiCam4ZoomMax, |
373 iconsPath, |
373 iconsPath, |
374 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_increase, |
374 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_increase, |
375 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_increase_mask ); |
375 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_increase_mask ); |
376 |
376 |
377 if ( iVolumeUpIcon ) |
377 if ( iVolumeUpIcon ) |
378 { |
378 { |
379 AknIconUtils::SetSize( iVolumeUpIcon->Bitmap(), |
379 AknIconUtils::SetSize( iVolumeUpIcon->Bitmap(), |
380 iVolumeUpRect.Size(), |
380 iVolumeUpRect.Size(), |
383 |
383 |
384 delete iVolumeDownIcon; |
384 delete iVolumeDownIcon; |
385 iVolumeDownIcon = NULL; |
385 iVolumeDownIcon = NULL; |
386 iVolumeDownIcon = AknsUtils::CreateGulIconL( |
386 iVolumeDownIcon = AknsUtils::CreateGulIconL( |
387 skin, |
387 skin, |
388 KAknsIIDQgnIndiCam4ZoomMin, |
388 KAknsIIDQgnIndiCam4ZoomMin, |
389 iconsPath, |
389 iconsPath, |
390 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_decrease, |
390 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_decrease, |
391 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_decrease_mask ); |
391 EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_decrease_mask ); |
392 |
392 |
393 if ( iVolumeDownIcon ) |
393 if ( iVolumeDownIcon ) |
394 { |
394 { |
395 AknIconUtils::SetSize( iVolumeDownIcon->Bitmap(), |
395 AknIconUtils::SetSize( iVolumeDownIcon->Bitmap(), |
396 iVolumeDownRect.Size(), |
396 iVolumeDownRect.Size(), |
399 |
399 |
400 delete iVolumeFrameIconTop; |
400 delete iVolumeFrameIconTop; |
401 iVolumeFrameIconTop = NULL; |
401 iVolumeFrameIconTop = NULL; |
402 iVolumeFrameIconTop = AknsUtils::CreateGulIconL( |
402 iVolumeFrameIconTop = AknsUtils::CreateGulIconL( |
403 skin, |
403 skin, |
404 KAknsIIDQgnIndiCam4ZoomTop, |
404 KAknsIIDQgnIndiCam4ZoomTop, |
405 iconsPath, |
405 iconsPath, |
406 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_top, |
406 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_top, |
407 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_top_mask ); |
407 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_top_mask ); |
408 |
408 |
409 if ( iVolumeFrameIconTop ) |
409 if ( iVolumeFrameIconTop ) |
410 { |
410 { |
411 AknIconUtils::SetSize( iVolumeFrameIconTop->Bitmap(), |
411 AknIconUtils::SetSize( iVolumeFrameIconTop->Bitmap(), |
412 TSize( iVolumeBarRectTop.Width(), iVolumeBarRectTop.Height() ), |
412 TSize( iVolumeBarRectTop.Width(), iVolumeBarRectTop.Height() ), |
415 |
415 |
416 delete iVolumeFrameIconMiddle; |
416 delete iVolumeFrameIconMiddle; |
417 iVolumeFrameIconMiddle = NULL; |
417 iVolumeFrameIconMiddle = NULL; |
418 iVolumeFrameIconMiddle = AknsUtils::CreateGulIconL( |
418 iVolumeFrameIconMiddle = AknsUtils::CreateGulIconL( |
419 skin, |
419 skin, |
420 KAknsIIDQgnIndiCam4ZoomMiddle, |
420 KAknsIIDQgnIndiCam4ZoomMiddle, |
421 iconsPath, |
421 iconsPath, |
422 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_middle, |
422 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_middle, |
423 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_middle_mask ); |
423 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_middle_mask ); |
424 |
424 |
425 if ( iVolumeFrameIconMiddle ) |
425 if ( iVolumeFrameIconMiddle ) |
426 { |
426 { |
427 AknIconUtils::SetSize( iVolumeFrameIconMiddle->Bitmap(), |
427 AknIconUtils::SetSize( iVolumeFrameIconMiddle->Bitmap(), |
428 TSize( iVolumeBarRectMiddle.Width(), iVolumeBarRectMiddle.Height() ), |
428 TSize( iVolumeBarRectMiddle.Width(), iVolumeBarRectMiddle.Height() ), |
431 |
431 |
432 delete iVolumeFrameIconBottom; |
432 delete iVolumeFrameIconBottom; |
433 iVolumeFrameIconBottom = NULL; |
433 iVolumeFrameIconBottom = NULL; |
434 iVolumeFrameIconBottom = AknsUtils::CreateGulIconL( |
434 iVolumeFrameIconBottom = AknsUtils::CreateGulIconL( |
435 skin, |
435 skin, |
436 KAknsIIDQgnIndiCam4ZoomBottom, |
436 KAknsIIDQgnIndiCam4ZoomBottom, |
437 iconsPath, |
437 iconsPath, |
438 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_bottom, |
438 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_bottom, |
439 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_bottom_mask ); |
439 EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_bottom_mask ); |
440 |
440 |
441 if ( iVolumeFrameIconBottom ) |
441 if ( iVolumeFrameIconBottom ) |
442 { |
442 { |
443 AknIconUtils::SetSize( iVolumeFrameIconBottom->Bitmap(), |
443 AknIconUtils::SetSize( iVolumeFrameIconBottom->Bitmap(), |
444 TSize( iVolumeBarRectBottom.Width(), iVolumeBarRectBottom.Height() ), |
444 TSize( iVolumeBarRectBottom.Width(), iVolumeBarRectBottom.Height() ), |
446 } |
446 } |
447 |
447 |
448 // Calculate the X coordinate to center the icon of sliderbar |
448 // Calculate the X coordinate to center the icon of sliderbar |
449 TRect volumeBarRectPart; |
449 TRect volumeBarRectPart; |
450 CGulIcon* volumeFrameIconPart = NULL; |
450 CGulIcon* volumeFrameIconPart = NULL; |
|
451 |
451 if ( iVolumeFrameIconTop ) |
452 if ( iVolumeFrameIconTop ) |
452 { |
453 { |
453 volumeFrameIconPart = iVolumeFrameIconTop; |
454 volumeFrameIconPart = iVolumeFrameIconTop; |
454 volumeBarRectPart = iVolumeBarRectTop; |
455 volumeBarRectPart = iVolumeBarRectTop; |
455 } |
456 } |
476 // CMPXVideoPlaybackVolumeBar::HandleVolumeIncreaseL |
477 // CMPXVideoPlaybackVolumeBar::HandleVolumeIncreaseL |
477 // ------------------------------------------------------------------------------------------------- |
478 // ------------------------------------------------------------------------------------------------- |
478 // |
479 // |
479 void CMPXVideoPlaybackVolumeBar::HandleVolumeIncreaseL( const TPointerEvent& aPointerEvent ) |
480 void CMPXVideoPlaybackVolumeBar::HandleVolumeIncreaseL( const TPointerEvent& aPointerEvent ) |
480 { |
481 { |
481 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleVolumeIncreaseL()")); |
482 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleVolumeIncreaseL()"), |
|
483 _L("aPointerEvent.iType = %d"), aPointerEvent.iType); |
482 |
484 |
483 switch ( aPointerEvent.iType ) |
485 switch ( aPointerEvent.iType ) |
484 { |
486 { |
485 case TPointerEvent::EButtonRepeat: |
487 case TPointerEvent::EButtonRepeat: |
486 { |
488 { |
538 // CMPXVideoPlaybackVolumeBar::HandleVolumeDecreaseL |
539 // CMPXVideoPlaybackVolumeBar::HandleVolumeDecreaseL |
539 // ------------------------------------------------------------------------------------------------- |
540 // ------------------------------------------------------------------------------------------------- |
540 // |
541 // |
541 void CMPXVideoPlaybackVolumeBar::HandleVolumeDecreaseL( const TPointerEvent& aPointerEvent ) |
542 void CMPXVideoPlaybackVolumeBar::HandleVolumeDecreaseL( const TPointerEvent& aPointerEvent ) |
542 { |
543 { |
543 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleVolumeDecreaseL()")); |
544 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleVolumeDecreaseL()"), |
|
545 _L("aPointerEvent.iType = %d"), aPointerEvent.iType); |
544 |
546 |
545 switch ( aPointerEvent.iType ) |
547 switch ( aPointerEvent.iType ) |
546 { |
548 { |
547 case TPointerEvent::EButtonRepeat: |
549 case TPointerEvent::EButtonRepeat: |
548 { |
550 { |
599 // CMPXVideoPlaybackVolumeBar::HandleSpeakerControlEventL |
601 // CMPXVideoPlaybackVolumeBar::HandleSpeakerControlEventL |
600 // ------------------------------------------------------------------------------------------------- |
602 // ------------------------------------------------------------------------------------------------- |
601 // |
603 // |
602 void CMPXVideoPlaybackVolumeBar::HandleSpeakerControlEventL( const TPointerEvent& aPointerEvent ) |
604 void CMPXVideoPlaybackVolumeBar::HandleSpeakerControlEventL( const TPointerEvent& aPointerEvent ) |
603 { |
605 { |
604 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleSpeakerControlEventL()")); |
606 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleSpeakerControlEventL()"), |
|
607 _L("aPointerEvent.iType = %d"), aPointerEvent.iType); |
605 |
608 |
606 switch ( aPointerEvent.iType ) |
609 switch ( aPointerEvent.iType ) |
607 { |
610 { |
608 case TPointerEvent::EButton1Up: |
611 case TPointerEvent::EButton1Up: |
609 { |
612 { |
650 // CMPXVideoPlaybackVolumeBar::HandleVolumeBarEventL |
653 // CMPXVideoPlaybackVolumeBar::HandleVolumeBarEventL |
651 // ------------------------------------------------------------------------------------------------- |
654 // ------------------------------------------------------------------------------------------------- |
652 // |
655 // |
653 void CMPXVideoPlaybackVolumeBar::HandleVolumeBarEventL( const TPointerEvent& aPointerEvent ) |
656 void CMPXVideoPlaybackVolumeBar::HandleVolumeBarEventL( const TPointerEvent& aPointerEvent ) |
654 { |
657 { |
655 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleVolumeBarEventL()")); |
658 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleVolumeBarEventL()"), |
|
659 _L("aPointerEvent.iType = %d"), aPointerEvent.iType); |
656 |
660 |
657 TInt vol = 0; |
661 TInt vol = 0; |
658 |
662 |
|
663 // |
|
664 // Dynamic Slider Feedback should only be given when the slider is not at the top or bottom |
|
665 // |
|
666 TBool giveDynamicSliderFeedback = EFalse; |
|
667 |
659 if ( aPointerEvent.iPosition.iY < iVolumeBarRect.iTl.iY + KMPXSliderHeight / 2 ) |
668 if ( aPointerEvent.iPosition.iY < iVolumeBarRect.iTl.iY + KMPXSliderHeight / 2 ) |
660 { |
669 { |
661 vol = KPbPlaybackVolumeLevelMax; |
670 vol = KPbPlaybackVolumeLevelMax; |
662 } |
671 } |
663 else if ( aPointerEvent.iPosition.iY > iVolumeBarRect.iBr.iY - KMPXSliderHeight / 2 ) |
672 else if ( aPointerEvent.iPosition.iY > iVolumeBarRect.iBr.iY - KMPXSliderHeight / 2 ) |
664 { |
673 { |
665 vol = 0; |
674 vol = 0; |
666 } |
675 } |
667 else |
676 else |
668 { |
677 { |
|
678 giveDynamicSliderFeedback = ETrue; |
|
679 |
669 vol = ( iVolumeBarRect.iBr.iY - KMPXSliderHeight / 2 - aPointerEvent.iPosition.iY ) / |
680 vol = ( iVolumeBarRect.iBr.iY - KMPXSliderHeight / 2 - aPointerEvent.iPosition.iY ) / |
670 iOneVolumeIncrementHeight; |
681 iOneVolumeIncrementHeight; |
671 } |
682 } |
672 |
683 |
673 switch ( aPointerEvent.iType ) |
684 switch ( aPointerEvent.iType ) |
675 case TPointerEvent::EButton1Down: |
686 case TPointerEvent::EButton1Down: |
676 { |
687 { |
677 #ifdef RD_TACTILE_FEEDBACK |
688 #ifdef RD_TACTILE_FEEDBACK |
678 if ( iFeedback ) |
689 if ( iFeedback ) |
679 { |
690 { |
680 #ifdef SYMBIAN_BUILD_GCE |
|
681 iFeedback->InstantFeedback( ETouchFeedbackSlider ); |
691 iFeedback->InstantFeedback( ETouchFeedbackSlider ); |
682 #else |
|
683 iFeedback->InstantFeedback( ETouchFeedbackBasic ); |
|
684 #endif //SYMBIAN_BUILD_GCE |
|
685 } |
692 } |
686 #endif //RD_TACTILE_FEEDBACK |
693 #endif //RD_TACTILE_FEEDBACK |
687 |
694 |
688 if ( ! iDraggingHandlerTimer->IsActive() ) |
695 if ( ! iDraggingHandlerTimer->IsActive() ) |
689 { |
696 { |
698 break; |
705 break; |
699 } |
706 } |
700 case TPointerEvent::EDrag: |
707 case TPointerEvent::EDrag: |
701 { |
708 { |
702 #ifdef RD_TACTILE_FEEDBACK |
709 #ifdef RD_TACTILE_FEEDBACK |
703 if ( iFeedback ) |
710 if ( iFeedback && giveDynamicSliderFeedback ) |
704 { |
711 { |
705 #ifdef SYMBIAN_BUILD_GCE |
712 iFeedback->StartFeedback( this, |
706 iFeedback->InstantFeedback( ETouchFeedbackSlider ); |
713 ETouchDynamicSlider, |
707 #else |
714 &aPointerEvent, |
708 iFeedback->InstantFeedback( ETouchFeedbackSensitive ); |
715 KDynamicSliderFeedbackIntensity, |
709 #endif //SYMBIAN_BUILD_GCE |
716 KDynamicSliderFeedbackTimeOut ); |
710 } |
717 } |
711 #endif //RD_TACTILE_FEEDBACK |
718 #endif //RD_TACTILE_FEEDBACK |
712 |
719 |
713 iVolumeWhileDraggingEvent = vol; |
720 iVolumeWhileDraggingEvent = vol; |
714 iDragging = EVolumeBarDragging; |
721 iDragging = EVolumeBarDragging; |
982 // CMPXVideoPlaybackVolumeBar::Reset |
989 // CMPXVideoPlaybackVolumeBar::Reset |
983 // ------------------------------------------------------------------------------------------------- |
990 // ------------------------------------------------------------------------------------------------- |
984 // |
991 // |
985 void CMPXVideoPlaybackVolumeBar::Reset() |
992 void CMPXVideoPlaybackVolumeBar::Reset() |
986 { |
993 { |
987 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::Reset()")); |
994 MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::Reset()")); |
988 |
995 |
989 if ( iDragging != EVolumeNotDragging ) |
996 if ( iDragging != EVolumeNotDragging ) |
990 { |
997 { |
991 TPointerEvent event; |
998 TPointerEvent event; |
992 event.iType = TPointerEvent::EButton1Up; |
999 event.iType = TPointerEvent::EButton1Up; |