| /*****************************************************************************/ |
| // Copyright 2007-2011 Adobe Systems Incorporated |
| // All Rights Reserved. |
| // |
| // NOTICE: Adobe permits you to use, modify, and distribute this file in |
| // accordance with the terms of the Adobe license agreement accompanying it. |
| /*****************************************************************************/ |
| |
| /* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_preview.h#1 $ */ |
| /* $DateTime: 2012/05/30 13:28:51 $ */ |
| /* $Change: 832332 $ */ |
| /* $Author: tknoll $ */ |
| |
| /*****************************************************************************/ |
| |
| #ifndef __dng_preview__ |
| #define __dng_preview__ |
| |
| /*****************************************************************************/ |
| |
| #include "dng_auto_ptr.h" |
| #include "dng_classes.h" |
| #include "dng_ifd.h" |
| #include "dng_opcode_list.h" |
| #include "dng_point.h" |
| #include "dng_sdk_limits.h" |
| |
| /*****************************************************************************/ |
| |
| class dng_preview |
| { |
| |
| public: |
| |
| dng_preview_info fInfo; |
| |
| protected: |
| |
| dng_preview (); |
| |
| public: |
| |
| virtual ~dng_preview (); |
| |
| virtual dng_basic_tag_set * AddTagSet (dng_tiff_directory &directory) const = 0; |
| |
| virtual void WriteData (dng_host &host, |
| dng_image_writer &writer, |
| dng_basic_tag_set &basic, |
| dng_stream &stream) const = 0; |
| |
| }; |
| |
| /*****************************************************************************/ |
| |
| class dng_image_preview: public dng_preview |
| { |
| |
| public: |
| |
| AutoPtr<dng_image> fImage; |
| |
| private: |
| |
| mutable dng_ifd fIFD; |
| |
| public: |
| |
| dng_image_preview (); |
| |
| virtual ~dng_image_preview (); |
| |
| virtual dng_basic_tag_set * AddTagSet (dng_tiff_directory &directory) const; |
| |
| virtual void WriteData (dng_host &host, |
| dng_image_writer &writer, |
| dng_basic_tag_set &basic, |
| dng_stream &stream) const; |
| |
| private: |
| |
| // Hidden copy constructor and assignment operator. |
| |
| dng_image_preview (const dng_image_preview &preview); |
| |
| dng_image_preview & operator= (const dng_image_preview &preview); |
| |
| }; |
| |
| /*****************************************************************************/ |
| |
| class dng_jpeg_preview: public dng_preview |
| { |
| |
| public: |
| |
| dng_point fPreviewSize; |
| |
| uint16 fPhotometricInterpretation; |
| |
| dng_point fYCbCrSubSampling; |
| |
| uint16 fYCbCrPositioning; |
| |
| AutoPtr<dng_memory_block> fCompressedData; |
| |
| public: |
| |
| dng_jpeg_preview (); |
| |
| virtual ~dng_jpeg_preview (); |
| |
| virtual dng_basic_tag_set * AddTagSet (dng_tiff_directory &directory) const; |
| |
| virtual void WriteData (dng_host &host, |
| dng_image_writer &writer, |
| dng_basic_tag_set &basic, |
| dng_stream &stream) const; |
| |
| void SpoolAdobeThumbnail (dng_stream &stream) const; |
| |
| private: |
| |
| // Hidden copy constructor and assignment operator. |
| |
| dng_jpeg_preview (const dng_jpeg_preview &preview); |
| |
| dng_jpeg_preview & operator= (const dng_jpeg_preview &preview); |
| |
| }; |
| |
| /*****************************************************************************/ |
| |
| class dng_raw_preview: public dng_preview |
| { |
| |
| public: |
| |
| AutoPtr<dng_image> fImage; |
| |
| AutoPtr<dng_memory_block> fOpcodeList2Data; |
| |
| int32 fCompressionQuality; |
| |
| private: |
| |
| mutable dng_ifd fIFD; |
| |
| public: |
| |
| dng_raw_preview (); |
| |
| virtual ~dng_raw_preview (); |
| |
| virtual dng_basic_tag_set * AddTagSet (dng_tiff_directory &directory) const; |
| |
| virtual void WriteData (dng_host &host, |
| dng_image_writer &writer, |
| dng_basic_tag_set &basic, |
| dng_stream &stream) const; |
| |
| private: |
| |
| // Hidden copy constructor and assignment operator. |
| |
| dng_raw_preview (const dng_raw_preview &preview); |
| |
| dng_raw_preview & operator= (const dng_raw_preview &preview); |
| |
| }; |
| |
| /*****************************************************************************/ |
| |
| class dng_mask_preview: public dng_preview |
| { |
| |
| public: |
| |
| AutoPtr<dng_image> fImage; |
| |
| int32 fCompressionQuality; |
| |
| private: |
| |
| mutable dng_ifd fIFD; |
| |
| public: |
| |
| dng_mask_preview (); |
| |
| virtual ~dng_mask_preview (); |
| |
| virtual dng_basic_tag_set * AddTagSet (dng_tiff_directory &directory) const; |
| |
| virtual void WriteData (dng_host &host, |
| dng_image_writer &writer, |
| dng_basic_tag_set &basic, |
| dng_stream &stream) const; |
| |
| private: |
| |
| // Hidden copy constructor and assignment operator. |
| |
| dng_mask_preview (const dng_mask_preview &preview); |
| |
| dng_mask_preview & operator= (const dng_mask_preview &preview); |
| |
| }; |
| |
| /*****************************************************************************/ |
| |
| class dng_preview_list |
| { |
| |
| private: |
| |
| uint32 fCount; |
| |
| AutoPtr<dng_preview> fPreview [kMaxDNGPreviews]; |
| |
| public: |
| |
| dng_preview_list (); |
| |
| ~dng_preview_list (); |
| |
| uint32 Count () const |
| { |
| return fCount; |
| } |
| |
| const dng_preview & Preview (uint32 index) const |
| { |
| return *(fPreview [index]); |
| } |
| |
| void Append (AutoPtr<dng_preview> &preview); |
| |
| }; |
| |
| /*****************************************************************************/ |
| |
| #endif |
| |
| /*****************************************************************************/ |