photosgallery/viewframework/texturemanager/src/glxtexturemanager.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 15 Jul 2010 18:39:01 +0300
branchRCL_3
changeset 23 b023a8d2866a
parent 19 420f6808bf21
permissions -rw-r--r--
Revision: 201025 Kit: 2010127

/*
* Copyright (c) 2008-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:    Texture Manager
*
*/




// INCLUDE FILES

#include <glxmedia.h>
#include <glxlog.h>
#include <glxtracer.h>
#include "glxtexturemanager.h"

#include <aknconsts.h>

#include "glxtexturemanagerimpl.h"


    
// -----------------------------------------------------------------------------
// Destructor
// -----------------------------------------------------------------------------
//  
CGlxTextureManager::~CGlxTextureManager()
    {
    TRACER("CGlxTextureManager::~CGlxTextureManager");
    GLX_LOG_INFO( "CGlxTextureManager::~CGlxTextureManager" );
    delete iImpl;
    }

// -----------------------------------------------------------------------------
// NewL
// -----------------------------------------------------------------------------
//
EXPORT_C CGlxTextureManager* CGlxTextureManager::NewL(
                                        CAlfTextureManager& aAlfTextureManager)
    {
    TRACER("CGlxTextureManager::NewL");
    GLX_LOG_INFO( "CGlxTextureManager::NewL" );
    CGlxTextureManager* self = 
                        new (ELeave) CGlxTextureManager();
    CleanupStack::PushL(self);
    self->iImpl = CGlxTextureManagerImpl::NewL(aAlfTextureManager);
    CleanupStack::Pop(self);
    return self;
    }
    
// -----------------------------------------------------------------------------
///CreateNewTextureForMediaL
// -----------------------------------------------------------------------------

EXPORT_C CAlfTexture& CGlxTextureManager::CreateNewTextureForMediaL(
        TSize aSize, 
        const TGlxMedia& aMedia, 
        const TGlxIdSpaceId& aIdSpaceId, 
        MGlxTextureObserver* aObserver )
    {
    TRACER("CGlxTextureManager::CreateNewTextureForMediaL");
    GLX_LOG_INFO( "CGlxTextureManager::CreateNewTextureForMediaL" );
    return iImpl->CreateNewTextureForMediaL(aSize,aMedia,aIdSpaceId,aObserver,EFalse);
    
    }
// CreateAvkonIconTextureL - with backup bitmap ID
// -----------------------------------------------------------------------------
//
EXPORT_C CAlfTexture& CGlxTextureManager::CreateAvkonIconTextureL(
                                                        const TAknsItemID &aID, 
                                                        TInt aBitmapId,
                                                        TSize aRequestedSize)
    {
    TRACER("CGlxTextureManager::CreateAvkonIconTextureL");
    GLX_LOG_INFO( "CGlxTextureManager::CreateAvkonIconTextureL" );
    return iImpl->CreateIconTextureL(aID, 
                                     aBitmapId, 
                                     KAvkonBitmapFile,
                                     EFalse,
                                     KRgbWhite,
                                     KAknsIIDNone,
                                     0, 
                                     aRequestedSize);
    }

// -----------------------------------------------------------------------------
// CreateColorAvkonIconTextureL - with backup bitmap ID and ability to set color
// -----------------------------------------------------------------------------
//
EXPORT_C CAlfTexture& CGlxTextureManager::CreateColorAvkonIconTextureL(
                                                        const TAknsItemID& aID, 
                                                        TInt aBitmapId,
                                                        TRgb aDefaultColor,
                                                        const TAknsItemID& aSkinColorId,
                                                        TInt aSkinColorIndex,
                                                        TSize aRequestedSize)
    {
    TRACER("CGlxTextureManager::CreateColorAvkonIconTextureL");
    GLX_LOG_INFO( "CGlxTextureManager::CreateColorAvkonIconTextureL" );
    return iImpl->CreateIconTextureL(aID, 
                                     aBitmapId, 
                                     KAvkonBitmapFile,
                                     ETrue,
                                     aDefaultColor,
                                     aSkinColorId,
                                     aSkinColorIndex, 
                                     aRequestedSize);
    }

// -----------------------------------------------------------------------------
// CreateAvkonIconTextureL - no backup bitmap ID
// -----------------------------------------------------------------------------
//
EXPORT_C CAlfTexture& CGlxTextureManager::CreateAvkonIconTextureL(
                                                        const TAknsItemID &aID, 
                                                        TSize aRequestedSize)
    {
    TRACER("CGlxTextureManager::CreateAvkonIconTextureL 2");
    GLX_LOG_INFO( "CGlxTextureManager::CreateAvkonIconTextureL 2" );
    return iImpl->CreateIconTextureL(aID,
                                     0, 
                                     KNullDesC(),
                                     EFalse,
                                     KRgbWhite,
                                     KAknsIIDNone,
                                     0, 
                                     aRequestedSize);
    }

