camappengine/Engine/Src/CaeStillBurst.cpp
changeset 15 50d5061ee01e
parent 14 34024902876b
child 17 880d946921e4
--- a/camappengine/Engine/Src/CaeStillBurst.cpp	Fri Mar 19 09:33:47 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,353 +0,0 @@
-/*
-* Copyright (c) 2003,2004 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:  Camera Application Engine still image burst class
-*
-*/
-
-
-
-// INCLUDE FILES
-
-#include "CaeEngineImp.h"                   // For LOGTEXT
-#include <fbs.h>                            // For CFbsBitmap
-#include <hal.h>                            // For HAL
-
-#include "CaeStillBurst.h"                  // Still image burst capturing class.
-#include "CaeImageItem.h"                   // Still image item class.
-
-
-// CONSTANTS
-const TInt KCaeStillBurstImageQueueGranularity = 6;
-const TInt KCaeMinImageHeapSize = 0; 
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CCaeStillBurst::NewL
-// -----------------------------------------------------------------------------
-//
-CCaeStillBurst* CCaeStillBurst::NewL()
-    {
-    LOGTEXT( _L( "Cae: CCaeStillBurst::NewL() entering" ) );
-
-    CCaeStillBurst* self = new( ELeave ) CCaeStillBurst;
-
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    LOGTEXT( _L( "Cae: CCaeStillBurst::NewL() returning" ) );
-
-    return self;
-    }
-
-    
-// -----------------------------------------------------------------------------
-// CCaeStillBurst::~CCaeStillBurst
-// Destroys image queue.
-// -----------------------------------------------------------------------------
-//
-CCaeStillBurst::~CCaeStillBurst()
-    {
-    LOGTEXT( _L( "Cae: CCaeStillBurst::~CCaeStillBurst() entering" ) );
-
-    ResetAndDestroyImages();
-
-    if ( iImageHeap )
-        {
-        iImageHeap->Close();
-        }
-
-    delete iImageQueue;
-
-    LOGTEXT( _L( "Cae: CCaeStillBurst::~CCaeStillBurst() returning" ) );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaeStillBurst::CCaeStillBurst
-// -----------------------------------------------------------------------------
-//
-CCaeStillBurst::CCaeStillBurst() 
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaeStillBurst::ConstructL
-// Allocates image queue.
-// -----------------------------------------------------------------------------
-//
-void CCaeStillBurst::ConstructL()
-    {
-    LOGTEXT2( _L( "Cae: CCaeStillBurst::ConstructL() entering, min heap: %d" ), KCaeMinImageHeapSize );
-
-    iImageQueue = new( ELeave ) RPointerArray<CCaeImageItem>( 
-        KCaeStillBurstImageQueueGranularity );
-
-    TInt maxMem;
-    User::LeaveIfError( HAL::Get( HAL::EMemoryRAM, maxMem ) );
-    #if (defined (__WINS__) || defined (__WINSCW__))
-    maxMem /= 2; // Fix emulator -4 error
-    #endif
-
-    iImageHeap = User::ChunkHeap( NULL, KCaeMinImageHeapSize, maxMem );
-
-    #ifdef _DEBUG
-    if ( !iImageHeap )
-        {
-        LOGTEXT( _L( "Cae: CCaeStillBurst::ConstructL() Error: Cannot create iImageHeap !" ) );
-        }
-    #endif
-
-    User::LeaveIfNull( iImageHeap );
-
-    LOGTEXT( _L( "Cae: CCaeStillBurst::ConstructL() returning" ) );
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CCaeStillBurst::SetLengthL
-// -----------------------------------------------------------------------------
-//
-void CCaeStillBurst::SetLengthL( 
-    TInt aLength )
-    {
-    LOGTEXT2( _L( "Cae: CCaeStillBurst::SetLengthL(): length: %d" ), aLength );
-
-    // Leave if not supported.
-    if ( aLength < 1 )
-        {
-        LOGTEXT( _L( "Cae: CCaeStillBurst::SetLengthL(): leaving KErrArgument" ));
-        User::Leave( KErrArgument );
-        }
-
-    iDesiredLength = aLength;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaeStillBurst::Length
-// -----------------------------------------------------------------------------
-//
-TInt CCaeStillBurst::Length() const
-    {
-    LOGTEXT2( _L( "Cae: CCaeStillBurst::Length(): length: %d" ), iDesiredLength );
-
-    return iDesiredLength;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaeStillBurst::AppendImage
-// Appends an image item object to image queue.
-// -----------------------------------------------------------------------------
-//
-TInt CCaeStillBurst::AppendImage( 
-    CFbsBitmap*  aBitmap, 
-    HBufC8*      aImageData, 
-    TInt         aError )
-    {
-    LOGTEXT2( _L( "Cae: CCaeStillBurst::AppendImage() entering: %d" ), aError );
-
-    TInt result( KErrNone );
-
-    CCaeImageItem* imageItem = new CCaeImageItem( *iImageHeap );
-    if ( imageItem ) 
-        {
-        if (aImageData)
-            {
-            // Copy image data from HBufC8 to image heap
-            imageItem->iImageData = iImageHeap->Alloc( aImageData->Size() );
-            if ( imageItem->iImageData )
-                {
-                imageItem->iImageDataSize = aImageData->Size();
-                Mem::Copy( imageItem->iImageData, aImageData->Ptr(), 
-                    imageItem->iImageDataSize );
-                }
-            else
-                {
-                result = KErrNoMemory;
-                }
-            }
-        if ( result == KErrNone ) 
-            {
-            imageItem->iBitmap = aBitmap;
-            imageItem->iError  = aError;
-            // Add image to the queue.
-            result = iImageQueue->Append( imageItem );
-            }
-        if ( result == KErrNone ) 
-            {
-            iCountOfBurstAppends++;
-            LOGTEXT2( _L( "Cae: CCaeStillBurst::AppendImage(): count of burst appends = %d" ), iCountOfBurstAppends );
-
-            // Given aImageData can be deleted now as it has successfully 
-            // been copied to imageItem->iImageData
-            delete aImageData;
-            }
-        else
-            {
-            // Do not delete the bitmap if error, delete just imageItem 
-            // which deletes also iImageData.
-            imageItem->iBitmap = NULL;
-            delete imageItem;
-            imageItem = NULL;
-            }
-        }
-    else 
-        {
-        result = KErrNoMemory;
-        }
-
-    LOGTEXT( _L( "Cae: CCaeStillBurst::AppendImage() returning" ) );
-
-    return result;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaeStillBurst::CaptureCount
-// -----------------------------------------------------------------------------
-//
-TInt CCaeStillBurst::CaptureCount() const
-    {
-    // Return the count of appends (captures) made.
-    return iCountOfBurstAppends;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaeStillBurst::ImageCount
-// -----------------------------------------------------------------------------
-//
-TInt CCaeStillBurst::ImageCount() const
-    {
-    // Return the count of image items.
-    return iImageQueue->Count();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaeStillBurst::GetNextImage
-// Fetches and deletes the next image from image queue.
-// -----------------------------------------------------------------------------
-//
-TInt CCaeStillBurst::GetNextImage( 
-    CFbsBitmap*&   aBitmap,     // output
-    HBufC8*&       aImageData,  // output
-    TInt&          aError )     // output
-    {
-    LOGTEXT2( _L( "Cae: CCaeStillBurst::GetNextImage() entering, %d images in queue" ), iImageQueue->Count() );
-
-    TInt error( KErrNone );
-
-    if ( iImageQueue->Count() > 0 )
-        {
-
-        if ( (*iImageQueue)[0]->iImageData )
-            {
-            // Copy image data from queue image item.
-            aImageData = HBufC8::New( (*iImageQueue)[0]->iImageDataSize );
-            if ( aImageData )
-                {
-                aImageData->Des().Copy( (TUint8*)(*iImageQueue)[0]->iImageData, 
-                    (*iImageQueue)[0]->iImageDataSize );
-                }
-            else
-                {
-                error = KErrNoMemory;
-                }
-            }
-
-        if ( error == KErrNone )
-            {
-            // Get bitmap pointer and image error value from the queue image item.
-            aBitmap     = (*iImageQueue)[0]->iBitmap;
-            aError      = (*iImageQueue)[0]->iError;
-
-            #ifdef _DEBUG
-            if ( aError )
-                {
-                LOGTEXT2( _L( "Cae: CCaeStillBurst::GetNextImage(): This image has error: %d" ), aError );
-                }
-            #endif
-
-            // Do not delete the bitmap. Delete the image item which deletes iImageData also.
-            (*iImageQueue)[0]->iBitmap = NULL;
-            delete (*iImageQueue)[0];
-            iImageQueue->Remove( 0 );
-            }
-
-        if ( ( iImageQueue->Count() == 0 ) || error ) 
-            {
-            // Give free memory to system from the top of heap.
-            iImageHeap->Compress(); 
-            LOGTEXT( _L( "Cae: CCaeStillBurst::GetNextImage(): last image fetched, compressed the heap" ) );
-            MEM();
-            }
-        }
-    else 
-        {
-        aBitmap = NULL;
-        aImageData = NULL;
-        error = KErrUnderflow;
-        }
-
-    LOGTEXT2( _L( "Cae: CCaeStillBurst::GetNextImage() returning: %d" ), error );
-
-    return error;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaeStillBurst::IsBurstCaptured
-// -----------------------------------------------------------------------------
-//
-TBool CCaeStillBurst::IsBurstCaptured() const
-    {
-    TBool isComplete( EFalse );
-    if ( iCountOfBurstAppends >= iDesiredLength )
-        {
-        isComplete = ETrue;
-        }    
-    return isComplete;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaeStillBurst::ResetAndDestroyImages()
-// Reset and destroy image queue.
-// -----------------------------------------------------------------------------
-//
-void CCaeStillBurst::ResetAndDestroyImages()
-    {
-    LOGTEXT( _L( "Cae: CCaeStillBurst::ResetAndDestroyImages()" ) );
-
-    if ( iImageQueue ) 
-        {
-        // Reset and destroy the image items from queue.
-        iImageQueue->ResetAndDestroy();
-        }
-    if ( iImageHeap )
-        {
-        iImageHeap->Compress(); // Give free memory to system from the top of heap
-        }
-    iCountOfBurstAppends = 0;
-    }
-
-
-//  End of File