diff -r 67eb01668b0e -r baf439b22ddd videoplayback/videoplaybackcontrols/src/mpxvideoplaybackvolumebar.cpp --- a/videoplayback/videoplaybackcontrols/src/mpxvideoplaybackvolumebar.cpp Wed Jun 09 09:44:23 2010 +0300 +++ b/videoplayback/videoplaybackcontrols/src/mpxvideoplaybackvolumebar.cpp Mon Jun 21 15:43:03 2010 +0300 @@ -16,7 +16,7 @@ */ -// Version : %version: 23 % +// Version : %version: 24 % // INCLUDE FILES @@ -47,6 +47,8 @@ const TInt KMPXSliderWidth = 18; const TInt KMPXVolumeDragEventTimeOut = 100000; const TInt KMPXPtrEventRepeatRequestTime = 200000; +const TInt KDynamicSliderFeedbackTimeOut = 100000; +const TInt KDynamicSliderFeedbackIntensity = 100; using namespace AknLayoutScalable_Apps; using namespace AknLayoutScalable_Avkon; @@ -70,7 +72,7 @@ // void CMPXVideoPlaybackVolumeBar::ConstructL() { - MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::ConstructL()")); + MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::ConstructL()")); SetLayout(); SkinChangeL(); @@ -90,8 +92,6 @@ CMPXVideoPlaybackVolumeBar* CMPXVideoPlaybackVolumeBar::NewL( CMPXVideoPlaybackControlsController* aController, TRect aRect ) { - MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::NewL()")); - CMPXVideoPlaybackVolumeBar* self = new ( ELeave ) CMPXVideoPlaybackVolumeBar( aController, aRect ); @@ -108,7 +108,7 @@ // CMPXVideoPlaybackVolumeBar::~CMPXVideoPlaybackVolumeBar() { - MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::~CMPXVideoPlaybackVolumeBar()")); + MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::~CMPXVideoPlaybackVolumeBar()")); if ( iDraggingHandlerTimer ) { @@ -178,12 +178,11 @@ } #ifdef RD_TACTILE_FEEDBACK - if (iFeedback) + if ( iFeedback ) { iFeedback->RemoveFeedbackForControl(this); } #endif //RD_TACTILE_FEEDBACK - } // ------------------------------------------------------------------------------------------------- @@ -192,7 +191,8 @@ // void CMPXVideoPlaybackVolumeBar::HandleResourceChange( TInt aType ) { - MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::HandleResourceChange(0x%X)"), aType); + MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleResourceChange()"), + _L("aType = 0x%X"), aType); if ( aType == KAknsMessageSkinChange ) { @@ -208,7 +208,7 @@ // void CMPXVideoPlaybackVolumeBar::SetLayout() { - MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::SetLayout()")); + MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::SetLayout()")); TAknLayoutRect tmpLayoutRect; @@ -273,7 +273,7 @@ // void CMPXVideoPlaybackVolumeBar::SkinChangeL() { - MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::SkinChangeL()")); + MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::SkinChangeL()")); // // Create icons @@ -287,10 +287,10 @@ iSpeakerIcon = NULL; iSpeakerIcon = AknsUtils::CreateGulIconL( skin, - KAknsIIDQgnIndiNsliderUnmuted, - iconsPath, - EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_unmuted, - EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_unmuted_mask ); + KAknsIIDQgnIndiNsliderUnmuted, + iconsPath, + EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_unmuted, + EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_unmuted_mask ); if ( iSpeakerIcon ) { @@ -303,10 +303,10 @@ iSpeakerMuteIcon = NULL; iSpeakerMuteIcon = AknsUtils::CreateGulIconL( skin, - KAknsIIDQgnIndiNsliderMuted, - iconsPath, - EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_muted, - EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_muted_mask ); + KAknsIIDQgnIndiNsliderMuted, + iconsPath, + EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_muted, + EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_muted_mask ); if ( iSpeakerMuteIcon ) @@ -337,10 +337,10 @@ iSliderIcon = NULL; iSliderIcon = AknsUtils::CreateGulIconL( skin, - KAknsIIDQgnGrafNsliderVerticalMarker, - iconsPath, - EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker, - EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker_mask ); + KAknsIIDQgnGrafNsliderVerticalMarker, + iconsPath, + EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker, + EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker_mask ); if ( iSliderIcon ) { @@ -353,10 +353,10 @@ iSliderSelectedIcon = NULL; iSliderSelectedIcon = AknsUtils::CreateGulIconL( skin, - KAknsIIDQgnGrafNsliderVerticalMarkerSelected, - iconsPath, - EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker_selected, - EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker_selected_mask ); + KAknsIIDQgnGrafNsliderVerticalMarkerSelected, + iconsPath, + EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker_selected, + EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_marker_selected_mask ); if ( iSliderSelectedIcon ) { @@ -369,10 +369,10 @@ iVolumeUpIcon = NULL; iVolumeUpIcon = AknsUtils::CreateGulIconL( skin, - KAknsIIDQgnIndiCam4ZoomMax, - iconsPath, - EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_increase, - EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_increase_mask ); + KAknsIIDQgnIndiCam4ZoomMax, + iconsPath, + EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_increase, + EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_increase_mask ); if ( iVolumeUpIcon ) { @@ -385,10 +385,10 @@ iVolumeDownIcon = NULL; iVolumeDownIcon = AknsUtils::CreateGulIconL( skin, - KAknsIIDQgnIndiCam4ZoomMin, - iconsPath, - EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_decrease, - EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_decrease_mask ); + KAknsIIDQgnIndiCam4ZoomMin, + iconsPath, + EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_decrease, + EMbmMpxvideoplaybackcontrolsQgn_indi_nslider_level_decrease_mask ); if ( iVolumeDownIcon ) { @@ -401,10 +401,10 @@ iVolumeFrameIconTop = NULL; iVolumeFrameIconTop = AknsUtils::CreateGulIconL( skin, - KAknsIIDQgnIndiCam4ZoomTop, - iconsPath, - EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_top, - EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_top_mask ); + KAknsIIDQgnIndiCam4ZoomTop, + iconsPath, + EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_top, + EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_top_mask ); if ( iVolumeFrameIconTop ) { @@ -417,10 +417,10 @@ iVolumeFrameIconMiddle = NULL; iVolumeFrameIconMiddle = AknsUtils::CreateGulIconL( skin, - KAknsIIDQgnIndiCam4ZoomMiddle, - iconsPath, - EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_middle, - EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_middle_mask ); + KAknsIIDQgnIndiCam4ZoomMiddle, + iconsPath, + EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_middle, + EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_middle_mask ); if ( iVolumeFrameIconMiddle ) { @@ -433,10 +433,10 @@ iVolumeFrameIconBottom = NULL; iVolumeFrameIconBottom = AknsUtils::CreateGulIconL( skin, - KAknsIIDQgnIndiCam4ZoomBottom, - iconsPath, - EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_bottom, - EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_bottom_mask ); + KAknsIIDQgnIndiCam4ZoomBottom, + iconsPath, + EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_bottom, + EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_bottom_mask ); if ( iVolumeFrameIconBottom ) { @@ -448,6 +448,7 @@ // Calculate the X coordinate to center the icon of sliderbar TRect volumeBarRectPart; CGulIcon* volumeFrameIconPart = NULL; + if ( iVolumeFrameIconTop ) { volumeFrameIconPart = iVolumeFrameIconTop; @@ -478,7 +479,8 @@ // void CMPXVideoPlaybackVolumeBar::HandleVolumeIncreaseL( const TPointerEvent& aPointerEvent ) { - MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleVolumeIncreaseL()")); + MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleVolumeIncreaseL()"), + _L("aPointerEvent.iType = %d"), aPointerEvent.iType); switch ( aPointerEvent.iType ) { @@ -509,7 +511,6 @@ case TPointerEvent::EDrag: { iDragging = EVolumeIncreaseDragging; - break; } case TPointerEvent::EButton1Up: @@ -540,7 +541,8 @@ // void CMPXVideoPlaybackVolumeBar::HandleVolumeDecreaseL( const TPointerEvent& aPointerEvent ) { - MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleVolumeDecreaseL()")); + MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleVolumeDecreaseL()"), + _L("aPointerEvent.iType = %d"), aPointerEvent.iType); switch ( aPointerEvent.iType ) { @@ -601,7 +603,8 @@ // void CMPXVideoPlaybackVolumeBar::HandleSpeakerControlEventL( const TPointerEvent& aPointerEvent ) { - MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleSpeakerControlEventL()")); + MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleSpeakerControlEventL()"), + _L("aPointerEvent.iType = %d"), aPointerEvent.iType); switch ( aPointerEvent.iType ) { @@ -652,10 +655,16 @@ // void CMPXVideoPlaybackVolumeBar::HandleVolumeBarEventL( const TPointerEvent& aPointerEvent ) { - MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleVolumeBarEventL()")); + MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::HandleVolumeBarEventL()"), + _L("aPointerEvent.iType = %d"), aPointerEvent.iType); TInt vol = 0; + // + // Dynamic Slider Feedback should only be given when the slider is not at the top or bottom + // + TBool giveDynamicSliderFeedback = EFalse; + if ( aPointerEvent.iPosition.iY < iVolumeBarRect.iTl.iY + KMPXSliderHeight / 2 ) { vol = KPbPlaybackVolumeLevelMax; @@ -666,6 +675,8 @@ } else { + giveDynamicSliderFeedback = ETrue; + vol = ( iVolumeBarRect.iBr.iY - KMPXSliderHeight / 2 - aPointerEvent.iPosition.iY ) / iOneVolumeIncrementHeight; } @@ -677,11 +688,7 @@ #ifdef RD_TACTILE_FEEDBACK if ( iFeedback ) { -#ifdef SYMBIAN_BUILD_GCE iFeedback->InstantFeedback( ETouchFeedbackSlider ); -#else - iFeedback->InstantFeedback( ETouchFeedbackBasic ); -#endif //SYMBIAN_BUILD_GCE } #endif //RD_TACTILE_FEEDBACK @@ -700,13 +707,13 @@ case TPointerEvent::EDrag: { #ifdef RD_TACTILE_FEEDBACK - if ( iFeedback ) + if ( iFeedback && giveDynamicSliderFeedback ) { -#ifdef SYMBIAN_BUILD_GCE - iFeedback->InstantFeedback( ETouchFeedbackSlider ); -#else - iFeedback->InstantFeedback( ETouchFeedbackSensitive ); -#endif //SYMBIAN_BUILD_GCE + iFeedback->StartFeedback( this, + ETouchDynamicSlider, + &aPointerEvent, + KDynamicSliderFeedbackIntensity, + KDynamicSliderFeedbackTimeOut ); } #endif //RD_TACTILE_FEEDBACK @@ -984,7 +991,7 @@ // void CMPXVideoPlaybackVolumeBar::Reset() { - MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::Reset()")); + MPX_ENTER_EXIT(_L("CMPXVideoPlaybackVolumeBar::Reset()")); if ( iDragging != EVolumeNotDragging ) {