| 1 | #ifndef __DSTHAL_PHOTOVIEW_H__ |
|---|
| 2 | #define __DSTHAL_PHOTOVIEW_H__ |
|---|
| 3 | |
|---|
| 4 | #if defined __cplusplus |
|---|
| 5 | extern "C" { |
|---|
| 6 | #endif |
|---|
| 7 | |
|---|
| 8 | |
|---|
| 9 | #define ThumbnailResoltuion 180 |
|---|
| 10 | #define JpegResolution 1366 |
|---|
| 11 | |
|---|
| 12 | #define ThumbnailFrameSize 200 |
|---|
| 13 | |
|---|
| 14 | typedef enum |
|---|
| 15 | { |
|---|
| 16 | En_IFD_0, |
|---|
| 17 | En_ExifIFD, |
|---|
| 18 | En_GPSIFD, |
|---|
| 19 | En_Interoperability, |
|---|
| 20 | En_IFD_1, |
|---|
| 21 | En_UnknownIFD |
|---|
| 22 | } En_IFDState; |
|---|
| 23 | |
|---|
| 24 | |
|---|
| 25 | typedef struct ExifInfo |
|---|
| 26 | { |
|---|
| 27 | DS_U16 ExifTagNumber; |
|---|
| 28 | DS_U16 DataFormat; |
|---|
| 29 | DS_U32 nComponent; |
|---|
| 30 | DS_U32 OffsetData; |
|---|
| 31 | char * EntryValue; |
|---|
| 32 | |
|---|
| 33 | struct ExifInfo *next; |
|---|
| 34 | DS_U16 ThumbnailWidth; |
|---|
| 35 | DS_U16 ThumbnailHeight; |
|---|
| 36 | char** ThumbnailImage; |
|---|
| 37 | |
|---|
| 38 | En_IFDState en_IfdState; |
|---|
| 39 | DS_U32 entAddr; |
|---|
| 40 | DS_U8 ThumbnailFreed; |
|---|
| 41 | } ExifInfo; |
|---|
| 42 | |
|---|
| 43 | |
|---|
| 44 | typedef struct JpgFileInfo |
|---|
| 45 | { |
|---|
| 46 | char Name[256]; |
|---|
| 47 | DS_U16 Index; |
|---|
| 48 | DS_U32 JpgFileSize; |
|---|
| 49 | time_t JpgModiTime; |
|---|
| 50 | DS_U32 ImgWidthSize; // jpg ³Êºñ |
|---|
| 51 | DS_U32 ImgHeightSize; // jpg ³ô?Ì |
|---|
| 52 | DS_U8 RotationInfo; // rotation Á¤º¸ |
|---|
| 53 | ExifInfo *exifInfo; |
|---|
| 54 | struct JpgFileInfo *prev; |
|---|
| 55 | struct JpgFileInfo *next; |
|---|
| 56 | DS_U32 pitch; |
|---|
| 57 | DS_U8 JpegRotateInfo; |
|---|
| 58 | DS_U8 ThmRotateInfo; |
|---|
| 59 | DS_U8 NoDraw; |
|---|
| 60 | }JpgFileInfo; |
|---|
| 61 | |
|---|
| 62 | DS_U16 get_thumbnail_pitch(void); |
|---|
| 63 | |
|---|
| 64 | int JpegDec(DS_BOOL get_exif_info, char *ThumbFN, char b_GetThumbnail, JpgFileInfo *pfile); |
|---|
| 65 | |
|---|
| 66 | typedef enum |
|---|
| 67 | { |
|---|
| 68 | MoveUp, |
|---|
| 69 | MoveDown, |
|---|
| 70 | MoveLeft, |
|---|
| 71 | MoveRight |
|---|
| 72 | }Direction; |
|---|
| 73 | |
|---|
| 74 | typedef enum |
|---|
| 75 | { |
|---|
| 76 | ZoomIn, |
|---|
| 77 | ZoomOut |
|---|
| 78 | }ZoomStatus; |
|---|
| 79 | |
|---|
| 80 | typedef enum |
|---|
| 81 | { |
|---|
| 82 | EnRotate0, |
|---|
| 83 | EnRotate90, |
|---|
| 84 | EnRotate180, |
|---|
| 85 | EnRotate270, |
|---|
| 86 | EnRotateEnd |
|---|
| 87 | }EnRotate; |
|---|
| 88 | |
|---|
| 89 | typedef enum JpegMsgID |
|---|
| 90 | { |
|---|
| 91 | JPEG_MSG_USB_STATUS=0, |
|---|
| 92 | JPEG_MSG_FILE_LIST_STATUS, |
|---|
| 93 | JPEG_MSG_JPEG_DECODE_STATUS, |
|---|
| 94 | }JpegMsgID; |
|---|
| 95 | |
|---|
| 96 | typedef enum Status_MsgID |
|---|
| 97 | { |
|---|
| 98 | STATUS_MSG_USB_UN_MOUNT_COMPLETE = 0, |
|---|
| 99 | STATUS_MSG_USB_UN_MOUNT_FAILED, |
|---|
| 100 | STATUS_MSG_USB_MOUNT_COMPLETE, |
|---|
| 101 | STATUS_MSG_USB_MOUNT_FAILED, |
|---|
| 102 | STATUS_MSG_FILE_LIST_COMPLETE, |
|---|
| 103 | STATUS_MSG_FILE_LIST_UNCOMPLETE, |
|---|
| 104 | }Status_MsgID; |
|---|
| 105 | |
|---|
| 106 | typedef struct JpegEvent |
|---|
| 107 | { |
|---|
| 108 | JpegMsgID msgID; |
|---|
| 109 | }JpegEvent; |
|---|
| 110 | |
|---|
| 111 | typedef struct JpegEvent_Usb |
|---|
| 112 | { |
|---|
| 113 | JpegEvent mID; |
|---|
| 114 | Status_MsgID UsbStatus; // 0: UnMount Succes, 1: UnMount Failed, 2: Mount Success, 3: Mount Failed |
|---|
| 115 | |
|---|
| 116 | }JpegEvent_Usb; |
|---|
| 117 | |
|---|
| 118 | typedef struct JpegEvent_FileList |
|---|
| 119 | { |
|---|
| 120 | JpegEvent mID; |
|---|
| 121 | Status_MsgID FileListStatus; // 4: File List Complete |
|---|
| 122 | DS_U32 JpgFileNum; // Jpg file number |
|---|
| 123 | }JpegEvent_FileList; |
|---|
| 124 | |
|---|
| 125 | typedef struct JpegEvent_JpegDec |
|---|
| 126 | { |
|---|
| 127 | JpegEvent mID; |
|---|
| 128 | DS_U32 CurProgress; |
|---|
| 129 | }JpegEvent_JpegDec; |
|---|
| 130 | |
|---|
| 131 | typedef struct tag_UsbEvMsg |
|---|
| 132 | { |
|---|
| 133 | Status_MsgID cmd; |
|---|
| 134 | } UsbEvMsg; |
|---|
| 135 | |
|---|
| 136 | void dhl_set_jpeg_callback(void(*func)(JpegEvent*)); |
|---|
| 137 | |
|---|
| 138 | typedef enum |
|---|
| 139 | { |
|---|
| 140 | ExifByte = 1, |
|---|
| 141 | ExifAscii, |
|---|
| 142 | ExifShort, |
|---|
| 143 | ExifLong, |
|---|
| 144 | ExifRational, |
|---|
| 145 | ExifUndefined = 7, |
|---|
| 146 | ExifSLong = 9, |
|---|
| 147 | ExifSRational |
|---|
| 148 | } ExifType; |
|---|
| 149 | |
|---|
| 150 | typedef enum{ |
|---|
| 151 | en_NoThumbnail, |
|---|
| 152 | en_ThumbnailExist, |
|---|
| 153 | en_ThumbnailFree, |
|---|
| 154 | en_ThumbnailKeepIt |
|---|
| 155 | }enThumbImageFlag; |
|---|
| 156 | |
|---|
| 157 | #if defined __cplusplus |
|---|
| 158 | } |
|---|
| 159 | #endif |
|---|
| 160 | |
|---|
| 161 | |
|---|
| 162 | #endif |
|---|