camappengine/StillConverter/Src/CaeStillEncoder.cpp
changeset 15 50d5061ee01e
parent 14 34024902876b
child 17 880d946921e4
--- a/camappengine/StillConverter/Src/CaeStillEncoder.cpp	Fri Mar 19 09:33:47 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,336 +0,0 @@
-/*
-* Copyright (c) 2002 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:  Still Image Encoder for Camera Application Engine
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <eikenv.h>
-
-#include "CaeStillConverter.h"
-#include "CaeStillEncoder.h"
-#include "CaeStillCommon.h"
-
-#ifdef CAE_TEST_VERSION
-#include "CaeStillConverterTestErrors.h"
-#endif
-
-
-// ================= MEMBER FUNCTIONS =======================
-
-
-// ---------------------------------------------------------
-// CCaeStillEncoder::NewL
-// Two-phased constructor.
-// ---------------------------------------------------------
-//
-EXPORT_C CCaeStillEncoder* CCaeStillEncoder::NewL()
-    {
-    CCaeStillEncoder* self = new( ELeave ) CCaeStillEncoder;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// ---------------------------------------------------------
-// CCaeStillEncoder::~CCaeStillEncoder
-// Destructor.
-// ---------------------------------------------------------
-//
-EXPORT_C CCaeStillEncoder::~CCaeStillEncoder()
-    {
-    Cancel();
-    Cleanup();
-    
-    // For RTRT code coverage analysis.
-    // #pragma attol insert _ATCPQ_DUMP(0);
-    }
-
-
-// ---------------------------------------------------------
-// CCaeStillEncoder::SetObserver
-// Sets Still encoder observer.
-// ---------------------------------------------------------
-//
-EXPORT_C void CCaeStillEncoder::SetObserver( 
-    MCaeStillEncoderObserver* aObserver )
-    {
-    iObserver = aObserver;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaeStillEncoder::SetImageCodecL
-// Sets the specific image codec implementation to be used in encoding.
-// -----------------------------------------------------------------------------
-//
-void CCaeStillEncoder::SetImageCodecL( 
-	TUid aCodecUid )
-    {
-    iImageCodecUid = aCodecUid;
-    }
-
-// ---------------------------------------------------------
-// CCaeStillEncoder::SetCompressionQuality
-// Sets compression quality.
-// ---------------------------------------------------------
-//
-EXPORT_C void CCaeStillEncoder::SetCompressionQuality( 
-    TInt aQuality )
-    {
-    iJpegQuality = Min( KJpegQualityMax, Max( KJpegQualityMin, aQuality ) );
-    }
-
-
-// ---------------------------------------------------------
-// CCaeStillEncoder::CompressionQuality
-// Gets compression quality.
-// ---------------------------------------------------------
-//
-EXPORT_C TInt CCaeStillEncoder::CompressionQuality() const
-    {
-    return iJpegQuality;
-    }
-
-
-// ---------------------------------------------------------
-// CCaeStillEncoder::ConvertCFbsBitmapToHBufC8L
-// Creates CImageItem object, places it in the internal 
-// queue and starts bitmap to memory image conversion.
-// ---------------------------------------------------------
-//
-EXPORT_C void CCaeStillEncoder::ConvertCFbsBitmapToHBufC8L( 
-    CFbsBitmap* aBitmap,  
-    TTargetFormat aTargetFormat )
-    {
-    LOGTEXT( _L( "Cae: CCaeStillEncoder::ConvertCFbsBitmapToHBufC8L() entering" ) );
-
-    CleanupStack::PushL( aBitmap );
-
-    // Create image item and set up image data.
-
-    CImageItem* imageItem = new( ELeave ) CImageItem;
-
-    imageItem->iBitmap = aBitmap;
-
-    CleanupStack::Pop( aBitmap );
-    CleanupStack::PushL( imageItem );
-
-    switch ( aTargetFormat )
-        {
-        case ETargetFormatJPEG:
-        default:
-            {
-            imageItem->iImageTypeUid = KImageTypeJPGUid;
-
-            imageItem->iFrameImageData = CFrameImageData::NewL(); 
-            // ( do not push member variable to cleanup stack )
-
-            TJpegImageData* imagedata = new( ELeave ) TJpegImageData;
-            CleanupStack::PushL( imagedata );
-
-            imagedata->iSampleScheme = KCaeJpegColorSampling;
-            imagedata->iQualityFactor = iJpegQuality;
-
-            User::LeaveIfError ( imageItem->iFrameImageData->AppendImageData( imagedata ) );
-
-            CleanupStack::Pop( imagedata );
-            break;
-            }
-        }
-
-    #ifdef CAE_TEST_VERSION
-    // For simulating errors when compiled as special "test version".
-    CaeConvertCFbsBitmapToHBufC8ErrorL();
-    #endif    
-
-    // Append image to the queue.
-    User::LeaveIfError ( iImageQueue->Append( imageItem ) );
-
-    CleanupStack::Pop( imageItem );
-
-    // Start image conversion if not busy.
-    if ( !IsBusy() )
-        {
-        TRAPD( error, ConvertL() );
-        if ( error != KErrNone )
-            {
-            ConversionComplete( error );
-            }
-        }
-
-    LOGTEXT( _L( "Cae: CCaeStillEncoder::ConvertCFbsBitmapToHBufC8L() returning" ) );
-    }
-
-
-// ---------------------------------------------------------
-// CCaeStillEncoder::Cleanup
-// Destroy all allocations.
-// ---------------------------------------------------------
-//
-EXPORT_C void CCaeStillEncoder::Cleanup()
-    {
-    if ( iEncoder )
-        {
-        iEncoder->Cancel();
-        delete iEncoder;
-        iEncoder = NULL;
-        }
-
-    if ( iState != EIdle )
-        {
-        delete iEncodedImage;
-        iEncodedImage = NULL;
-        }
-    
-    if ( iImageQueue )
-        {
-        iImageQueue->ResetAndDestroy();
-        }
-    }
-
-
-// ---------------------------------------------------------
-// CCaeStillEncoder::CCaeStillEncoder
-// Default constructor. 
-// This can NOT leave.
-// ---------------------------------------------------------
-//
-CCaeStillEncoder::CCaeStillEncoder() :
-iJpegQuality( KJpegQualityMax )
-    {
-    CActiveScheduler::Add( this );
-    }
-
-
-// ---------------------------------------------------------
-// CCaeStillEncoder::ConstructL
-// Symbian 2nd phase constructor that can leave.
-// ---------------------------------------------------------
-//
-void CCaeStillEncoder::ConstructL()
-    {
-    CCaeStillConverter::ConstructL();
-    }
-
-
-// ---------------------------------------------------------
-// CCaeStillEncoder::DoCancel
-// From CActive, implements cancellation of an outstanding request.
-// ---------------------------------------------------------
-//
-void CCaeStillEncoder::DoCancel()
-    {
-    Cleanup();
-    iState = EIdle;
-    }
-
-
-// ---------------------------------------------------------
-// CCaeStillEncoder::ConvertL
-// Converts bitmap to memory JPEG image.
-// Allocates Image Conversion Library (ICL) encoder and 
-// starts conversion.
-// ---------------------------------------------------------
-//
-void CCaeStillEncoder::ConvertL()
-    {
-    LOGTEXT( _L( "Cae: CCaeStillEncoder::ConvertL() entering" ) );
-
-    // Do not delete the encoded image here, just set to NULL.
-    iEncodedImage = NULL;
-
-    // Allocate new ICL encoder.
-    delete iEncoder;
-    iEncoder = NULL;
-    
-    // Use the default codec or the specific codec
-    iEncoder = CImageEncoder::DataNewL( iEncodedImage, 
-    	CImageEncoder::EOptionNone, (*iImageQueue)[0]->iImageTypeUid, 
-    	KNullUid, iImageCodecUid ); 
-
-    LOGTEXT3( _L( "Cae: CCaeStillEncoder::ConvertL(). Requested encoder: %x, Found encoder: %x" ), iImageCodecUid.iUid, iEncoder->ImplementationUid().iUid );
-    
-    #ifdef CAE_TEST_VERSION
-    // For simulating errors when compiled as special "test version".
-    CaeStillConvertErrorL();
-    #endif    
-
-    iState = EConvert;
-    iStatus = KRequestPending;
-    iEncoder->Convert( &iStatus, 
-                       *(*iImageQueue)[0]->iBitmap, 
-                       (*iImageQueue)[0]->iFrameImageData );
-    SetActive();
-
-    LOGTEXT( _L( "Cae: CCaeStillEncoder::ConvertL() returning" ) );
-    }
-
-
-// ---------------------------------------------------------
-// CCaeStillEncoder::ConversionComplete
-// Perfoms necessary cleanup and delivers result 
-// to the client.
-// ---------------------------------------------------------
-//
-void CCaeStillEncoder::ConversionComplete( 
-    TInt aError )
-    {
-    LOGTEXT( _L( "Cae: CCaeStillEncoder::ConversionComplete() entering" ) );
-    #ifdef _DEBUG
-    if ( aError ) 
-        {
-        LOGTEXT2( _L( "Cae: CCaeStillEncoder::ConversionComplete(): error detected: %d" ), aError );
-        }
-    #endif
-
-    if ( iEncoder )
-        {
-        iEncoder->Cancel();
-        delete iEncoder;
-        iEncoder = NULL;
-        }
-
-    // To be outputted via call-back.
-    CFbsBitmap* bitmap = NULL;
-    
-    if ( iImageQueue->Count() > 0 )
-        {
-        bitmap = (*iImageQueue)[0]->iBitmap;
-
-        (*iImageQueue)[0]->iBitmap = NULL; // Prevent deletion of source image.
-        delete ( *iImageQueue )[0];
-
-        // Remove item pointer from the queue and compress the queue.
-        iImageQueue->Remove( 0 );
-        }
-
-    iState = EIdle;
-
-    const TInt KZeroImageSize = 0; // Image size argument currently not in use.
-
-    // Call back the client to deliver the result image. Gives away the ownership of the bitmap 
-    // and iEncodedImage.
-    iObserver->McaeseoHBufC8ImageReady( bitmap, iEncodedImage, aError, KZeroImageSize );
-    iEncodedImage = NULL; // Ownership has been given away
-
-    LOGTEXT( _L( "Cae: CCaeStillEncoder::ConversionComplete() returning" ) );
-    }
-
-
-//  End of File