diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/Presentation/inc/CPbk2EmbeddedImage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/Presentation/inc/CPbk2EmbeddedImage.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,135 @@ +/* +* Copyright (c) 2005-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: +* Phonebook2 contact item field embedded thumbnail reader. +* Reads an database-embedded picture from a field. +* +*/ + + +#ifndef CPBK2EMBEDDEDIMAGE_H +#define CPBK2EMBEDDEDIMAGE_H + +// INCLUDES +#include "CPbk2ImageReaderBase.h" +#include "CPbk2ImageWriterBase.h" + + +// FORWARD DECLARATIONS +class MVPbkBaseContactField; +class MVPbkStoreContactField; +class TPbk2ImageManagerParams; +class CVPbkContactManager; +class MPbk2ImageData; + +// CLASS DECLARATION + +/** + * Phonebook contact item field embedded thumbnail reader. + * Reads a database-embedded picture from a field. + */ +NONSHARABLE_CLASS(CPbk2EmbeddedImageReader) : + public CPbk2ImageReaderBase + { + public: // interface + /** + * Creates a new instance of this class. + * + * @param aField field to read the thumbnail from. + * @param aObserver observer to notify about progress of this + * operation. + */ + static CPbk2EmbeddedImageReader* NewLC( + const MVPbkBaseContactField& aField, + MPbk2ImageGetObserver& aObserver ); + + /** + * Destructor. Cancels any previously executing read operation and + * destroys this object. + */ + ~CPbk2EmbeddedImageReader(); + + public: // from MPbk2ImageReader + void StartReadL(const TPbk2ImageManagerParams* aParameters = NULL); + HBufC8* CreateImageDataLC(); + + private: // implementation + CPbk2EmbeddedImageReader( + const MVPbkBaseContactField& aField, + MPbk2ImageGetObserver& aObserver ); + void ConstructL(); + const TDesC8& ImageBuffer() const; + + private: // data members + /// Ref: Contact item field + const MVPbkBaseContactField& iField; + /// Own: Image buffer + HBufC8* iImageBuffer; + }; + + +/** + * Phonebook contact item field embedded thumbnail writer. + * Writes a database-embedded picture to a field. + */ +NONSHARABLE_CLASS(CPbk2EmbeddedImageWriter) : + public CPbk2ImageWriterBase + { + public: // interface + /** + * Creates a new instance of this class. + * + * @param aContactManager Contact manager + * @param aField field to write the thumbnail to. + * @param aObserver observer to notify about progress of this + * operation. + */ + static CPbk2EmbeddedImageWriter* NewLC + (CVPbkContactManager& aContactManager, + MVPbkStoreContactField& aField, + MPbk2ImageSetObserver& aObserver); + + /** + * Destructor. + */ + ~CPbk2EmbeddedImageWriter(); + + private: // from CPbkThumbnailWriterBase + CImageEncoder* CreateImageWriterL(); + void StoreImageL(const MPbk2ImageData& aImageData); + void StoreImageL(CImageEncoder& aImageWriter); + void DoCancel(); + TSize ImageSize() const; + + private: // implementation + CPbk2EmbeddedImageWriter + (CVPbkContactManager& aContactManager, + MVPbkStoreContactField& aField, + MPbk2ImageSetObserver& aObserver); + void ConstructL(); + TBool IsCodImageL() const; + TBool IsSameFieldType(const MVPbkFieldType& aFieldType) const; + private: // data members + /// Ref: Contact manager + CVPbkContactManager& iContactManager; + /// Ref: Contact item field + MVPbkStoreContactField& iField; + /// Own: image buffer + HBufC8* iBitmapBlob; + + }; + +#endif // CPBK2EMBEDDEDIMAGE_H + +// End of File