diff -r 000000000000 -r 2014ca87e772 imagehandlinglib/Src/CIHLBitmapProcessor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imagehandlinglib/Src/CIHLBitmapProcessor.h Tue Jan 26 15:18:05 2010 +0200 @@ -0,0 +1,167 @@ +/* +* Copyright (c) 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: Implementation of scaling processor +* : using MIHLBitmap type bitmaps. +* +*/ + + +#ifndef CIHLBITMAPPROCESSOR_H +#define CIHLBITMAPPROCESSOR_H + +// INCLUDES +#include +#include + +// FORWARD DECLARATIONS +class CIHLScaler; +class CIHLBitmap; + +// CLASS DECLARATION +/** +* CIHLBitmapProcessor +* +* Implementation of scaling processor +* using MIHLBitmap type bitmaps. +* @lib IHL.lib +* @since 3.0 +*/ +NONSHARABLE_CLASS( CIHLBitmapProcessor ) : public CActive, + public MIHLBitmapProcessor + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CIHLBitmapProcessor* NewL( const TUint32 aOptions = 0 ); + + /* + * Virtual destructor. + */ + virtual ~CIHLBitmapProcessor(); + + public: // From base class MIHLProcessor + + /* + * From MIHLProcessor, see base class header. + */ + TIHLInterfaceType Type() const; + + public: // From base class MIHLBitmapProcessor + + /* + * From MIHLBitmapProcessor, see base class header. + */ + TInt Process( TRequestStatus& aStatus, + const MIHLBitmap& aSrcBitmap, + const TRect& aSrcRect, + MIHLBitmap& aDstBitmap, + const TRect& aDstRect ); + + /* + * From MIHLBitmapProcessor, see base class header. + */ + TBool IsBusy() const; + + /* + * From MIHLBitmapProcessor, see base class header. + */ + void CancelProcess(); + + /* + * From MIHLBitmapProcessor, see base class header. + */ + void SetFilter( MIHFilter* aFilter ); + + private: // From base class CActive + + /* + * From CActive, see base class header. + */ + void DoCancel(); + + /* + * From CActive, see base class header. + */ + void RunL(); + + /* + * From CActive, see base class header. + */ + TInt RunError( TInt aError ); + + + private: // Private methods + + /* + * Process bitmap part of source image + */ + void ProcessBitmapL(); + + /* + * Process mask part of source image + */ + void ProcessMaskL(); + + /* + * Set this active object to completed state + * -> one process step (RunL) will be executed. + */ + void SelfComplete(); + + /* + * Set client request to completed state + * -> process complete. + * @param aReason Request complete reason + */ + void RequestComplete( TInt aReason ); + + private: // Private constructors + + CIHLBitmapProcessor(); + void ConstructL( const TUint32 aOptions ); + + private: // Private data types + + enum TProcessorState + { + EInactive, + EProcessBitmap, + EProcessMask, + EFinish, + }; + + private: // Data + + // Ref: Process status & state + TRequestStatus* iProcessorStatus; + TProcessorState iProcessorState; + + // Ref: Source bitmap & rect + const MIHLBitmap* iSrcBitmap; + TRect iSrcRect; + + // Ref: Destination bitmap & rect + CIHLBitmap* iDstBitmap; + TRect iDstRect; + + // Own: Scaler + CIHLScaler* iScaler; + + }; + +#endif // CIHLBITMAPPROCESSOR_H + +// End of File