vtengines/videoteleng/Src/Media/CVtEngImageScaler.cpp
changeset 18 d9b6a8729acd
parent 4 6dc066157ed4
child 23 c378a0498b84
child 27 dcbddbbaf8fd
--- a/vtengines/videoteleng/Src/Media/CVtEngImageScaler.cpp	Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,314 +0,0 @@
-/*
-* Copyright (c) 2004 - 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:  Image scaler
-*
-*/
-
-
-
-// INCLUDE FILES
-#include    "CVtEngSettings.h"
-#include    "VtEngUtils.h"
-#include    "CVtEngImageScaler.h"
-#include    <cvtimagebitmap.h>
-#include    <fbs.h>
-#include    <videotelephonyvariant.hrh>
-#include    <cvtlogger.h>
-
-// CONSTANTS
-// The number of used bitmaps as scaling targets.
-const TInt KVtEngTargetBitmapCount = 2;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CVtEngImageScaler::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-MVtEngImageScaler* CVtEngImageScaler::NewL(
-    MVtEngScalerObserver& aObserver )
-    {
-    __VTPRINTENTER( "Scaler.NewL" )
-    CVtEngImageScaler* scaler = new ( ELeave ) CVtEngImageScaler( aObserver );
-    CleanupStack::PushL( scaler );
-    scaler->ConstructL();
-    CleanupStack::Pop( scaler );
-    __VTPRINTEXIT( "Scaler.NewL" )
-    return scaler;
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngImageScaler::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CVtEngImageScaler::ConstructL()
-    {
-    iVtScaler = CVtImageScaler::NewL( *this );
-    GetScalingMethodL();
-    iVtScaler->SetQualityL( iScalingMethod );
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngImageScaler::ScaleL
-// Scaling method.
-// -----------------------------------------------------------------------------
-//
-void CVtEngImageScaler::ScaleL(
-            TInt aSourceIndex )
-    {
-    __VTPRINTENTER( "Scaler.ScaleL" )
-    __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ScaleL index=%d",
-        aSourceIndex )
-    __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ScaleL target index=%d",
-    iTargetBitmapInUse )
-    if ( iVtScaler->IsActive() )
-        {
-        __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ScaleL NActive" )
-        User::Leave( KErrInUse );
-        }
-
-    // If there is no bitmaps done, do leave.
-    // The caller should call ConfigureL.
-    if ( iSources.Count() <= 0  || iTargets.Count() <= 0 )
-        {
-        __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ScaleL: not conf" )
-        User::Leave( KErrNotReady );
-        }
-    iVtScaler->ScaleL( *iSources[ aSourceIndex ] ,
-         *iTargets[iTargetBitmapInUse] );
-    __VTPRINTEXIT( "Scaler.ScaleL" )
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngImageScaler::Configure
-// Configure scaling.
-// -----------------------------------------------------------------------------
-//
-TBool CVtEngImageScaler::ConfigureL(
-    TDisplayMode aDisplayMode,
-    TSize aSize,
-    TInt aSourceHandle1,
-    TInt aSourceHandle2 )
-    {
-    __VTPRINTENTER( "Scaler.ConfigureL" )
-    __VTPRINT( DEBUG_MEDIA , "================== Scaler.Config ==================" )
-    __VTPRINT2( DEBUG_MEDIA, "    aSize.iWidth:%d ", aSize.iWidth)
-    __VTPRINT2( DEBUG_MEDIA, "    aSize.iHeight:%d ", aSize.iHeight )
-    __VTPRINT2( DEBUG_MEDIA, "    aDisplayMode:%d", aDisplayMode )
-    __VTPRINT( DEBUG_MEDIA , "================== Scaler.Config ==================" )
-
-    TInt sourceHandle1( 0 );
-    if ( iSources.Count() > 0 )
-        {
-        CVtImageBitmap* bmp = iSources[ EFirstBitmap ];
-        if ( bmp )
-            {
-            sourceHandle1 = bmp->Bitmap().Handle();
-            }
-        }
-    TInt sourceHandle2( 0 );
-    if ( iSources.Count() > 1 )
-        {
-        CVtImageBitmap* bmp = iSources[ ESecondBitmap ];
-        if ( bmp )
-            {
-            sourceHandle2 = bmp->Bitmap().Handle();
-            }
-        }
-
-    // Do we have to cancel scaling first?
-    TBool cancelled( iVtScaler->IsActive() );
-
-    if ( aSourceHandle1 != sourceHandle1 || aSourceHandle2 != sourceHandle2
-        || aSize != iSize || iMode != aDisplayMode )
-        {
-        if ( cancelled )
-            {
-            __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:Config cancel" )
-            Cancel();
-            }
-        }
-    else
-        {
-        // Do we need the update => NO
-        __VTPRINTEXITR( "Scaler.ConfigureL %d", EFalse )
-        return EFalse;
-        }
-
-    // Store new mode and size.
-    iMode = aDisplayMode;
-    iSize = aSize;
-
-    // The RVD source images have changed.
-    if ( aSourceHandle1 != sourceHandle1 || aSourceHandle2 != sourceHandle2 )
-        {
-        __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL,
-            "Scaler:ConfigureL create bitmaps" )
-        CVtImageBitmap* vtBitmap = CVtImageBitmap::NewL( aSourceHandle1 );
-        CleanupStack::PushL( vtBitmap );
-        CVtImageBitmap* vtBitmap2 = CVtImageBitmap::NewL( aSourceHandle2 );
-        CleanupStack::PushL( vtBitmap2 );
-
-	    __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ConfigureL source reset" )
-        iSources.ResetAndDestroy();
-        iSources.AppendL( vtBitmap );
-        iSources.AppendL( vtBitmap2 );
-	    CleanupStack::Pop( KVtEngTargetBitmapCount ); // vtBitMaps
-        }
-
-    __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ConfigureL create targets" )
-    CVtImageBitmap* vtBitmapT =  CVtImageBitmap::NewL( aSize, aDisplayMode );
-    CleanupStack::PushL( vtBitmapT );
-    CVtImageBitmap* vtBitmapT2 = CVtImageBitmap::NewL( aSize, aDisplayMode );
-    CleanupStack::PushL( vtBitmapT2 );
-
-    __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ConfigureL target reset" )
-    iTargets.ResetAndDestroy();
-    iTargets.AppendL( vtBitmapT );
-    iTargets.AppendL( vtBitmapT2 );
-    CleanupStack::Pop( KVtEngTargetBitmapCount ); // vtBitMapTs
-
-    __VTPRINTEXITR( "Scaler.ConfigureL %d", cancelled )
-    return cancelled;
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngImageScaler::ScalingFinished
-// Callback telling that scaling is done.
-// -----------------------------------------------------------------------------
-//
-void CVtEngImageScaler::ScalingFinished( TInt aError )
-    {
-    __VTPRINTENTER( "Scaler.ScalingFinished" )
-
-    __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ScaleFin ", aError )
-
-    if ( aError == KErrNone )
-        {
-        CFbsBitmap& bitmap = iTargets [ iTargetBitmapInUse ]->Bitmap();
-        __VTPRINT2( DEBUG_MEDIA, "Scaler.ScalingFin index", iTargetBitmapInUse )
-
-        if ( iTargetBitmapInUse == EFirstBitmap )
-            {
-            iTargetBitmapInUse = ESecondBitmap;
-            }
-        else
-            {
-            iTargetBitmapInUse = EFirstBitmap;
-            }
-        // Notify client of done scaling
-        iObserver.ScalingCompleted( &bitmap, aError );
-        }
-    else
-        {
-        iObserver.ScalingCompleted( NULL, aError );
-        }
-    __VTPRINTEXIT( "Scaler.ScalingFinished" )
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngImageScaler::~CVtEngImageScaler
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CVtEngImageScaler::~CVtEngImageScaler()
-    {
-    __VTPRINTENTER( "Scaler.~" )
-
-    __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:Dtor" )
-    iTargets.ResetAndDestroy();
-    iTargets.Close();
-    iSources.ResetAndDestroy();
-    iSources.Close();
-    delete iVtScaler;
-    __VTPRINTEXIT( "Scaler.~" )
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngImageScaler::CVtEngImageScaler
-// C++ constructor.
-// -----------------------------------------------------------------------------
-//
-CVtEngImageScaler::CVtEngImageScaler(
-    MVtEngScalerObserver& aObserver ) :
-    iObserver( aObserver ), iTargetBitmapInUse ( EFirstBitmap ),
-    iScalingMethod( CVtImageScaler::EWeightedAverage )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngImageScaler::Release
-// Interface function implementation to delete the implementation.
-// -----------------------------------------------------------------------------
-//
-void CVtEngImageScaler::Release()
-    {
-    // Delete myself
-  __VTPRINTENTER( "Scaler.Release" )
-    delete this;
-    __VTPRINTEXIT( "Scaler.Release" )
-    }
-
-// -----------------------------------------------------------------------------
-// VtEngScalerFactory::CreateScalerL
-// Creates the image scaler.
-// -----------------------------------------------------------------------------
-//
-MVtEngImageScaler* VtEngScalerFactory::CreateScalerL(
-    MVtEngScalerObserver& aObserver )
-    {
-    __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL,
-        "VtEngScalerFactory::CreateScalerL" )
-    return CVtEngImageScaler::NewL( aObserver );
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngImageScaler::Cancel
-// Cancels the conversion.
-// -----------------------------------------------------------------------------
-//
-TInt CVtEngImageScaler::Cancel()
-    {
-    __VTPRINTENTER( "Scaler.Cancel" )
-    iVtScaler->Cancel();
-    __VTPRINTEXIT( "Scaler.Cancel" )
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CVtEngImageScaler::GetScalingMethodL
-// Gets the used scaling method from local variation.
-// -----------------------------------------------------------------------------
-//
-void CVtEngImageScaler::GetScalingMethodL()
-    {
-    __VTPRINTENTER( "Scaler.GetScalingMethodL" )
-    // Check if the scaling method is non-default
-    CVtEngSettings& settings = CVtEngUtility::Settings();
-    if( settings.CheckBits(
-        KVTLVFlagScalingMethodENearest ) )
-        {
-        iScalingMethod = CVtImageScaler::ENearest;
-        }
-    else if ( settings.CheckBits(
-        KVTLVFlagScalingMethodEBilinear ) )
-        {
-        iScalingMethod = CVtImageScaler::EBilinear;
-        }
-    __VTPRINTEXITR( "Scaler.GetScalingMethodL %d", (TInt) iScalingMethod )
-    }
-
-//  End of File