// -----------------------------------------------------------------------------
// CreateIconTextureL - from ID and mif/mbm file name
// -----------------------------------------------------------------------------
//
EXPORT_C CAlfTexture& CGlxTextureManager::CreateIconTextureL(
                                                   TInt aIconResourceId, 
                                                   TDesC& aFilename,
                                                   TSize aRequestedSize)
    {
    TRACER("CGlxTextureManager::CreateIconTextureL");
    GLX_LOG_INFO( "CGlxTextureManager::CreateIconTextureL" );
    return iImpl->CreateIconTextureL(KAknsIIDNone, 
                                     aIconResourceId, 
                                     aFilename,
                                     EFalse,
                                     KRgbWhite,
                                     KAknsIIDNone,
                                     0, 
                                     aRequestedSize);
    }
    
// -----------------------------------------------------------------------------
// CreateColorIconTextureL - from ID and mif/mbm file name, modifying colour
// -----------------------------------------------------------------------------
//
EXPORT_C CAlfTexture& CGlxTextureManager::CreateColorIconTextureL(
                                                   TInt aIconResourceId, 
                                                   TDesC& aFilename,
                                                   TRgb  aDefaultColor,
                                                   const TAknsItemID& aSkinColorId,
                                                   TInt aSkinColorIndex,
                                                   TSize aRequestedSize)

    {
    TRACER("CGlxTextureManager::CreateColorIconTextureL");
    GLX_LOG_INFO( "CGlxTextureManager::CreateColorIconTextureL" );
    return iImpl->CreateIconTextureL(KAknsIIDNone, 
                                     aIconResourceId, 
                                     aFilename,
                                     ETrue,
                                     aDefaultColor,
                                     aSkinColorId,
                                     aSkinColorIndex, 
                                     aRequestedSize);
    }
    
    

// -----------------------------------------------------------------------------
// CreateThumbnailTextureL
// -----------------------------------------------------------------------------
//
EXPORT_C CAlfTexture& CGlxTextureManager::CreateThumbnailTextureL(
                const TGlxMedia& aMedia, const TGlxIdSpaceId& aIdSpaceId,
                const TSize& aRequiredSize, MGlxTextureObserver* aObserver,
                TBool aScaleGridTnm)
    {
    TRACER("CGlxTextureManager::CreateThumbnailTextureL");
    GLX_LOG_INFO( "CGlxTextureManager::CreateThumbnailTextureL" );
    return iImpl->CreateNewTextureForMediaL( aRequiredSize, aMedia, aIdSpaceId,
                                            aObserver,aScaleGridTnm );
    }

// -----------------------------------------------------------------------------
// CreateZoomedTextureL
// -----------------------------------------------------------------------------
//  
EXPORT_C CAlfTexture& CGlxTextureManager::CreateZoomedTextureL(
                    const TGlxMedia& aMedia, const TMPXAttribute& aAttribute,
                    TGlxIdSpaceId aIdSpaceId, MGlxTextureObserver* aObserver)
    {
    TRACER("CGlxTextureManager::CreateZoomedTextureL");
    GLX_LOG_INFO( "CGlxTextureManager::CreateZoomedTextureL" );
    return iImpl->CreateZoomedTextureL(aMedia, aAttribute, aIdSpaceId,aObserver);
    }

// -----------------------------------------------------------------------------
// CreateZoomedTextureL
// -----------------------------------------------------------------------------
//  
EXPORT_C CAlfTexture* CGlxTextureManager::CreateZoomedTextureL()
    {
    TRACER("CGlxTextureManager::CreateZoomedTextureL 2");
    GLX_LOG_INFO( "CGlxTextureManager::CreateZoomedTextureL 2" );
    return iImpl->CreateZoomedTextureL();
    }

// -----------------------------------------------------------------------------
// CreateAnimatedGifTextureL
// -----------------------------------------------------------------------------
//  
EXPORT_C CAlfTexture& CGlxTextureManager::CreateAnimatedGifTextureL(
        const TDesC& aFilename,const TSize& aSize,
        const TGlxMedia& aMedia, TGlxIdSpaceId aIdSpaceId)
    {
    TRACER("CGlxTextureManager::CreateAnimatedGifTextureL");
    GLX_LOG_INFO( "CGlxTextureManager::CreateAnimatedGifTextureL" );
    return iImpl->CreateAnimatedGifTextureL( aFilename, aSize, aMedia, aIdSpaceId);
    }    		    

