ImagePrint/ImagePrintEngine/ImagePrintServer/inc/crsimageparser.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:30:38 +0100
branchRCL_3
changeset 21 d59c248c9d36
parent 0 d11fb78c4374
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201031 Kit: 201035

/*
* Copyright (c) 2004-2007 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:  Contains the CRsImageParser class definition.
*
*/


#ifndef CRSIMAGEPARSER_H
#define CRSIMAGEPARSER_H

#include <e32base.h>
#include <f32file.h>

class CRsImageParser : public CBase
	{
	public:
		enum TImageEncoding
			{
			EUnknown = 0,
			ENonDiffHuffmanBaseline = 0xc0,
			ENonDiffHuffmanExtendedSeq,
			ENonDiffHuffmanProgressive,
			ENonDiffHuffmanLossless,
			EUnused1,
			EDiffHuffmanSequential,
			EDiffHuffmanProgressive,
			EDiffHuffmanLossless,
			EReserved,
			ENonDiffArithExtendedSeq,
			ENonDiffArithProgressive,
			ENonDiffArithLossless,
			EUnused2,
			EDiffArithSequential,
			EDiffArithProgressive,
			EDiffArithLossless
			};

		/**
		 *	2-phase constructor
		 *
		 *	@return new object. The object is left on the cleanup stack
		 */
		static CRsImageParser* NewLC();
		
		/**
		 *	Destructor
		 */			
		~CRsImageParser();
		
		/**
		 *	JPEG image validator
		 *
		 *	@param aFileName image file name
		 *	@param aValid place holder for validity indicator
		 *	@param aErr place holder for error code
		 */			
		void ValidateL( const TDesC& aFileName, TBool& aValid, TInt& aErr );
								
	private:		

		CRsImageParser();
		void ConstructL();	
		TBool Validate( TInt aStartOfDataOffset, TInt aWidth, TInt aHeight, TInt aSize, TInt aEncoding, TInt aErr );
		TInt ReadData( RFile& aFile, TInt aStartByte, TDes8& aData );

	private:
	
		RFs iFs;
	};

#endif // CRSIMAGEPARSER_H

//  End of File