#ifndef __DSTHAL_PHOTOVIEW_H__ #define __DSTHAL_PHOTOVIEW_H__ #if defined __cplusplus extern "C" { #endif #define ThumbnailResoltuion 180 #define JpegResolution 1366 #define ThumbnailFrameSize 200 typedef enum { En_IFD_0, En_ExifIFD, En_GPSIFD, En_Interoperability, En_IFD_1, En_UnknownIFD } En_IFDState; typedef struct ExifInfo { DS_U16 ExifTagNumber; DS_U16 DataFormat; DS_U32 nComponent; DS_U32 OffsetData; char * EntryValue; struct ExifInfo *next; DS_U16 ThumbnailWidth; DS_U16 ThumbnailHeight; char** ThumbnailImage; En_IFDState en_IfdState; DS_U32 entAddr; DS_U8 ThumbnailFreed; } ExifInfo; typedef struct JpgFileInfo { char Name[256]; DS_U16 Index; DS_U32 JpgFileSize; time_t JpgModiTime; DS_U32 ImgWidthSize; // jpg ³Êºñ DS_U32 ImgHeightSize; // jpg ³ô?Ì DS_U8 RotationInfo; // rotation Á¤º¸ ExifInfo *exifInfo; struct JpgFileInfo *prev; struct JpgFileInfo *next; DS_U32 pitch; DS_U8 JpegRotateInfo; DS_U8 ThmRotateInfo; DS_U8 NoDraw; }JpgFileInfo; DS_U16 get_thumbnail_pitch(void); int JpegDec(DS_BOOL get_exif_info, char *ThumbFN, char b_GetThumbnail, JpgFileInfo *pfile); typedef enum { MoveUp, MoveDown, MoveLeft, MoveRight }Direction; typedef enum { ZoomIn, ZoomOut }ZoomStatus; typedef enum { EnRotate0, EnRotate90, EnRotate180, EnRotate270, EnRotateEnd }EnRotate; typedef enum JpegMsgID { JPEG_MSG_USB_STATUS=0, JPEG_MSG_FILE_LIST_STATUS, JPEG_MSG_JPEG_DECODE_STATUS, }JpegMsgID; typedef enum Status_MsgID { STATUS_MSG_USB_UN_MOUNT_COMPLETE = 0, STATUS_MSG_USB_UN_MOUNT_FAILED, STATUS_MSG_USB_MOUNT_COMPLETE, STATUS_MSG_USB_MOUNT_FAILED, STATUS_MSG_FILE_LIST_COMPLETE, STATUS_MSG_FILE_LIST_UNCOMPLETE, }Status_MsgID; typedef struct JpegEvent { JpegMsgID msgID; }JpegEvent; typedef struct JpegEvent_Usb { JpegEvent mID; Status_MsgID UsbStatus; // 0: UnMount Succes, 1: UnMount Failed, 2: Mount Success, 3: Mount Failed }JpegEvent_Usb; typedef struct JpegEvent_FileList { JpegEvent mID; Status_MsgID FileListStatus; // 4: File List Complete DS_U32 JpgFileNum; // Jpg file number }JpegEvent_FileList; typedef struct JpegEvent_JpegDec { JpegEvent mID; DS_U32 CurProgress; }JpegEvent_JpegDec; typedef struct tag_UsbEvMsg { Status_MsgID cmd; } UsbEvMsg; void dhl_set_jpeg_callback(void(*func)(JpegEvent*)); typedef enum { ExifByte = 1, ExifAscii, ExifShort, ExifLong, ExifRational, ExifUndefined = 7, ExifSLong = 9, ExifSRational } ExifType; typedef enum{ en_NoThumbnail, en_ThumbnailExist, en_ThumbnailFree, en_ThumbnailKeepIt }enThumbImageFlag; #if defined __cplusplus } #endif #endif