diff -r 5e1df1b52eb3 -r 72396548277c ui/viewutilities/effectplugin/src/glxeffectpluginresolver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/viewutilities/effectplugin/src/glxeffectpluginresolver.cpp Fri May 28 21:11:54 2010 +0530 @@ -0,0 +1,86 @@ +/* +* 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: ?Description +* +*/ + +#include + +#include "glxeffectpluginresolver.h" +#include "glxeffectpluginbase.h" +#include "glxfadeeffectplugin.h" +#include "glxflipeffectplugin.h" +#include "glxzoominoutplugin.h" + +GlxEffectPluginResolver::GlxEffectPluginResolver() +{ + mEffectPluginList.clear(); +} + +QString GlxEffectPluginResolver::effectName( int effectId ) +{ + switch ( effectId ) { + case FLIP_EFFECT : + return GlxFlipEffectPlugin::effectName(); + + case SMOOTH_FADE : + return GlxFadeEffectPlugin::effectName() ; + + case ZOOM_TO_FACE : + return GlxZoomInOutEffectPlugin::effectName(); //To:Do temp remove once plugin is ready + + default : + return GlxFadeEffectPlugin::effectName() ; + } +} + +GlxEffectPluginBase *GlxEffectPluginResolver::effectPlugin( int effectId ) +{ + GlxEffectPluginBase * effectPlugin = mEffectPluginList.value( ( GlxEffect )effectId ); + if ( effectPlugin ) { + return effectPlugin ; + } + + switch ( effectId ) { + case FLIP_EFFECT : + effectPlugin = new GlxFlipEffectPlugin(); + mEffectPluginList[ FLIP_EFFECT ] = effectPlugin ; + break ; + + case ZOOM_TO_FACE : + effectPlugin = new GlxZoomInOutEffectPlugin() ; + mEffectPluginList[ ZOOM_TO_FACE ] = effectPlugin ; + break ; + + case SMOOTH_FADE : + default : + effectPlugin = mEffectPluginList.value( SMOOTH_FADE ); + if ( effectPlugin == NULL ) { + effectPlugin = new GlxFadeEffectPlugin(); + mEffectPluginList[ SMOOTH_FADE ] = effectPlugin ; + } + break ; + } + + return effectPlugin ; +} + +GlxEffectPluginResolver::~GlxEffectPluginResolver() +{ + foreach( GlxEffectPluginBase *list, mEffectPluginList) { + delete list; + list = NULL; + } + mEffectPluginList.clear(); +}