// -----------------------------------------------------------------------------
// CreateFlatColourTextureL
// -----------------------------------------------------------------------------
//  
EXPORT_C CAlfTexture& CGlxTextureManager::CreateFlatColourTextureL( TRgb aColour )
    {
    TRACER("CGlxTextureManager::CreateFlatColourTextureL");
    GLX_LOG_INFO( "CGlxTextureManager::CreateFlatColourTextureL" );
    return iImpl->CreateFlatColourTextureL( aColour );
    }
    
// -----------------------------------------------------------------------------
// RemoveTexture
// -----------------------------------------------------------------------------
//
EXPORT_C void CGlxTextureManager::RemoveTexture(
                                   const CAlfTexture& aTexture)
    {
    TRACER("CGlxTextureManager::RemoveTexture");
    GLX_LOG_INFO( "CGlxTextureManager::RemoveTexture" );
    iImpl->RemoveTexture(aTexture);
    }

// -----------------------------------------------------------------------------
// RemoveTexture
// -----------------------------------------------------------------------------
//
EXPORT_C void CGlxTextureManager::RemoveTexture(const TGlxMediaId& aMediaId,TBool aAllTexture)
    {
    TRACER("CGlxTextureManager::RemoveTexture 2");
    GLX_LOG_INFO( "CGlxTextureManager::RemoveTexture 2" );
	//Bug fix for PKAA-7NRBYZ - added aAllTexture param
    iImpl->RemoveTexture(aMediaId, aAllTexture);
    }

// -----------------------------------------------------------------------------
// FlushTextures
// -----------------------------------------------------------------------------
//
EXPORT_C void CGlxTextureManager::FlushTextures() 
    {
    TRACER("CGlxTextureManager::FlushTextures ");
    iImpl->FlushTextures();
    }

// -----------------------------------------------------------------------------
// IsBetterThumbnailAvailable
// -----------------------------------------------------------------------------
//  
EXPORT_C TBool CGlxTextureManager::TextureNeedsUpdating( TGlxMedia aMedia,
    TGlxIdSpaceId aIdSpaceId, const TSize& aRequiredSize )
    {
    TRACER("CGlxTextureManager::TextureNeedsUpdating");
    GLX_LOG_INFO( "CGlxTextureManager::TextureNeedsUpdating" );
    return iImpl->TextureNeedsUpdating( aMedia, aIdSpaceId, aRequiredSize );
    }


//  ----------------------------------------------------------------------------
//	HandleSkinChanged
//  ----------------------------------------------------------------------------

void CGlxTextureManager::HandleSkinChanged()
	{
	TRACER("CGlxTextureManager::HandleSkinChanged");
    GLX_LOG_INFO( "CGlxTextureManager::HandleSkinChanged" );
	iImpl->UpdateTexture();
	}

	
// -----------------------------------------------------------------------------
// RemoveZoomList
// -----------------------------------------------------------------------------
//
EXPORT_C void CGlxTextureManager::RemoveZoomList()
    {
    TRACER("CGlxTextureManager::RemoveZoomList");
    GLX_LOG_INFO( "CGlxTextureManager::RemoveZoomList" );
    iImpl->RemoveZoomList();
    }

// -----------------------------------------------------------------------------
// AnimateMediaItem
// -----------------------------------------------------------------------------
//
EXPORT_C void CGlxTextureManager::AnimateMediaItem(
    const TGlxMediaId& aMediaId, TBool aState)
    {
    TRACER("CGlxTextureManager::AnimateMediaItem");
    iImpl->AnimateMediaItem(aMediaId, aState);
    }
	
// -----------------------------------------------------------------------------
// CreateDRMAnimatedGifTextureL
// -----------------------------------------------------------------------------
//
EXPORT_C CAlfTexture& CGlxTextureManager::CreateDRMAnimatedGifTextureL(const TGlxMedia& aMedia,
        TGlxIdSpaceId aIdSpaceId, TInt aFrameNumber, CFbsBitmap* aBitmap, CFbsBitmap* aBitmapMask)
    {
    TRACER("CGlxTextureManager::CreateDRMAnimatedGifTextureL");
    return iImpl->CreateDRMAnimatedGifTextureL( aMedia,
            aIdSpaceId, aFrameNumber, aBitmap, aBitmapMask);
    }