diff -r 73a1feb507fb -r bc78a40cd63c mmsharing/livecommsui/lcui/src/lceffecthandler.cpp --- a/mmsharing/livecommsui/lcui/src/lceffecthandler.cpp Tue Aug 31 15:12:07 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,379 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "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: -* -*/ - -//USER -#include "lceffecthandler.h" -#include "lclogger.h" -#include "lcuidefs.h" -#include "lcuiengine.h" - -//SYSTEM -#include -#include - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -LcEffectHandler::LcEffectHandler(LcUiEngine& engine, - HbWidget* sharedVideo, - HbWidget* sharedVideoOverlay, - HbWidget* receivedVideo, - HbWidget* receivedVideoOverlay) : - mEngine(engine), - mSharedVideo(sharedVideo), - mSharedVideoOverlay(sharedVideoOverlay), - mReceivedVideo(receivedVideo), - mReceivedVideoOverlay(receivedVideoOverlay), - mSwapSharedCompleted(false), - mSwapReceivedCompleted(false), - mSwapInProgress(false) -{ - HbEffect::add(lcEffectWinId, lcEffectWinDisappear, lcEffectWinDisappearId ); - HbEffect::add(lcEffectWinId, lcEffectWinAppear, lcEffectWinAppearId ); - HbEffect::add(lcEffectWinId, lcEffectWinFlip, lcEffectWinFlipId ); - HbEffect::add(lcEffectWinId, lcEffectWinSwapDown, lcEffectWinSwapDownId ); - HbEffect::add(lcEffectWinId, lcEffectWinSwapUp, lcEffectWinSwapUpId ); - - mEffectCallBack = lcEffectWinDefaultCallback; -} - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -LcEffectHandler::~LcEffectHandler() -{ -} - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::setVisibility(HbWidget* widget, bool visible) -{ - if ( !HbEffect::effectRunning( widget )) { - widget->setVisible( visible ); - } -} - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::setDissappearEffect( - LcEffectHandler::DissapperEffect aEffectType ) -{ - if ( aEffectType == LcEffectHandler::DissappearToFlip ) { - mEffectCallBack = "windowDisappearToFlipComplete"; - } else if ( aEffectType == LcEffectHandler::NormalDissappear ) { - mEffectCallBack = "windowDisappearComplete"; - } else { - mEffectCallBack = lcEffectWinDefaultCallback; - } -} -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::showSendWindow() -{ - LC_QDEBUG( "livecomms [UI] -> LcEffectHandler::showSendWindow()" ) - if ( mSharedVideo ) { - if ( mSwapSharedCompleted || !HbEffect::effectRunning( mSharedVideoOverlay )) { - startEffect( mSharedVideoOverlay, - lcEffectWinAppearId, "windowAppearComplete" ); - - mSharedVideo->show(); - } else { - LC_QDEBUG( "livecomms [UI] LcEffectHandler: postponed due ongoing animation" ) - } - } - LC_QDEBUG( "livecomms [UI] <- LcEffectHandler::showSendWindow()" ) -} - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::showReceiveWindow() -{ - LC_QDEBUG( "livecomms [UI] -> LcEffectHandler::showReceiveWindow()" ) - if ( mReceivedVideo ) { - if ( mSwapReceivedCompleted || !HbEffect::effectRunning( mReceivedVideoOverlay )) { - startEffect( mReceivedVideoOverlay, - lcEffectWinAppearId, "windowAppearComplete" ); - mReceivedVideo->show(); - } else { - LC_QDEBUG( "livecomms [UI] LcEffectHandler: postponed due ongoing animation" ) - } - } - LC_QDEBUG( "livecomms [UI] <- LcEffectHandler::showReceiveWindow()" ) - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::hideSendWindow() -{ - LC_QDEBUG( "livecomms [UI] -> LcEffectHandler::hideSendWindow()" ) - if ( mSharedVideo && mSharedVideo->isVisible() ) { - startEffect( mSharedVideoOverlay, - lcEffectWinDisappearId, mEffectCallBack.toAscii().data() ); - mSharedVideo->hide(); - } - - mEffectCallBack = lcEffectWinDefaultCallback; - LC_QDEBUG( "livecomms [UI] <- LcEffectHandlerLcEffectHandler::hideSendWindow()" ) -} - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::hideReceiveWindow() -{ - LC_QDEBUG( "livecomms [UI] -> LcEffectHandler::hideReceiveWindow()" ) - if ( mReceivedVideo && mReceivedVideo->isVisible() ) { - startEffect( mReceivedVideoOverlay, - lcEffectWinDisappearId, "windowDisappearComplete" ); - mReceivedVideo->hide(); - } - - LC_QDEBUG( "livecomms [UI] <- LcEffectHandler::hideReceiveWindow()" ) -} - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::swap() -{ - LC_QDEBUG( "livecomms [UI] -> LcEffectHandler::swap()" ) - - // Emit the signal which triggers to loading of new swapped section - mSwapInProgress = true; - emit loadSwapLayout(); - - startEffects(); - - LC_QDEBUG( "livecomms [UI] <- LcEffectHandler::swap()" ) -} - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::startEffects() -{ - if( mSharedVideo && mReceivedVideo ) { - - mSwapSharedCompleted = false; - mSwapReceivedCompleted = false; - - startEffect( mSharedVideoOverlay, lcEffectWinDisappearId, "windowSwapSharedComplete" ); - startEffect( mReceivedVideoOverlay, lcEffectWinDisappearId, "windowSwapReceivedComplete" ); - - mSharedVideo->hide(); - mReceivedVideo->hide(); - } - -} - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::startEffect( - HbWidget* widget, const char *effectId, const char *callBack ) -{ - LC_QDEBUG( "livecomms [UI] -> LcEffectHandler::startEffect()" ) - if( widget ) { - widget->setOpacity(1.0); // Previous effect might have set opacity to zero - widget->show(); - LC_QDEBUG_2( "livecomms [UI] window: ", widget->geometry() ) - LC_QDEBUG_2( "livecomms [UI] effect name: ", QString(effectId) ) - HbEffect::start( widget, lcEffectWinId, effectId, this, callBack ); - } - LC_QDEBUG( "livecomms [UI] <- LcEffectHandler::startEffect()" ) -} - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::windowAppearComplete(HbEffect::EffectStatus status) -{ - Q_UNUSED(status); - LC_QDEBUG( "livecomms [UI] -> LcEffectHandler::windowAppearComplete()" ) - - if ( status.item && status.item == mSharedVideoOverlay && - !HbEffect::effectRunning( mSharedVideoOverlay ) ) { - mSharedVideoOverlay->hide(); - - } - if ( status.item && status.item == mReceivedVideoOverlay && - !HbEffect::effectRunning( mReceivedVideoOverlay ) ) { - mReceivedVideoOverlay->hide(); - - } - - LC_QDEBUG( "livecomms [UI] <- LcEffectHandler::windowAppearComplete()" ) -} - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::windowDisappearComplete(HbEffect::EffectStatus status) -{ - Q_UNUSED(status); - LC_QDEBUG( "livecomms [UI] -> LcEffectHandler::windowDisappearComplete()" ) - LC_QDEBUG( "livecomms [UI] <- LcEffectHandler::windowDisappearComplete()" ) -} - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::windowDisappearToFlipComplete(HbEffect::EffectStatus status) -{ - Q_UNUSED(status); - LC_QDEBUG( "livecomms [UI] -> LcEffectHandler::windowDisappearToFlipComplete()" ) - if( mSharedVideo ) { - mSharedVideo->hide(); - startEffect( mSharedVideoOverlay, lcEffectWinFlipId, "windowFlipComplete" ); - } - LC_QDEBUG( "livecomms [UI] <- LcEffectHandler::windowDisappearToFlipComplete()" ) -} - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::windowFlipComplete(HbEffect::EffectStatus status) -{ - Q_UNUSED(status); - LC_QDEBUG( "livecomms [UI] -> LcEffectHandler::flipHideComplete()" ) - if( mEngine.isLocalPlayerPlaying() ) { - showSendWindow(); - } - LC_QDEBUG( "livecomms [UI] <- LcEffectHandler::flipHideComplete()" ) -} - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::windowSwapSharedComplete(HbEffect::EffectStatus status) -{ - Q_UNUSED(status); - LC_QDEBUG( "livecomms [UI] -> LcEffectHandler::windowSwapSharedComplete()" ) - if( mSharedVideo ) { - LC_QDEBUG_2( "livecomms [UI] window: ", mSharedVideo->geometry() ) - LC_QDEBUG_2( "livecomms [UI] effect window: ", mSharedVideoOverlay->geometry() ) - - mSwapSharedCompleted = true; - - handleSwapCompletion(); - } - LC_QDEBUG( "livecomms [UI] <- LcEffectHandler::windowSwapSharedComplete()" ) -} - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::windowSwapReceivedComplete(HbEffect::EffectStatus status) -{ - Q_UNUSED(status); - LC_QDEBUG( "livecomms [UI] -> LcEffectHandler::windowSwapReceivedComplete()" ) - if( mReceivedVideo ) { - LC_QDEBUG_2( "livecomms [UI] window: ", mReceivedVideo->geometry() ) - LC_QDEBUG_2( "livecomms [UI] effect window: ", mReceivedVideoOverlay->geometry() ) - - mSwapReceivedCompleted = true; - - handleSwapCompletion(); - } - LC_QDEBUG( "livecomms [UI] <- LcEffectHandler::windowSwapReceivedComplete()" ) -} - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -bool LcEffectHandler::isSharedVideoAtTop() const -{ - return ( mSharedVideo && mReceivedVideo && - mSharedVideo->geometry().top() < mReceivedVideo->geometry().top()); -} - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -bool LcEffectHandler::videosSideBySide() const -{ - return ( mSharedVideo && mReceivedVideo && - mSharedVideo->geometry().top() == mReceivedVideo->geometry().top() ); -} - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void LcEffectHandler::handleSwapCompletion() -{ - LC_QDEBUG( "livecomms [UI] -> LcEffectHandler::handleSwapCompletion()" ) - if ( mSwapSharedCompleted && mSwapReceivedCompleted ){ - LC_QDEBUG( "livecomms [UI] Both swaps done, complete" ) - - emit swapCompleted(); - - if( mEngine.isLocalPlayerPlaying() ) { - showSendWindow(); - } - if( mEngine.isRemotePlayerPlaying() ) { - showReceiveWindow(); - } - - mSwapInProgress = false; - } - LC_QDEBUG( "livecomms [UI] <- LcEffectHandler::handleSwapCompletion()" ) -} - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -bool LcEffectHandler::isSwapInProgress() -{ - return mSwapInProgress; -} - - -// End of file -