diff -r 26673e532f65 -r 159fc2f68139 ImagePrint/ImagePrintEngine/ImagePrintServer/src/server/crsimageparser.cpp --- a/ImagePrint/ImagePrintEngine/ImagePrintServer/src/server/crsimageparser.cpp Tue May 25 12:42:41 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,163 +0,0 @@ -/* -* 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. -* -*/ - - -// RsImageParser.cpp: implementation of the CRsImageParser class. -// -////////////////////////////////////////////////////////////////////// - -#include "crsimageparser.h" -#include "clog.h" - -////////////////////////////////////////////////////////////////////// -// Construction/Destruction -////////////////////////////////////////////////////////////////////// - -CRsImageParser* CRsImageParser::NewLC() - { - CRsImageParser* self = new (ELeave) CRsImageParser(); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - - -void CRsImageParser::ConstructL() - { - User::LeaveIfError(iFs.Connect()); - } - - -CRsImageParser::~CRsImageParser() - { - iFs.Close(); - } - -CRsImageParser::CRsImageParser() - { - } - -void CRsImageParser::ValidateL( const TDesC& aFileName, TBool& aValid, TInt& aErr ) - { - LOG1("CRsImageParser::ValidateL aFileName: %S", &aFileName); - aValid = EFalse; - TInt dataPos( 0 ); - TBuf8<9> imgData; - TBool bAllDone( EFalse ); - TInt height( 0 ); - TInt width( 0 ); - TInt startOfDataOffset( 0 ); - TInt encoding( EUnknown ); - TInt size( 0 ); - - RFile file; - aErr = file.Open( iFs, aFileName, EFileRead | EFileShareReadersOnly ); - LOG1("CRsImageParser::ValidateL file.Open (shareread mode): %d", aErr); - if ( aErr != KErrNone ) - { - aErr = file.Open( iFs, aFileName, EFileRead | EFileShareAny ); - LOG1("CRsImageParser::ValidateL file.Open (shareany mode): %d", aErr); - } - - // magic numbers used here are JPEG format related - else // if ( aErr == KErrNone ) // 1 IF - { - CleanupClosePushL( file ); - aErr = file.Size( size ); - if( size && aErr == KErrNone ) // 2 IF - { - aErr = ReadData( file, dataPos, imgData ); - if( aErr == KErrNone && imgData.Length() == 9 ) // 3 IF - { - // First check for the JPEG header "FF D8" - if( imgData[0] == 0xff && imgData[1] == 0xd8 ) // 4 IF - { - // Start skipping headers until we find the one we're looking for - dataPos = (imgData[4] << 8) + imgData[5] + 4; - - aErr = ReadData( file, dataPos, imgData ); - - while( aErr == KErrNone && imgData.Length() == 9 && imgData[0] == 0xff ) - { - switch( imgData[1] ) - { - case 0xda: - // Start of data - startOfDataOffset = dataPos + ((imgData[2] << 8) + imgData[3] + 2); - bAllDone = ETrue; - break; - - case EDiffArithLossless: - encoding = imgData[1]; - height = (imgData[5] << 8) + imgData[6]; - width = (imgData[7] << 8) + imgData[8]; - break; - - default: - break; - } // SWITCH - - if( bAllDone ) - { - break; - } - else - { - dataPos += (imgData[2] << 8) + imgData[3] + 2; - aErr = ReadData( file, dataPos, imgData ); - } - } // WHILE - } // 4 IF - else - { - // Not a JPG - aErr = KErrCorrupt; - } - } // 3 IF - } // 2 IF - - CleanupStack::PopAndDestroy( &file ); - } // 1 IF - - aValid = Validate( startOfDataOffset, width, height, size, encoding, aErr ); - - LOG1("CRsImageParser::ValidateL aValid: %d", aValid); - LOG1("CRsImageParser::ValidateL aErr: %d", aErr); - LOG("CRsImageParser::ValidateL end"); - } - -TBool CRsImageParser::Validate( TInt aStartOfDataOffset, TInt aWidth, TInt aHeight, TInt aSize, TInt aEncoding, TInt aErr ) - { - if ( aStartOfDataOffset && aWidth && aHeight && aSize && aEncoding && !aErr ) - { - return ETrue; - } - else - { - return EFalse; - } - } - -TInt CRsImageParser::ReadData( RFile& aFile, TInt aStartByte, TDes8& aData ) - { - LOG("CRsImageParser::ReadData begin"); - TInt err = aFile.Read( aStartByte, aData ); - LOG1("CRsImageParser::ReadData return: %d", err); - return err; - } - -// End of File