diff -r 735348f59235 -r 948c7f65f6d4 imagingandcamerafws/imagingfws/src/ImageData.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imagingandcamerafws/imagingfws/src/ImageData.cpp Wed Sep 01 12:38:50 2010 +0100 @@ -0,0 +1,413 @@ +// Copyright (c) 2001-2009 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: +// + +#include "icl/ImageData.h" +#include "icl/ImageCodecData.h" +#include "ImageData.inl" + +/** +Constructs and initialises the TFrameDataBlock object to the data type specified by aDataType. + +@param aDataType + The data type. + +@see ImageCodecData.h + */ +EXPORT_C TFrameDataBlock::TFrameDataBlock(TUid aDataType) +: iDataType(aDataType) + { + } + +/** +Returns the data type of the current TFrameDataBlock object. + +@return The data type. + +@see ImageCodecData.h +*/ +EXPORT_C TUid TFrameDataBlock::DataType() const + { + return iDataType; + } + + +/** +Constructs and initialises the TImageDataBlock object to the data type specified by aDataType. + +@param aDataType + The data type. + +@see ImageCodecData.h +*/ +EXPORT_C TImageDataBlock::TImageDataBlock(TUid aDataType) +: iDataType(aDataType) + { + } + +/** +Returns the data type of the current TImageDataBlock object. + +@return The data type. + +@see ImageCodecData.h +*/ +EXPORT_C TUid TImageDataBlock::DataType() const + { + return iDataType; + } + + +/** + * + * Default constructor for this class. + */ +EXPORT_C TBmpImageData::TBmpImageData() + : TImageDataBlock(KBMPImageDataUid) + { + } + +TImageDataBlock* TBmpImageData::DuplicateL(CFrameImageData& /* aFrameImageData */ ) const + { + TBmpImageData* bmpImageData = new(ELeave) TBmpImageData(*this); + return bmpImageData; + } + +/** + * + * Default constructor for this class. + */ +EXPORT_C TBmpCompression::TBmpCompression() + : TImageDataBlock(KBMPCompressionUid) + { + } + +TImageDataBlock* TBmpCompression::DuplicateL(CFrameImageData& /* aFrameImageData */ ) const + { + TBmpCompression* bmpCompression = new(ELeave) TBmpCompression(*this); + return bmpCompression; + } + + +/** + * + * Default constructor for this class. + */ +EXPORT_C TJpegImageData::TJpegImageData() + : TImageDataBlock(KJPGImageDataUid), + iSampleScheme(EColor420), + iQualityFactor(75) + { + } + +TImageDataBlock* TJpegImageData::DuplicateL(CFrameImageData& /* aFrameImageData */ ) const + { + TJpegImageData* jpegImageData = new(ELeave) TJpegImageData(*this); + return jpegImageData; + } + +/** + * + * Default constructor for this class. + */ +EXPORT_C TJpegQTable::TJpegQTable(): + TImageDataBlock(KJPGQTableUid), + iTableIndex(ELumaTable), + iEntries(KJpgQTableEntries) + { + } + +TImageDataBlock* TJpegQTable::DuplicateL(CFrameImageData& /* aFrameImageData */ ) const + { + TJpegQTable* jpegQTable = new(ELeave) TJpegQTable(*this); + return jpegQTable; + } + +/** + * + * Default constructor for this class. + */ +EXPORT_C TJpegComment::TJpegComment(): + TImageDataBlock(KJPGCommentUid), + iComment(NULL) + { + } + +TImageDataBlock* TJpegComment::DuplicateL(CFrameImageData& aFrameImageData) const + { + TJpegComment* jpegComment = new(ELeave) TJpegComment(*this); + CleanupStack::PushL(jpegComment); + + jpegComment->iComment = jpegComment->iComment->AllocLC(); + + User::LeaveIfError(aFrameImageData.AppendImageBuffer(jpegComment->iComment)); + CleanupStack::Pop(2); // jpegComment, jpegComment->iComment; + return jpegComment; + } + + +/** + * + * Default constructor for this class. + */ +EXPORT_C TGifBackgroundColor::TGifBackgroundColor() + : TImageDataBlock(KGIFBackgroundColorUid) + { + } + +TImageDataBlock* TGifBackgroundColor::DuplicateL(CFrameImageData& /* aFrameImageData */ ) const + { + TGifBackgroundColor* gifBackgroundColor = new(ELeave) TGifBackgroundColor(*this); + return gifBackgroundColor; + } + +/** + * + * Default constructor for this class. + */ +EXPORT_C TGifImageDescriptor::TGifImageDescriptor() + : TFrameDataBlock(KGIFImageDescriptorUid) + { + } + +TFrameDataBlock* TGifImageDescriptor::DuplicateL(CFrameImageData& /* aFrameImageData */ ) const + { + TGifImageDescriptor* gifImageDescriptor = new(ELeave) TGifImageDescriptor(*this); + return gifImageDescriptor; + } + +/** + * Constructor for this class. + * Set the data type for this class to KGIFColorTableUid + */ +EXPORT_C TGifColorTable::TGifColorTable() + : TFrameDataBlock(KGIFColorTableUid) + { + } + +/** +Create a copy of this class. + +@param aFrameImageData + Not used +@return A copy of the class. Ownership is passed to the caller. +*/ +TFrameDataBlock* TGifColorTable::DuplicateL(CFrameImageData& /* aFrameImageData */ ) const + { + TGifColorTable* gifColorTable = new(ELeave) TGifColorTable(*this); + return gifColorTable; + } + +/** + * + * Default constructor for this class. + */ +EXPORT_C TGifImageControl::TGifImageControl() + : TFrameDataBlock(KGIFImageControlUid) + { + } + +TFrameDataBlock* TGifImageControl::DuplicateL(CFrameImageData& /* aFrameImageData */ ) const + { + TGifImageControl* gifImageControl = new(ELeave) TGifImageControl(*this); + return gifImageControl; + } + +/** + * + * Default constructor for this class. + */ +EXPORT_C TGifLZWInfo::TGifLZWInfo() + : TFrameDataBlock(KGIFLZWInfoUid), + iCompressedBytes(0) + { + } + +TFrameDataBlock* TGifLZWInfo::DuplicateL(CFrameImageData& /* aFrameImageData */ ) const + { + TGifLZWInfo* gifLZWInfo = new(ELeave) TGifLZWInfo(*this); + return gifLZWInfo; + } + +/** + * + * Default constructor for this class. + */ +EXPORT_C TGifComment::TGifComment() + : TImageDataBlock(KGIFCommentUid), + iComment(NULL) + { + } + +TImageDataBlock* TGifComment::DuplicateL(CFrameImageData& aFrameImageData) const + { + TGifComment* gifComment = new(ELeave) TGifComment(*this); + CleanupStack::PushL(gifComment); + + gifComment->iComment = gifComment->iComment->AllocLC(); + + User::LeaveIfError(aFrameImageData.AppendImageBuffer(gifComment->iComment)); + CleanupStack::Pop(2); // gifComment, gifComment->iComment; + return gifComment; + } + +/** + * + * Default constructor for this class. + */ +EXPORT_C TGifLoopIterations::TGifLoopIterations() + : TImageDataBlock(KGIFLoopIterationsUid), + iLoopIterations(0) + { + } + +TImageDataBlock* TGifLoopIterations::DuplicateL(CFrameImageData& /*aFrameImageData*/) const + { + TGifLoopIterations* gifIterations = new(ELeave) TGifLoopIterations(*this); + return gifIterations; + } + +/** + * + * Default constructor for this class. + */ +EXPORT_C TMbmDecodeData::TMbmDecodeData() + : TFrameDataBlock(KMBMDecodeDataUid) + { + } + +TFrameDataBlock* TMbmDecodeData::DuplicateL(CFrameImageData& /* aFrameImageData */ ) const + { + TMbmDecodeData* mbmDecodeData = new(ELeave) TMbmDecodeData(*this); + return mbmDecodeData; + } + +/** + * + * Default constructor for this class. + */ +EXPORT_C TMbmEncodeData::TMbmEncodeData() + : TFrameDataBlock(KMBMEncodeDataUid) + { + } + +TFrameDataBlock* TMbmEncodeData::DuplicateL(CFrameImageData& /* aFrameImageData */ ) const + { + TMbmEncodeData* mbmEncodeData = new(ELeave) TMbmEncodeData(*this); + return mbmEncodeData; + } + +/** + * + * Default constructor for this class. + */ +EXPORT_C TPngEncodeData::TPngEncodeData() + : TFrameDataBlock(KPNGEncodeDataUid) + { + } + +TFrameDataBlock* TPngEncodeData::DuplicateL(CFrameImageData& /* aFrameImageData */) const + { + TPngEncodeData* pngEncodeData = new(ELeave) TPngEncodeData(*this); + return pngEncodeData; + } + +/** + * + * Default constructor for this class. + */ +EXPORT_C TTiffImageData::TTiffImageData(): + TFrameDataBlock(KTIFFImageDataUid), + iStripInfo(NULL) + { + } + +TFrameDataBlock* TTiffImageData::DuplicateL(CFrameImageData& aFrameImageData) const + { + TTiffImageData* tiffImageData = new(ELeave) TTiffImageData(*this); + CleanupStack::PushL(tiffImageData); + + tiffImageData->iStripInfo = tiffImageData->iStripInfo->AllocLC(); + + User::LeaveIfError(aFrameImageData.AppendImageBuffer(tiffImageData->iStripInfo)); + CleanupStack::Pop(2); // tiffImageData, tiffImageData->iStripInfo; + return tiffImageData; + } + +// +// TFrameInfo +// + +/** +Returns the current frame state. + +@return The frame state. +*/ +EXPORT_C TFrameInfo::TFrameInfoState TFrameInfo::CurrentFrameState() const + { + return iCurrentFrameState; + } + +/** +Sets the current frame state to the supplied value. + +@param aFrameInfoState + The frame state. +*/ +EXPORT_C void TFrameInfo::SetCurrentFrameState(TFrameInfoState aFrameInfoState) + { + iCurrentFrameState = aFrameInfoState; + } + +/** +Returns the current data offset. + +@return The data offset. +*/ +EXPORT_C TInt TFrameInfo::CurrentDataOffset() const + { + return iCurrentDataOffset; + } + +/** +Sets the current data offset to the supplied value. + +@param aOffset + The data offset. +*/ +EXPORT_C void TFrameInfo::SetCurrentDataOffset(TInt aOffset) + { + iCurrentDataOffset = aOffset; + } + +/** +Returns the frame data offset. + +@return The frame data offset. +*/ +EXPORT_C TInt TFrameInfo::FrameDataOffset() const + { + return iFrameDataOffset; + } + +/** +Sets the frame data offset to the supplied value. + +@param aOffset + The frame data offset. +*/ +EXPORT_C void TFrameInfo::SetFrameDataOffset(TInt aOffset) + { + iFrameDataOffset = aOffset; + }