diff -r 481242ead638 -r 48e827313edd browserplugins/browseraudiovideoplugin/src/BavpView.cpp --- a/browserplugins/browseraudiovideoplugin/src/BavpView.cpp Tue Feb 02 00:12:41 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,796 +0,0 @@ -/* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "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: Uses the interface MPluginAdapter to notify browser of construction - and destruction of the plug-in, implements interface MPluginOptionHandler - to add menus and draws animated images while video player loading the data -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include // For TResourceReader -#include -#include -#include // For text - -#include - -#include "BavpLogger.h" -#include "BavpView.h" -#include "BavpController.h" -#include "BavpPlugin.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CBavpView::CBavpView -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -CBavpView::CBavpView() - { - } - -// ----------------------------------------------------------------------------- -// CBavpView::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CBavpView::ConstructL( const CCoeControl* aParent, - const TRect& aRect, CBavpPlugin* aBavPlugin ) - { - Log( EFalse, _L("CBavpView::ConstructL") ); - iBavPlugin = aBavPlugin; - - CreateWindowL(aParent); -#ifdef BRDO_MULTITOUCH_ENABLED_FF - if (AknLayoutUtils::PenEnabled()) { - DrawableWindow()->SetPointerGrab(ETrue); - EnableDragEvents(); - } - //To enable advance pointer info for multi-touch - Window().EnableAdvancedPointers(); -#endif - ActivateL(); // Draws icon - iRect = aRect; - CCoeControl::SetRect( aRect ); // Calls SizeChanged - - User::LeaveIfError( iWsSession.Connect() ); - iWindowId = iCoeEnv->RootWin().Identifier(); - - // Video buffering animation, used to show that content is buffering - iVideoBuffAnimation = CAknBitmapAnimation::NewL(); - iVideoBuffAnimation->SetContainerWindowL( *this ); - TResourceReader rrBuffering; - iCoeEnv->CreateResourceReaderLC( rrBuffering, R_ANIMATION_BUFFERING ); - iVideoBuffAnimation->ConstructFromResourceL( rrBuffering ); - CleanupStack::PopAndDestroy(); // rrBuffering - iIsVideoBuffAnimRunning = EFalse; - - // Bad content animation, used to show that content is not available - iBadContentAnimation = CAknBitmapAnimation::NewL(); - iBadContentAnimation->SetContainerWindowL( *this ); - TResourceReader rrNoContentAnim; - iCoeEnv->CreateResourceReaderLC( rrNoContentAnim, R_NO_CONTENT_ANIMATION ); - iBadContentAnimation->ConstructFromResourceL( rrNoContentAnim ); - CleanupStack::PopAndDestroy(); // rrNoContentAnim - iIsBadContentAnimRunning = EFalse; - - // Video stopped animation, used to show that video content is stopped - iVideoStoppedAnimation = CAknBitmapAnimation::NewL(); - iVideoStoppedAnimation->SetContainerWindowL( *this ); - TResourceReader rrVideoStoppedAnim; - iCoeEnv->CreateResourceReaderLC( rrVideoStoppedAnim, R_VIDEO_STOPPED_ANIMATION ); - iVideoStoppedAnimation->ConstructFromResourceL( rrVideoStoppedAnim ); - CleanupStack::PopAndDestroy(); // rrVideoStoppedAnim - iIsVideoStoppedAnimRunning = EFalse; - - // Video paused animation, used to show that video content is paused - iVideoPausedAnimation = CAknBitmapAnimation::NewL(); - iVideoPausedAnimation->SetContainerWindowL( *this ); - TResourceReader rrVideoPausedAnim; - iCoeEnv->CreateResourceReaderLC( rrVideoPausedAnim, R_VIDEO_PAUSED_ANIMATION ); - iVideoPausedAnimation->ConstructFromResourceL( rrVideoPausedAnim ); - CleanupStack::PopAndDestroy(); // rrVideoPausedAnim - iIsVideoPausedAnimRunning = EFalse; - - // Audio playing animation, used when no video is present, only audio - iAudioPlayAnimation = CAknBitmapAnimation::NewL(); - iAudioPlayAnimation->SetContainerWindowL( *this ); - TResourceReader rrAudioPlayAnim; - iCoeEnv->CreateResourceReaderLC( rrAudioPlayAnim, R_AUDIO_PLAY_ANIMATION ); - iAudioPlayAnimation->ConstructFromResourceL( rrAudioPlayAnim ); - CleanupStack::PopAndDestroy(); // rrAudioPlayAnim - iIsAudioPlayAnimRunning = EFalse; - - // Audio stopped animation, used to show that audio content is stopped - iAudioStoppedAnimation = CAknBitmapAnimation::NewL(); - iAudioStoppedAnimation->SetContainerWindowL( *this ); - TResourceReader rrAudioStoppedAnim; - iCoeEnv->CreateResourceReaderLC( rrAudioStoppedAnim, R_AUDIO_STOPPED_ANIMATION ); - iAudioStoppedAnimation->ConstructFromResourceL( rrAudioStoppedAnim ); - CleanupStack::PopAndDestroy(); // rrAudioStoppedAnim - iIsAudioStoppedAnimRunning = EFalse; - - // Audio paused animation, used to show that audio content is paused - iAudioPausedAnimation = CAknBitmapAnimation::NewL(); - iAudioPausedAnimation->SetContainerWindowL( *this ); - TResourceReader rrAudioPausedAnim; - iCoeEnv->CreateResourceReaderLC( rrAudioPausedAnim, R_AUDIO_PAUSED_ANIMATION ); - iAudioPausedAnimation->ConstructFromResourceL( rrAudioPausedAnim ); - CleanupStack::PopAndDestroy(); // rrAudioPausedAnim - iIsAudioPausedAnimRunning = EFalse; - - Log( EFalse, _L("CBavpView::ConstructL - Start Buffering animation") ); - RunAnimation(iVideoBuffAnimation, iIsVideoBuffAnimRunning); - } - -// ----------------------------------------------------------------------------- -// CBavpView::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -CBavpView* CBavpView::NewL( const CCoeControl* aParent, - const TRect& aRect, CBavpPlugin* aBavPlugin ) - { - Log( EFalse, _L("CBavpView::NewL") ); - - CBavpView* self = new( ELeave ) CBavpView; - CleanupStack::PushL( self ); - self->ConstructL( aParent, aRect, aBavPlugin ); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// CBavpView::Destructor -// ----------------------------------------------------------------------------- -CBavpView::~CBavpView() - { - Log( EFalse, _L("CBavpView::~CBavpView") ); - - // Check if the keyhandling is on the stack, if yes, remove it - if ( iIsOnStack ) - { - // Check if the animation is active - // if it is not start animation - iEikonEnv->EikAppUi()->RemoveFromStack( this ); - } - - // Cancel video buffering animation, if it's still running - if ( iIsVideoBuffAnimRunning ) - { - iVideoBuffAnimation->CancelAnimation(); - } - delete iVideoBuffAnimation; - - // Cancel video stopped animation, if it's still running - if ( iIsVideoStoppedAnimRunning ) - { - iVideoStoppedAnimation->CancelAnimation(); - } - delete iVideoStoppedAnimation; - - // Cancel video paused animation, if it's still running - if ( iIsVideoPausedAnimRunning ) - { - iVideoPausedAnimation->CancelAnimation(); - } - delete iVideoPausedAnimation; - - // Cancel audio only animation, if it's still running - if ( iIsAudioPlayAnimRunning ) - { - iAudioPlayAnimation->CancelAnimation(); - } - delete iAudioPlayAnimation; - - // Cancel audio stopped animation, if it's still running - if ( iIsAudioStoppedAnimRunning ) - { - iAudioStoppedAnimation->CancelAnimation(); - } - delete iAudioStoppedAnimation; - - // Cancel audio paused animation, if it's still running - if ( iIsAudioPausedAnimRunning ) - { - iAudioPausedAnimation->CancelAnimation(); - } - delete iAudioPausedAnimation; - - // Cancel bad content animation, if it's still running - if ( iIsBadContentAnimRunning ) - { - iBadContentAnimation->CancelAnimation(); - } - delete iBadContentAnimation; - - iWsSession.Close(); - } - -// ----------------------------------------------------------------------------- -// CBavpView::SizeChanged -// Responds to size changes to sets the size and position of the contents of -// this control -// ----------------------------------------------------------------------------- -void CBavpView::SizeChanged() - { - Log( EFalse, _L("CBavpView::SizeChanged") ); - - if ( iBavpController ) - { - iRect = Rect(); - iBavpController->RefreshRectCoordinatesL(); - } - } - -// ----------------------------------------------------------------------------- -// CBavpView::AddPluginOptionMenuItemsL -// Add the Option Menu items to the menuPane, these will be handled by plugin. -// ----------------------------------------------------------------------------- -void CBavpView::AddPluginOptionMenuItemsL( CEikMenuPane& aMenuPane, - TInt aCommandBase, - TInt /*aAfter*/ ) - { - Log( EFalse, _L("CBavpView::AddPluginOptionMenuItemsL") ); - - iCommandBase = aCommandBase; - TInt index( 0 ); - - // The menus are only added, if the controller exists and we're in - // normal screen and not bad content - if ( !iBavpController || iBavpController->IsClipFullScreen() || - iBavpController->State() == EBavpBadContent ) - { - return; - } - - // Display the "Mute" menu item, unless we have HW volume keys, and... - if ( !HAS_HW_VOLUME_KEYS && - !iBavpController->IsVolumeMuted() && - !iBavpController->IsClipRewinding() && - !iBavpController->IsClipFastForwarding() ) - { - InsertOneMenuItemL( aMenuPane, EBavpCmdMuteVolume, - R_TEXT_VIDEO_PLUGIN_VOLUME_MUTE, index); - index++; - } - - // Check CurrentState to determine the menu items to add - switch ( iBavpController->State() ) - { - case EBavpStopped: - case EBavpRewindComplete: - case EBavpPlayComplete: - { - // The content is at the beginning, user can play - InsertOneMenuItemL( aMenuPane, EBavpCmdPlay, - R_TEXT_VIDEO_PLUGIN_PLAY, index ); - index ++; - break; - } - case EBavpPlaying: - { - // Check if it can be paused - if ( iBavpController->IsClipSeekable() ) - { - InsertOneMenuItemL( aMenuPane, EBavpCmdPause, - R_TEXT_VIDEO_PLUGIN_PAUSE, index); - index++; - } - - // If playing, user can also stop - InsertOneMenuItemL( aMenuPane, EBavpCmdStop, - R_TEXT_VIDEO_PLUGIN_STOP, index ); - index++; - // Add FF and Rewind, only if content seekable, local media, video - if ( iBavpController->IsClipSeekable() && - iBavpController->IsClipLocalMedia() && - iBavpController->IsClipVideo() ) - { - InsertOneMenuItemL( aMenuPane, EBavpCmdFastForward, - R_TEXT_VIDEO_PLUGIN_FAST_FORWARD, index ); - index++; - InsertOneMenuItemL( aMenuPane, EBavpCmdRewind, - R_TEXT_VIDEO_PLUGIN_REWIND, index ); - index++; - } - // Add full screen, only if video content - if ( iBavpController->IsClipVideo() ) - { - InsertOneMenuItemL( aMenuPane, EBavpCmdPlayFullScreen, - R_TEXT_VIDEO_PLUGIN_FULL_SCREEN, index ); - index++; - } - break; - } - case EBavpPaused: - { - // If paused, user can continue (play) or stop - InsertOneMenuItemL( aMenuPane, EBavpCmdPlay, - R_TEXT_VIDEO_PLUGIN_PLAY, index ); - index++; - - InsertOneMenuItemL( aMenuPane, EBavpCmdStop, - R_TEXT_VIDEO_PLUGIN_STOP, index ); - index++; - // Add FF and Rewind, only if content seekable, local media, video - if ( iBavpController->IsClipSeekable() && - iBavpController->IsClipLocalMedia() && - iBavpController->IsClipVideo() ) - { - InsertOneMenuItemL( aMenuPane, EBavpCmdFastForward, - R_TEXT_VIDEO_PLUGIN_FAST_FORWARD, index ); - index++; - InsertOneMenuItemL( aMenuPane, EBavpCmdRewind, - R_TEXT_VIDEO_PLUGIN_REWIND, index ); - index++; - } - break; - } - case EBavpFastForwarding: - case EBavpRewinding: - { - // User can play, while FF or Rewinding - InsertOneMenuItemL( aMenuPane, EBavpCmdPlay, - R_TEXT_VIDEO_PLUGIN_PLAY, index ); - index++; - // Add pause, we should only be fast-forwarding or rewinding - // seekable content, no need to check - InsertOneMenuItemL( aMenuPane, EBavpCmdPause, - R_TEXT_VIDEO_PLUGIN_PAUSE, index); - index++; - break; - } - case EBavpFastForwardComplete: - { - // Content is at the end, user can replay - InsertOneMenuItemL( aMenuPane, EBavpCmdPlay, - R_TEXT_VIDEO_PLUGIN_PLAY, index ); - index++; - // Add rewind, we should only be fast-forwarding seekable content, - // no need to check - InsertOneMenuItemL( aMenuPane, EBavpCmdRewind, - R_TEXT_VIDEO_PLUGIN_REWIND, index ); - index++; - break; - } - default: - { - break; - } - } // End of switch - - // Display "Media Volume" menu item, unless we have HW volume keys and... - if ( !HAS_HW_VOLUME_KEYS && - !iBavpController->IsClipRewinding() && - !iBavpController->IsClipFastForwarding() ) - { - // User can adjust volume - InsertOneMenuItemL( aMenuPane, EBavpCmdChangeVolume, - R_TEXT_VIDEO_PLUGIN_MEDIA_VOLUME, index ); - } - } - -// ----------------------------------------------------------------------------- -// CBavpView::HandlePluginCommandL -// Handle the user command from the option menu to the plugin. -// ----------------------------------------------------------------------------- -void CBavpView::HandlePluginCommandL( TInt aCommand ) - { - iBavpController->HandleCommandL( (TBavpCommandIds)(aCommand - iCommandBase) ); - } - -// ----------------------------------------------------------------------------- -// CBavpView::OfferKeyEventL -// Control framework calls this function to handle the key event -// ----------------------------------------------------------------------------- -TKeyResponse CBavpView::OfferKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - Log( EFalse, _L("CBavpView::OfferKeyEventL") ); - - TKeyResponse keyResponse( EKeyWasNotConsumed ); - - //Check if the controller is already initialized - if (iBavpController) - { - // Let the Audio or Video controller handle the key presses - keyResponse = iBavpController->HandleKeysL( aKeyEvent, aType ); - } - - return keyResponse; - } - -// ----------------------------------------------------------------------------- -// CBavpView::SetRect -// Sets the control's extent, specifying a TRect -// ----------------------------------------------------------------------------- -void CBavpView::SetRect( NPWindow* aWindow ) - { - Log( EFalse, _L("CBavpView::SetRect") ); - iWindowRect = TRect(TPoint(aWindow->x, aWindow->y), TSize(aWindow->width, aWindow->height)); - iClipRect = TRect(aWindow->clipRect.left, aWindow->clipRect.top, aWindow->clipRect.right, aWindow->clipRect.bottom); - TRect r(iClipRect); - r.Intersection(iWindowRect); - TBool flag = iRect != r; - iRect = r; - CCoeControl::SetRect( iRect ); - - // Set the rect only when the animation is playing - if ( iIsVideoBuffAnimRunning && iVideoBuffAnimation && - flag) - { - iVideoBuffAnimation->CancelAnimation(); - TRect animRect( iWindowRect); - iVideoBuffAnimation->SetRect( animRect ); - TRAP_IGNORE( iVideoBuffAnimation->StartAnimationL() ); - } - else if ( iIsAudioPlayAnimRunning && iAudioPlayAnimation && - flag) - { - iAudioPlayAnimation->CancelAnimation(); - TRect animRect( iWindowRect); - iAudioPlayAnimation->SetRect( animRect ); - TRAP_IGNORE( iAudioPlayAnimation->StartAnimationL() ); - } - else if ( iIsAudioStoppedAnimRunning && iAudioStoppedAnimation && - flag) - { - iAudioStoppedAnimation->CancelAnimation(); - TRect animRect( iWindowRect); - iAudioStoppedAnimation->SetRect( animRect ); - TRAP_IGNORE( iAudioStoppedAnimation->StartAnimationL() ); - } - else if ( iIsAudioPausedAnimRunning && iAudioPausedAnimation && - flag) - { - iAudioPausedAnimation->CancelAnimation(); - TRect animRect( iWindowRect); - iAudioPausedAnimation->SetRect( animRect ); - TRAP_IGNORE( iAudioPausedAnimation->StartAnimationL() ); - } - else if ( iIsVideoStoppedAnimRunning && iVideoStoppedAnimation && - flag) - { - iVideoStoppedAnimation->CancelAnimation(); - TRect animRect( iWindowRect); - iVideoStoppedAnimation->SetRect( animRect ); - TRAP_IGNORE( iVideoStoppedAnimation->StartAnimationL() ); - } - else if ( iIsVideoPausedAnimRunning && iVideoPausedAnimation && - flag) - { - iVideoPausedAnimation->CancelAnimation(); - TRect animRect( iWindowRect); - iVideoPausedAnimation->SetRect( animRect ); - TRAP_IGNORE( iVideoPausedAnimation->StartAnimationL() ); - } - else if ( iIsBadContentAnimRunning && iBadContentAnimation && - flag) - { - iBadContentAnimation->CancelAnimation(); - TRect animRect( iWindowRect); - iBadContentAnimation->SetRect( animRect ); - TRAP_IGNORE( iBadContentAnimation->StartAnimationL() ); - } - } - -// ----------------------------------------------------------------------------- -// CBavpView::IsTopWindow -// Return ETrue if the CCoeControl is the top window instance -// ----------------------------------------------------------------------------- -TBool CBavpView::IsTopWindowL() - { - Log( EFalse, _L("CBavpView::IsTopWindowL") ); - - TBool ret( EFalse ); - TInt numWg( iWsSession.NumWindowGroups() ); - CArrayFixFlat* wgList = new (ELeave) CArrayFixFlat( numWg ); - - // Check if our window is front or not - if ( iWsSession.WindowGroupList( 0, wgList ) == KErrNone ) - { - ret = ( iWindowId == wgList->At(0) ); - } - else - { - ret = EFalse; - } - - delete wgList; - return ret; - } - -// ----------------------------------------------------------------------------- -// CBavpView::UpdateView -// Check animation running status, display the animated image if the video -// player is not playing -// ----------------------------------------------------------------------------- -void CBavpView::UpdateView() - { - Log( EFalse, _L("CBavpView::UpdateView") ); - - // Handle the bad content case, ie MMF reports an error that needs to - // be displayed to the user. (loss of network or bad content) - if ( iBavpController->State() == EBavpBadContent && !iIsBadContentAnimRunning ) - { - Log( EFalse, _L("CBavpView::UpdateView - Bad Content") ); - RunAnimation( iBadContentAnimation, iIsBadContentAnimRunning ); - } - // Handle the beffering content state - else if ( iBavpController->State() == EBavpBuffering && !iIsVideoBuffAnimRunning ) - { - Log( EFalse, _L("CBavpView::UpdateView - Buffering media") ); - RunAnimation( iVideoBuffAnimation, iIsVideoBuffAnimRunning ); - } - // Handle the video animations states - else if ( iBavpController->IsClipVideo() ) - { - Log( EFalse, _L("CBavpView::UpdateView - We got Video") ); - if ( iBavpController->State() == EBavpPlaying ) - { - Log( EFalse, _L("CBavpView::UpdateView - Video Playing, stop animation") ); - TBool flag( EFalse ); - RunAnimation( NULL, flag ); - } - else if ( iBavpController->State() == EBavpStopped && !iIsVideoStoppedAnimRunning ) - { - Log( EFalse, _L("CBavpView::UpdateView - Video Stopped") ); - RunAnimation( iVideoStoppedAnimation, iIsVideoStoppedAnimRunning ); - } - else if ( iBavpController->State() == EBavpPaused && !iIsVideoPausedAnimRunning ) - { - Log( EFalse, _L("CBavpView::UpdateView - Video Paused") ); - RunAnimation( iVideoPausedAnimation, iIsVideoPausedAnimRunning ); - } - } - // Handle the audio animations states - else - { - Log( EFalse, _L("CBavpView::UpdateView - We got Audio") ); - if ( iBavpController->State() == EBavpPlaying && !iIsAudioPlayAnimRunning ) - { - Log( EFalse, _L("CBavpView::UpdateView - Audio Playing") ); - RunAnimation( iAudioPlayAnimation, iIsAudioPlayAnimRunning ); - } - else if ( iBavpController->State() == EBavpStopped || - iBavpController->State() == EBavpPlayComplete && - !iIsAudioStoppedAnimRunning ) - { - Log( EFalse, _L("CBavpView::UpdateView - Audio Stopped") ); - RunAnimation( iAudioStoppedAnimation, iIsAudioStoppedAnimRunning ); - } - else if ( iBavpController->State() == EBavpPaused && !iIsAudioPausedAnimRunning ) - { - Log( EFalse, _L("CBavpView::UpdateView - Audio Paused") ); - RunAnimation( iAudioPausedAnimation, iIsAudioPausedAnimRunning ); - } - } - } - -// ----------------------------------------------------------------------------- -// CBavpView::FocusChanged -// This method is called once CCoeControl::SetFocus is called, could be when -// BavpPlugin::NotifyL causes SetFocus to be called -// ----------------------------------------------------------------------------- -void CBavpView::FocusChanged( TDrawNow /*aDrawNow*/ ) - { - iBavpController->BavpFocusChanged( IsFocused() ); - } - -// ----------------------------------------------------------------------------- -// CBavpView::Draw -// This method is called by CCoeControl::Draw -// ----------------------------------------------------------------------------- -void CBavpView::Draw( const TRect& aRect ) const - { - - if (iBavpController && !iBavpController->IsClipFullScreen()) { - if ( Window().DisplayMode() == EColor16MA ) - { - Log( EFalse, _L("BavpView::Draw() - DisplayMode=EColor16MA") ); - CWindowGc& gc = SystemGc(); - gc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha ); -#ifdef _DEBUG - gc.SetBrushColor(TRgb::Color16MA(0x0000ff00)); -#else - gc.SetBrushColor( TRgb::Color16MA(0) ); -#endif - gc.Clear( aRect ); - } - - if (iBavpController->IsClipLocalMedia() && iBavpController->IsClipSeekable()) { - if (iBavpController->State() == EBavpPlayComplete) { - TRAP_IGNORE(iBavpController->setPositionL(iBavpController->Duration())); - } - else if (iBavpController->State() == EBavpPaused) { - TRAP_IGNORE(iBavpController->setPositionL(iBavpController->getPositionL())); - } - } - } - - } - -// ----------------------------------------------------------------------------- -// CBavpView::ControllerStateChangedL -// Check animation running status and the display screen mode -// ----------------------------------------------------------------------------- -void CBavpView::ControllerStateChangedL() - { - Log( EFalse, _L("CBavpView::ControllerStateChangedL") ); - - // If not in full screen mode and if it is on the stack, then remove - // from the stack - if ( !iBavpController->IsClipFullScreen() && iIsOnStack ) - { - iIsOnStack = EFalse; - iEikonEnv->EikAppUi()->RemoveFromStack( this ); - } - else if ( iBavpController->IsClipFullScreen() && !iIsOnStack ) - { - // If full screen mode and not on stack, add to stack - iIsOnStack = ETrue; - iEikonEnv->EikAppUi()->AddToStackL( this ); - } - } - -// ----------------------------------------------------------------------------- -// CBavpView::InsertOneMenuItemL -// Insert one menu item -// ----------------------------------------------------------------------------- -void CBavpView::InsertOneMenuItemL( CEikMenuPane& aMenuPane, TInt aCommand, - TInt aResourceId, TInt index ) - { - Log( EFalse, _L("CBavpView::InsertOneMenuItemL") ); - - CEikMenuPaneItem::SData item; - HBufC* buf = StringLoader::LoadLC( aResourceId ); - item.iText.Copy( *buf ); - CleanupStack::PopAndDestroy(); // buf - buf = NULL; - - item.iCommandId = aCommand + iCommandBase; - item.iFlags = 0; - item.iCascadeId = 0; - aMenuPane.InsertMenuItemL( item, index ); - } - -// ----------------------------------------------------------------------------- -// CBavpView::RunAnimation -// Run the animation specified, and stop all the other animations -// If the animation and run flag are NULL, we stop all animations -// Check if animation is already running, if so don't stop, this causes flicker -// ----------------------------------------------------------------------------- -void CBavpView::RunAnimation( CAknBitmapAnimation* aAnimation, - TBool &aAnimRunning ) - { - Log( EFalse, _L("CBavpView::RunAnimation") ); - // Display the animation specified, after cancelling any - // other animations first. - // - // Stop the video buffering animation - if ( iIsVideoBuffAnimRunning && iVideoBuffAnimation != aAnimation ) - { - Log( EFalse, _L("CBavpView::RunAnimation - cancel VideoBuffAnimation") ); - iVideoBuffAnimation->CancelAnimation(); - iIsVideoBuffAnimRunning = EFalse; - } - else if ( iIsVideoStoppedAnimRunning && iVideoStoppedAnimation != aAnimation ) - { - // Stop the video stopped animation - Log( EFalse, _L("CBavpView::RunAnimation - cancel VideoStoppedAnimation") ); - iVideoStoppedAnimation->CancelAnimation(); - iIsVideoStoppedAnimRunning = EFalse; - } - else if ( iIsVideoPausedAnimRunning && iVideoPausedAnimation != aAnimation ) - { - // Stop the video paused animation - Log( EFalse, _L("CBavpView::RunAnimation - cancel VideoPausedAnimation") ); - iVideoPausedAnimation->CancelAnimation(); - iIsVideoPausedAnimRunning = EFalse; - } - else if ( iIsAudioPlayAnimRunning && iAudioPlayAnimation != aAnimation ) - { - // Stop the audio playing animation - Log( EFalse, _L("CBavpView::RunAnimation - cancel AudioPlayAnimation") ); - iAudioPlayAnimation->CancelAnimation(); - iIsAudioPlayAnimRunning = EFalse; - } - else if ( iIsAudioStoppedAnimRunning && iAudioStoppedAnimation != aAnimation ) - { - // Stop the audio stopped animation - Log( EFalse, _L("CBavpView::RunAnimation - cancel AudioStoppedAnimation") ); - iAudioStoppedAnimation->CancelAnimation(); - iIsAudioStoppedAnimRunning = EFalse; - } - else if ( iIsAudioPausedAnimRunning && iAudioPausedAnimation != aAnimation ) - { - // Stop the audio paused animation - Log( EFalse, _L("CBavpView::RunAnimation - cancel AudioPausedAnimation") ); - iAudioPausedAnimation->CancelAnimation(); - iIsAudioPausedAnimRunning = EFalse; - } - else if ( iIsBadContentAnimRunning && iBadContentAnimation != aAnimation ) - { - // Stop the bad content animation - Log( EFalse, _L("CBavpView::RunAnimation - cancel BadContentAnimation") ); - iBadContentAnimation->CancelAnimation(); - iIsBadContentAnimRunning = EFalse; - } - - // Now, start the animation specified, if it isn't already running. - // If the animation and run flag are NULL, we don't start any animations. - if ( aAnimation && !aAnimRunning ) - { - Log( EFalse, _L("CBavpView::RunAnimation - start new animation") ); - if ( aAnimation->Rect().Size() != iRect.Size() ) - { - TRect animRect( iWindowRect); - aAnimation->SetRect( animRect ); - } - TRAP_IGNORE - ( - aAnimation->StartAnimationL(); - aAnimRunning = ETrue; - ); - } - - } - - -void CBavpView::HandlePointerEventL(const TPointerEvent &aPointerEvent) - { - /* - * Plugin is sending all pointer events to the browser. - * Browser will process them to gesture and return back using - * event() function. (see PluginWin::HandleGesture(), BavpEvent() and - * CBavpPlugin::HandleGesture(). - * Browser expects event position to be in absolute co-ordinates, - * so we convert position of the pointer event here. - */ - TPoint point(aPointerEvent.iPosition + PositionRelativeToScreen()); - NPNetscapeFuncs* funcs = iBavPlugin->getNPNFuncs(); -#ifdef BRDO_MULTITOUCH_ENABLED_FF - if (aPointerEvent.IsAdvancedPointerEvent()) { - TAdvancedPointerEvent tadvp = *(static_cast(&aPointerEvent)); - tadvp.iPosition = point; - if(funcs && funcs->setvalue) { - (funcs->setvalue)(iBavPlugin->getNPP(), - (NPPVariable) NPPVPluginPointerEvent, - (void*) &(tadvp)); - } - - } - else { -#endif - TPointerEvent event(aPointerEvent); - event.iPosition = point; - if(funcs && funcs->setvalue) { - (funcs->setvalue)(iBavPlugin->getNPP(), - (NPPVariable) NPPVPluginPointerEvent, - (void*) &(event)); - } -#ifdef BRDO_MULTITOUCH_ENABLED_FF - } -#endif - - } - -// End of File