svgtopt/SVGTPlugin/src/Svgtplugin.cpp
branchRCL_3
changeset 38 db5c883ad1c5
parent 22 9be6eed35a80
child 39 1902ade171ab
--- a/svgtopt/SVGTPlugin/src/Svgtplugin.cpp	Tue May 11 17:02:26 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,740 +0,0 @@
-/*
-* Copyright (c) 2003 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:  SVGT Plugin Implementation source file
- *
-*/
-
-
-
-#include <e32std.h>
-#include <eikenv.h>
-#include <barsread.h>
-#include <fbs.h>
-#include <gdi.h>
-#include <f32file.h>
-
-#include <featmgr.h>
-
-#include <eikappui.h>
-
-#include <SVGEngineInterfaceImpl.h>
-
-#include "Svgtplugin.h"
-
-#include "VolumeKeyListener.h"
-#include "RepositoryVolumeListener.h"
-
-_LIT(KWidth, "width");
-_LIT(KHeight, "height");
-
-CSvgtPlugin* CSvgtPlugin::NewL(NPP anInstance)
-	{
-    CSvgtPlugin *self = new (ELeave) CSvgtPlugin;
-	CleanupStack::PushL( self );
-	self->ConstructL(anInstance);
-
-	CleanupStack::Pop();
-	return self;
-	}
-
-
-CSvgtPlugin::~CSvgtPlugin()
-	{
-	if ( iControl )
-		{
-    	delete iControl;
-    	iControl=NULL;
-    	}
-
-	if ( iSvgModule )
-		{
-		iSvgModule->Stop();
-		delete iSvgModule;
-		iSvgModule = NULL;
-		}
-
-	if ( iRenderBuffer )
-		{
-		delete iRenderBuffer;
-		iRenderBuffer = NULL;
-		}
-	
- 	iImageUrlInfoList.ResetAndDestroy();        
-	iImageUrlInfoList.Close();
-
-	if(iKeyListener)
-	    {
-	    delete iKeyListener;
-	    iKeyListener = NULL;
-	    }
-
-	if(iRepositoryListener)
-	    {
-	    delete iRepositoryListener;
-	    iRepositoryListener = NULL;
-	    }
-	}
-
-void CSvgtPlugin::PrepareToExitL()
-	{
-	if (iPluginAdapter)
-		iPluginAdapter->PluginFinishedL();
-	}
-
-void CSvgtPlugin::ConstructL(NPP anInstance)
-	{
-  	iInstance=anInstance;
-  	iRenderBuffer = new ( ELeave ) CFbsBitmap();
-	
-	iObjectWidth = 0;
-	iObjectHeight = 0;
-	// By default obj height is not in percentage
-	iObjHeightInPercentage = EFalse; 
-	// By default obj width is not in percentage
-	iObjWidthInPercentage = EFalse; 
-	iExpectedDefaultSize = EFalse;
-	
-	//While parsing are object width height are specified or not
-	iObjectWidthSpecified = EFalse;
-	iObjectHeightSpecified = EFalse;
-	TFontSpec lFontSpec;
-	iSvgModule = CSvgEngineInterfaceImpl::NewL( iRenderBuffer, this, lFontSpec );
-
-  	// Clear background white
-	iSvgModule->SetBackgroundColor(0xffffffff);
-    iSvgModule->AddHyperlinkListener( this );
-    iAdjusted = EFalse;
-
-    if (FeatureManager::FeatureSupported(KFeatureIdSideVolumeKeys))
-        {
-        User::InfoPrint(_L("Volume Key supported"));
-        iKeyListener = CVolumeKeyListener::NewL(this);
-   	    }
-   	else
-   	    {
-   	    User::InfoPrint(_L("Key not supported"));
-   	    iRepositoryListener = CRepositoryVolumeListener::NewL(this);
-   	    }
-	}
-
-void CSvgtPlugin::SetWindowL(const NPWindow *aWindow,const TRect& aRect)
-    {
-    iCurrentWindow.x = aWindow->x;
-    iCurrentWindow.y = aWindow->y;
-    iCurrentWindow.window = aWindow->window;
-    iCurrentWindow.clipRect = aWindow->clipRect;
-    iCurrentWindow.type = aWindow->type;
-    iCurrentWindow.width = aWindow->width;
-    iCurrentWindow.height = aWindow->height;
-
-    iPluginAdapter = static_cast<MPluginAdapter*>(aWindow->window);
-    iParentControl = iPluginAdapter->GetParentControl();
-    if (iControl == NULL)
-        {
-        iControl = new (ELeave) CSvgtPluginControl;
-        iControl->ConstructL(this,iParentControl);
-        iPluginAdapter->PluginConstructedL(iControl);
-        iPluginAdapter->SetPluginNotifier(iControl);
-        }
-
-	if ( !iControl || !iSvgModule || aRect.Width() <= 0 || aRect.Height() <= 0 )
-    	{
-		  return;
-		  }
-	iSetWindowCalled = ETrue;
-	
-	    iControl->SetRect(aRect);
-	
-	if ( iRenderWidth != aRect.Width() ||
-	     iRenderHeight != aRect.Height() )
-		{
-		iRenderWidth = aRect.Width();
-		iRenderHeight = aRect.Height();
-		
-		// Browser initially sends width/height as zero 
-		// if width/height are not specified
-		// Later if svg is available to us we call resize after adjustDimention
-		// But if we dont do adjustDimention quick enough
-		// Browser sends default width/Height as 300x150
-		
-		// To Ensure that we are setting the object width/height and 
-		// browser is not setting default width/height ahead of us doing resize
-		
-		// In adjustDimention if width/height are specified at the browser level
-		// iAdjusted is set to false, the second condition is to ensure that
-		// if the browser does a resize at a later point it should be allowed
-		if(iAdjusted || (iObjectWidthSpecified && iObjectHeightSpecified))
-		    {
-		    iObjectWidth  = iRenderWidth;
-            iObjectHeight = iRenderHeight;
-		    }
-		iSvgModule->Pause(); //fix for CGSR-7CN7T7
-		
-		User::LeaveIfError( iRenderBuffer->Create(
-							TSize( iRenderWidth, iRenderHeight ), EColor64K ) );
-		iSvgModule->SetFrameBuffer( iRenderBuffer );
-		iSvgModule->Resume(); // fix for CGSR-7CN7T7
-		}
-
-
-		if ( iExpectedDefaultSize )
-			{
-			iExpectedDefaultSize = EFalse;
-            AdjustDimention(ETrue,ETrue);
-			}
-
-    	if(iControlSize != aRect.Size())
-    		{
-            iRenderWidth = aRect.Width();
-            iRenderHeight = aRect.Height();
-	    	CFbsBitmap * lTempRenderBuffer = new (ELeave) CFbsBitmap();
-            CleanupStack::PushL(lTempRenderBuffer);
-            User::LeaveIfError( lTempRenderBuffer->Create( TSize(iRenderWidth,iRenderHeight), EColor64K ));
-			iSvgModule->SetFrameBuffer(lTempRenderBuffer);
-
-			delete	iRenderBuffer;
-			iRenderBuffer = lTempRenderBuffer;
-			CleanupStack::Pop(lTempRenderBuffer);
-			lTempRenderBuffer = NULL;
-			iControlSize = aRect.Size();
-			iControl->iContentDimension = iSvgModule->ContentDimensions();
-			}
-        // For autoloading feature.
-            if ( iControl->IsAsFileCalled() && iControl->GetFilename().Length() > 0 &&
-                 !iStartCalled )
-            {
-
-                    TBool widthInPercentage;
-                    TBool heightInPercentage;
-                    
-	                iControl->iContentDimension = iSvgModule->ContentDimensionsInPercentage();
-	                if(iControl->iContentDimension.iWidth == -1 )
-	                {
-	                    widthInPercentage = EFalse;
-	                    if(iSvgModule->SvgDocument())
-	                    {
-	                        iControl->iContentDimension.iWidth = iSvgModule->GetViewportWidth(iSvgModule->SvgDocument());    
-	                    }
-	                    else
-	                    {
-	                        return;
-	                    }
-	                    
-	                }
-	                else 
-                    {
-	                    widthInPercentage = ETrue;
-                    }
-                    
-                    if(iControl->iContentDimension.iHeight == -1)
-                    {
-                        heightInPercentage = EFalse;
-                        if(iSvgModule->SvgDocument())
-	                    {
-	                        iControl->iContentDimension.iHeight = iSvgModule->GetViewportHeight(iSvgModule->SvgDocument());
-	                    }
-	                    else
-	                    {
-	                        return;
-	                    }
-                    }
-                    else
-                    {
-                        heightInPercentage = ETrue;
-                    }
-                    // After loading the content, the width & height will be visible to plugin.
-                    // It is time to adjust the size if needed.
-                    if ( AdjustDimention(widthInPercentage,heightInPercentage) )
-                        {
-                        // dimention change is needed so return and notify Browser.
-                        return;
-                        }
-                    iSvgModule->Start();
-                    		iStartCalled = ETrue;
-            } 
-           
-	}
-
-
-CSvgtPluginControl* CSvgtPlugin::Control()
-    {
-    return iControl;
-    }
-
-NPP CSvgtPlugin::Instance()
-    {
-    return iInstance;
-    }
-
-void  CSvgtPlugin::GetSizeOfRenderBuffer(TSize& aSize)
-	{
-	if ( iRenderBuffer )
-		{
-		aSize = iRenderBuffer->SizeInPixels();
-		}
-	else
-		{
-		aSize = TSize ( 0, 0 );
-		}
-	}
-
-
-
-/**********************************************************************/
-//					implements MSvgRequestObserver
-/**********************************************************************/
-
-void CSvgtPlugin::UpdateScreen()
-	{
-	iControl->DrawNow();
-	}
-
-
-TBool CSvgtPlugin::ScriptCall( const TDesC& /*aScript*/,
-                                  CSvgElementImpl* /*aCallerElement*/ )
-	{
-    return EFalse;
-	}
-
-TBool CSvgtPlugin::LinkEntered( const TDesC& /* aUri */ )
-{
-    // update mouse pointer here
-    return ETrue;
-}
-
-TBool CSvgtPlugin::LinkExited( const TDesC& /* aUri */ )
-{
-    // update mouse pointer here
-    return ETrue;
-}
-TBool CSvgtPlugin::LinkActivated( const TDesC& aUrl )
-	{
-	CSvgtPluginEcomMain* lSvgtPluginEcomMain = (CSvgtPluginEcomMain*) Dll :: Tls ();
-	NPNetscapeFuncs* lNetscapeFuncs = lSvgtPluginEcomMain->Funcs();
-	if(lNetscapeFuncs)
-		{
-        TPtrC lTarget('\0',0);
-        lTarget.Set(_L("_parent"));
-        lNetscapeFuncs->geturl(iInstance,aUrl,&lTarget);
-   		}
-	return ETrue;
-	}
-
-void CSvgtPlugin::VolumeChanged(TInt aNewValue)
-    {
-   	RDebug::Print(_L("Volume level: %d"), aNewValue);    
-    aNewValue *= 10; //to make the volume in percentage
-    iSvgModule->SetAudioVolume( aNewValue );
-    }
-    
-TInt CSvgtPlugin::FetchImage(const TDesC&  aUri,  RFs& /*aSession*/, RFile& /*aFileHandle*/ )
-{
-    TRAPD(err,FetchImageL(aUri));
-    
-    return err;
-    
-}
-    
-void CSvgtPlugin::FetchImageL(const TDesC&  aUri)    
-    {
-        TInt    lCount     = iImageUrlInfoList.Count();
-        HBufC*  lListItem  = NULL;
-        HBufC*  lUrl       = NULL;
-                  
-        //checks whether the request is already made for same Uri.        
-        for(TInt i = 0; i < lCount; i++)
-        {
-            lListItem = HBufC::NewLC(iImageUrlInfoList[i]->Length());
-            lUrl      = aUri.AllocLC();
-                 
-            *lListItem = *iImageUrlInfoList[i];
-            
-            // Convert the List Item to Lower case
-            TPtr lListItemPtr = lListItem->Des();
-            lListItemPtr.LowerCase();
-            
-            // Convert the Url to Lower case
-            TPtr lUrlPtr = lUrl->Des();
-            lUrlPtr.LowerCase();
-            
-            if( lListItemPtr.Compare(lUrlPtr) == 0 )       	
-            {
-                CleanupStack::PopAndDestroy(2);
-                
-                lListItem = NULL;
-                lUrl      = NULL;
-               	// Same Url is already requested in the past, no need to continue.
-              	User::Leave(KErrAlreadyExists); // Indicates the download is pending
-            }
-            
-            CleanupStack::PopAndDestroy(2);
-            
-            lListItem = NULL;
-            lUrl      = NULL;
-        }
-        
-         
-        // --------------------------------------
-		// Request file from browser
-		// --------------------------------------
-		CSvgtPluginEcomMain* lSvgtPluginEcomMain = (CSvgtPluginEcomMain*) Dll :: Tls ();
-		NPNetscapeFuncs* lNetscapeFuncs = lSvgtPluginEcomMain->Funcs();
-		if(lNetscapeFuncs)
-		{
-			TPtrC lTarget('\0',0);
-			
-			lUrl = aUri.AllocL();
-			
-			// Current count is used as a context data.
-			void* contextptr = (void*)(lCount);   
-			NPError error = lNetscapeFuncs->geturlnotify(iInstance,aUri,NULL,contextptr);		
-			    
-			// Add the Url and RequestID to the List
-			iImageUrlInfoList.Append(lUrl);
-			    
-			if ( error != 0 )
-    		{
-                #ifdef _DEBUG
-                		lNetscapeFuncs->status(iInstance,_L("Image failed"));
-                #endif
-                
-                User::LeaveIfError(error);
-    		}
-			#ifdef _DEBUG
-            lNetscapeFuncs->status(iInstance,_L("Downloading Image"));
-            #endif
-		}
-	
-        
-        
-        User::Leave(KRequestPending); // Indicate the download is pending
-    }
-
-TInt CSvgtPlugin::FetchFont( const TDesC& /* aUri */,  RFs& /* aSession */, RFile&  /* aFileHandle */)
-    {
-	// Fix for ANAE-775B7E. There is a limitaiton. For rendering text with 
-	// external font synchronous fetching of the file is needed. But the 
-	// external font file is fetched asynchronously by browser when we say 
-	// geturlnotify(). There is no API to pass the font data after fetching
-	// asynchronously. Hence the code here is removed by returning an error.
-	return KErrNotFound;
-    }
-
-
-TBool CSvgtPlugin::LinkActivatedWithShow(const TDesC& aUri,const TDesC& /*aShow*/)
-	{
-	CSvgtPluginEcomMain* lSvgtPluginEcomMain = (CSvgtPluginEcomMain*) Dll :: Tls ();
-	NPNetscapeFuncs* lNetscapeFuncs = lSvgtPluginEcomMain->Funcs();
-	if(lNetscapeFuncs)
-		{
-        TPtrC lTarget('\0',0);
-        lTarget.Set(_L("_parent"));
-		lNetscapeFuncs->geturl(iInstance,aUri,&lTarget);
-		}
-	return ETrue;
-	}
-
-void CSvgtPlugin::GetSmilFitValue(TDes16 &aSmilValue)
-    {
-    aSmilValue.Copy(_L("meet"));
-    }
-
-void CSvgtPlugin::UpdatePresentation(const TInt32&  aNoOfAnimation)
-	{
- 	if (iTotalNumerOfAnimation < 0)
-  		{
- 		if (aNoOfAnimation != 0)
-			{
-			iStaticContent = EFalse;
-			iTotalNumerOfAnimation = aNoOfAnimation;
-			}
-		else
-			{
-			iStaticContent = ETrue;
-			}
-		}
- 	else
-		{
-		iTotalNumerOfAnimation--;
-		}
-	}
-
-void CSvgtPlugin::GetViewPort(TInt /*getWidth*/, TInt /*getHeight*/, TBool /*isWidthInPer*/, TBool /*isHeightInPer*/, TInt &setWidth, TInt &setHeight)
-{
-   
-    setWidth = iRenderWidth;    
-    setHeight = iRenderHeight;    
-    
-    iViewPortWidth = setWidth;
-    iViewPortHeight = setHeight;
-}
-// ---------------------------------------------------------------------------
-// This function extracts attributes from the list that is passed from Browser.
-// Use to check if width & height are defined in XHTML tag
-// ---------------------------------------------------------------------------
-//
-NPError CSvgtPlugin::SvgPluginNew(NPMIMEType /*pluginType*/, NPP instance,
-    uint16 /*mode*/, CDesC16Array* argn, CDesC16Array* argv, NPSavedData* )
-    {
-    if (instance->pdata != this)
-        {
-        return NPERR_INVALID_INSTANCE_ERROR;
-        }
-
-    for (TInt i = 0; i < argn->Count(); i++)
-        {
-        TPtrC16 namePtr((*argn)[i]);
-        TPtrC16 valPtr((*argv)[i]);
-
-        if (KWidth().FindF(namePtr) == 0)
-            {
-            TLex lString( valPtr );
-            lString.SkipSpace();
-            TInt result = lString.Val(iRenderWidth);
-            // Check if object width was specified as
-            // percentage value.
-            if ( valPtr.Locate( '%' ) != KErrNotFound )
-                {
-                // Do not store the value, browser takes
-                // care of computing the width
-            	iObjWidthInPercentage = ETrue; 
-                }
-            if (( result != KErrNone) || (iRenderWidth < 0))
-                {
-                iObjectWidth = 0;
-                }
-            else
-            	{
-	            iObjectWidth = iRenderWidth;
-            	}
-            iObjectWidthSpecified = ETrue;
-            }
-        else if (KHeight().FindF(namePtr) == 0)
-            {
-            TLex lString( valPtr );
-            lString.SkipSpace();
-            TInt result = lString.Val(iRenderHeight);
-            // Check if object height was specified as a
-            // percentage value.
-            if ( valPtr.Locate( '%' ) != KErrNotFound )
-                {
-                // Do not store the value, browser takes
-                // care of computing the height                
-            	iObjHeightInPercentage = ETrue; 
-                }
-            if (( result != KErrNone) || ( iRenderHeight < 0 ))
-                {
-                iObjectHeight = 0;
-                }
-            else
-           		{
-	            iObjectHeight = iRenderHeight;
-           		}
-           	iObjectHeightSpecified = ETrue ;
-            }
-        }
-
-    return NPERR_NO_ERROR;
-    }
-
-
-// ---------------------------------------------------------------------------
-// ResizeWindow() This function is to notify that a new set of dimention value
-// should be taken into consideration. The new w&h is determined from
-// AdjustDimention().
-//
-// ---------------------------------------------------------------------------
-//
-void CSvgtPlugin::ResizeWindow(TInt aWidth, TInt aHeight)
-    {
-    NPPVariable variable;
-	CSvgtPluginEcomMain* lSvgtPluginEcomMain = (CSvgtPluginEcomMain*) Dll::Tls();
-	NPNetscapeFuncs* lNetscapeFuncs = lSvgtPluginEcomMain->Funcs();
-	NPWindow newWindow;
-    variable = NPPVpluginWindowSize;
-    newWindow.x = iCurrentWindow.x;
-    newWindow.y = iCurrentWindow.y;
-    newWindow.window = iCurrentWindow.window;
-    newWindow.clipRect = iCurrentWindow.clipRect;
-    newWindow.type = iCurrentWindow.type;
-    newWindow.width = aWidth;
-    newWindow.height = aHeight;
-    TInt err = lNetscapeFuncs->setvalue(iInstance, variable, (void*)&newWindow);
-    }
-
-
-// ---------------------------------------------------------------------------
-// AdjustDimention() This function does the logic to check if width & height
-// is needed to be adjusted
-// ---------------------------------------------------------------------------
-//
-TBool CSvgtPlugin::AdjustDimention( TBool aWidthInPercentage, TBool aHeightInPercentage)
-    {
-    iSvgModule->AddListener( static_cast < MSvgViewPortListener*>(this), ESvgViewPortListener );
-    if ( iAdjusted )
-    	return EFalse;
-    
-    // we set the width height in all cases except when width/height has been
-    // explicitly specified in the browser hence its set here for all cases
-    iAdjusted = ETrue;
-   // html provides absolute width, no height
-   // svg provides absolute width and absolute height
-   if (
-   ( iObjectWidthSpecified && !iObjWidthInPercentage && !iObjectHeightSpecified ) 
-   && ( !aWidthInPercentage && !aHeightInPercentage)
-   )
-        {
-        // only iObjectWidth is valid
-        // Adjust missing object value as per aspect ratio of 
-        // svg's viewport
-        if(iControl->iContentDimension.iWidth)
-        {
-            TReal newHeight = (TInt)((TReal32)iObjectWidth *
-            ( (TReal32)iControl->iContentDimension.iHeight /
-                (TReal32)iControl->iContentDimension.iWidth));
-            
-            ResizeWindow(iObjectWidth, newHeight);
-        
-        }
-        return ETrue;
-        }
-    
-   // html provides no width and absolute height
-   // svg provides absolute width and absolute height
-   else if (
-    ( !iObjectWidthSpecified && iObjectHeightSpecified && !iObjHeightInPercentage ) 
-    && ( !aWidthInPercentage && !aHeightInPercentage)
-    )
-        {
-        // only iObjectHeight is valid
-        // Adjust missing object value as per aspect ratio of 
-        // svg's viewport
-        if(iControl->iContentDimension.iHeight)
-        {
-            TInt newWidth = (TInt)((TReal32)iObjectHeight *
-            ( (TReal32)iControl->iContentDimension.iWidth /
-                (TReal32)iControl->iContentDimension.iHeight));
-            ResizeWindow(newWidth, iObjectHeight);
-            
-        }
-        return ETrue;
-        }
-   // html provides no width and no height
-   // svg provides absolute width and absolute height
-   else if(
-    (!iObjectWidthSpecified && !iObjectHeightSpecified)
-     && ( !aWidthInPercentage && !aHeightInPercentage)
-     )
-        {
-        ResizeWindow(iControl->iContentDimension.iWidth, iControl->iContentDimension.iHeight);
-        return ETrue;
-        }
-   // html provides width and height be it percentages or absolute values
-   else if(iObjectWidthSpecified && iObjectHeightSpecified)
-        {
-        iAdjusted = EFalse;
-        return EFalse;
-        }
-    else
-        {
-        TReal newWidth = 0.0f;
-        TReal newHeight = 0.0f;
-        CEikonEnv* lEnv = STATIC_CAST( CEikonEnv*, iControl->ControlEnv() );
-        
-        TRect lClientRect = TRect( TPoint( 0,0 ), lEnv->EikAppUi()->ClientRect().Size());
-       
-       // if the browser has specified a valid absolute value width
-        if ( !iObjWidthInPercentage && iObjectWidthSpecified)
-            {
-            newWidth = iObjectWidth; 
-            }
-        // if the browser has specified a valid percentage value width
-        else if (iObjWidthInPercentage && iObjectWidthSpecified )
-            {
-            // Compute the new dimension by scaling clientRect dimension
-            newWidth = lClientRect.Width() * iObjectWidth / 100;
-            }
-        // if the browser has specified a valid absolute value height
-        if ( !iObjHeightInPercentage && iObjectHeightSpecified)
-            {
-            newHeight = iObjectHeight;
-            }
-        // if the browser has specified a valid percentage value Height
-        else if(iObjHeightInPercentage && iObjectHeightSpecified)
-            {
-            // Compute the new dimension by scaling clientRect dimension
-            newHeight = lClientRect.Height() * iObjectHeight / 100;
-            }
-            
-        // if the browser has not specified the width
-        if(!iObjectWidthSpecified)
-            {
-            if(aWidthInPercentage)
-                {
-                newWidth = lClientRect.Width() * iControl->iContentDimension.iWidth / 100;
-                }
-            else
-                {
-                newWidth = iControl->iContentDimension.iWidth;
-                }
-            }
-        // if the browser has not specified the height
-        if(!iObjectHeightSpecified)
-            {
-            if(aHeightInPercentage)
-                {
-                newHeight = lClientRect.Height() * iControl->iContentDimension.iHeight / 100;
-                }
-            else
-                {
-                newHeight = iControl->iContentDimension.iHeight;
-                }
-            }
-        ResizeWindow(newWidth, newHeight);
-        return ETrue;   
-        }
-    }
-
-TBool CSvgtPlugin::LoadSvgFile( const TDesC& aFilename )
-	{
-	if ( !iSvgModule )
-		{
-		return EFalse;
-		}
-	MSvgError* error = iSvgModule->Load( aFilename );
-	if ( !error )
-		{
-		return EFalse;
-		}
-	
-	// Loading error
-    if ( error->HasError() && !error->IsWarning() )
-        {
-    	return EFalse;
-        }
-    TInt currentVolume;
-    if (FeatureManager::FeatureSupported(KFeatureIdSideVolumeKeys))
-        {
-        currentVolume = iKeyListener->GetCurrentVolume();
-   	    }
-   	else
-   	    {
-        currentVolume = iRepositoryListener->GetCurrentVolume();
-   	    }
-   	    
-   	VolumeChanged(currentVolume );
-    iTotalNumerOfAnimation = -1;
-    return ETrue;
-	}
-