diff -r ebe688cedc25 -r 7fdbb852d323 messagingappbase/smilengine/transition/src/Smiltransitionfactory.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/smilengine/transition/src/Smiltransitionfactory.cpp Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,337 @@ +/* +* Copyright (c) 2003-2006 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: Smiltransitionfactory implementation +* +*/ + + + +// INCLUDES +#include "smiltransitionfactory.h" + +#include +#include +#include + +#include "slidewipetransitionfilter.h" +#include "pushwipetransitionfilter.h" +#include "fadetransitionfilter.h" +#include "barwipetransitionfilter.h" +#include "clockwipetransitionfilter.h" +#include "iriswipetransitionfilter.h" +#include "matrixwipetransitionfilter.h" + +#include "smiltransitioncommondefs.h" + +// EXTERNAL DATA STRUCTURES + +// EXTERNAL FUNCTION PROTOTYPES + +// CONSTANTS + +// MACROS + +// LOCAL CONSTANTS AND MACROS + +// MODULE DATA STRUCTURES + +// LOCAL FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +// ============================= LOCAL FUNCTIONS =============================== + +// ============================ MEMBER FUNCTIONS =============================== + + +// ----------------------------------------------------------------------------- +// CSmilTransitionFactory::CSmilTransitionFactory +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +EXPORT_C CSmilTransitionFactory::CSmilTransitionFactory( CFbsBitmap* aBuffer ) + { + iBuf = aBuffer; + } + +// ----------------------------------------------------------------------------- +// CSmilTransitionFactory::~CSmilTransitionFactory +// Destructor. +// ----------------------------------------------------------------------------- +// +CSmilTransitionFactory::~CSmilTransitionFactory() + { + } + +// ----------------------------------------------------------------------------- +// CSmilTransitionFactory::CreateFilterL +// Create correct filter, can leave. +// ----------------------------------------------------------------------------- +// +CSmilTransitionFilter* CSmilTransitionFactory::CreateFilterL( CSmilTransition* aTransition, + MSmilMedia* aMedia) + { + if ( aTransition && iBuf ) + { + if ( aTransition->Type() == KFade ) + { + // create a FadeTransitionFilter + return CFadeTransitionFilter::NewL( aTransition, iBuf, aMedia ); + } + else if ( aTransition->Type() == KSlideWipe ) + { + // create a SlideWipeTransitionFilter + return CSlideWipeTransitionFilter::NewL( aTransition, iBuf, aMedia ); + } + else if ( aTransition->Type() == KPushWipe ) + { + // create a PushWipeTransitionFilter + return CPushWipeTransitionFilter::NewL( aTransition, iBuf, aMedia ); + } + else if ( aTransition->Type() == KBarWipe ) + { + // create BarWipeTransitionFilter + return CBarWipeTransitionFilter::NewL( aTransition, iBuf, aMedia ); + } + else if ( aTransition->Type() == KClockWipe ) + { + // create ClockWipeTransitionFilter + return CClockWipeTransitionFilter::NewL( aTransition, iBuf, aMedia ); + } + else if ( aTransition->Type()==KIrisWipe || + aTransition->Type()==KTriangleWipe || + aTransition->Type()==KArrowHeadWipe || + aTransition->Type()==KEllipseWipe || + aTransition->Type()==KMiscShapeWipe || + aTransition->Type()==KStarWipe || + aTransition->Type()==KEyeWipe || + aTransition->Type()==KHexagonWipe || + aTransition->Type()==KRoundRectWipe || + aTransition->Type()==KPentagonWipe ) + { + return CIrisWipeTransitionFilter::NewL( aTransition, iBuf, aMedia ); + } + else if ( aTransition->Type() == KSnakeWipe || + aTransition->Type() == KSpiralWipe) + { + return CMatrixWipeTransitionFilter::NewL( aTransition, iBuf, aMedia ); + } + } + + return NULL; + } + +// ----------------------------------------------------------------------------- +// CSmilTransitionFactory::IsSupportedType +// Check if transition is supported, returns ETrue if so. +// ----------------------------------------------------------------------------- +// +TBool CSmilTransitionFactory::IsSupportedType( const TDesC& aTransitionName ) const + { + if ( aTransitionName == KFade || + aTransitionName == KSlideWipe || + aTransitionName == KPushWipe || + aTransitionName == KBarWipe || + aTransitionName == KIrisWipe || + aTransitionName == KTriangleWipe || + aTransitionName == KArrowHeadWipe || + aTransitionName == KPentagonWipe || + aTransitionName == KEllipseWipe || + aTransitionName == KMiscShapeWipe || + aTransitionName == KStarWipe || + aTransitionName == KEyeWipe || + aTransitionName == KRoundRectWipe || + aTransitionName == KHexagonWipe || + aTransitionName == KSnakeWipe || + aTransitionName == KSpiralWipe || + aTransitionName == KClockWipe ) + { + return ETrue; + } + + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CSmilTransitionFactory::IsSupportedType +// Check if transition subtype is supported, returns ETrue if so. +// ----------------------------------------------------------------------------- +// +TBool CSmilTransitionFactory::IsSupportedSubtype( const TDesC& aTransitionName, + const TDesC& aSubtypeName ) const + { + if ( aTransitionName == KFade ) + { + if ( aSubtypeName == KFadeToColor || + aSubtypeName == KFadeFromColor || + aSubtypeName == KCrossfade ) + { + return ETrue; + } + } + else if ( aTransitionName == KSlideWipe ) + { + if ( aSubtypeName == KFromRight || + aSubtypeName == KFromLeft || + aSubtypeName == KFromTop || + aSubtypeName == KFromBottom ) + { + return ETrue; + } + } + else if ( aTransitionName == KPushWipe ) + { + if ( aSubtypeName == KFromRight || + aSubtypeName == KFromLeft || + aSubtypeName == KFromTop || + aSubtypeName==KFromBottom ) + { + return ETrue; + } + } + else if ( aTransitionName == KBarWipe ) + { + if( aSubtypeName == KTopToBottom || + aSubtypeName == KLeftToRight ) + { + return ETrue; + } + } + else if ( aTransitionName == KIrisWipe ) + { + if ( aSubtypeName == KDiamond || + aSubtypeName == KRectangle ) + { + return ETrue; + } + } + else if ( aTransitionName == KTriangleWipe ) + { + if ( aSubtypeName == KRight || + aSubtypeName == KDown || + aSubtypeName == KLeft || + aSubtypeName == KUp ) + { + return ETrue; + } + } + else if ( aTransitionName == KArrowHeadWipe ) + { + if ( aSubtypeName == KRight || + aSubtypeName == KDown || + aSubtypeName == KLeft || + aSubtypeName == KUp ) + { + return ETrue; + } + } + else if ( aTransitionName == KPentagonWipe ) + { + if ( aSubtypeName == KUp || + aSubtypeName == KDown ) + { + return ETrue; + } + } + else if ( aTransitionName == KHexagonWipe ) + { + if ( aSubtypeName == KVertical || + aSubtypeName == KHorizontal ) + { + return ETrue; + } + } + else if ( aTransitionName == KEllipseWipe ) + { + if ( aSubtypeName == KVertical || + aSubtypeName == KHorizontal || + aSubtypeName == KCircle ) + { + return ETrue; + } + } + else if ( aTransitionName == KEyeWipe ) + { + if ( aSubtypeName == KVertical || + aSubtypeName == KHorizontal ) + { + return ETrue; + } + } + else if ( aTransitionName == KRoundRectWipe ) + { + if ( aSubtypeName == KVertical || + aSubtypeName == KHorizontal ) + { + return ETrue; + } + } + else if ( aTransitionName == KStarWipe ) + { + if ( aSubtypeName == KFivePoint || + aSubtypeName == KSixPoint || + aSubtypeName == KFourPoint ) + { + return ETrue; + } + } + else if ( aTransitionName == KMiscShapeWipe ) + { + if ( aSubtypeName == KKeyhole || + aSubtypeName == KHeart ) + { + return ETrue; + } + } + else if ( aTransitionName == KSpiralWipe ) + { + if ( aSubtypeName == KTopRightClockwise || + aSubtypeName == KBottomRightClockwise || + aSubtypeName == KBottomLeftClockwise || + aSubtypeName == KTopLeftCounterClockwise || + aSubtypeName == KTopRightCounterClockwise || + aSubtypeName == KBottomLeftCounterClockwise || + aSubtypeName == KBottomRightCounterClockwise || + aSubtypeName == KTopLeftClockwise ) + { + return ETrue; + } + } + else if ( aTransitionName == KSnakeWipe ) + { + if ( aSubtypeName == KTopLeftVertical || + aSubtypeName == KTopLeftDiagonal || + aSubtypeName == KTopRightDiagonal || + aSubtypeName == KBottomLeftDiagonal || + aSubtypeName ==KBottomRightDiagonal || + aSubtypeName == KTopLeftHorizontal ) + { + return ETrue; + } + } + else if ( aTransitionName == KClockWipe ) + { + if ( aSubtypeName == KClockwiseThree || + aSubtypeName == KClockwiseSix || + aSubtypeName == KClockwiseNine ) + { + return ETrue; + } + } + + return EFalse; + } + +// End of file