00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __EXIF_UTILS_H__
00022 #define __EXIF_UTILS_H__
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00028 #include <libexif/exif-byte-order.h>
00029 #include <libexif/exif-format.h>
00030 #include <libexif/_stdint.h>
00031
00032
00033
00034
00035
00036 typedef unsigned char ExifByte;
00037 typedef signed char ExifSByte;
00038 typedef char * ExifAscii;
00039 typedef uint16_t ExifShort;
00040 typedef int16_t ExifSShort;
00041 typedef uint32_t ExifLong;
00042 typedef struct {ExifLong numerator; ExifLong denominator;} ExifRational;
00043 typedef char ExifUndefined;
00044 typedef int32_t ExifSLong;
00045 typedef struct {ExifSLong numerator; ExifSLong denominator;} ExifSRational;
00046
00047
00048 ExifShort exif_get_short (const unsigned char *b, ExifByteOrder order);
00049 ExifSShort exif_get_sshort (const unsigned char *b, ExifByteOrder order);
00050 ExifLong exif_get_long (const unsigned char *b, ExifByteOrder order);
00051 ExifSLong exif_get_slong (const unsigned char *b, ExifByteOrder order);
00052 ExifRational exif_get_rational (const unsigned char *b, ExifByteOrder order);
00053 ExifSRational exif_get_srational (const unsigned char *b, ExifByteOrder order);
00054
00055 void exif_set_short (unsigned char *b, ExifByteOrder order,
00056 ExifShort value);
00057 void exif_set_sshort (unsigned char *b, ExifByteOrder order,
00058 ExifSShort value);
00059 void exif_set_long (unsigned char *b, ExifByteOrder order,
00060 ExifLong value);
00061 void exif_set_slong (unsigned char *b, ExifByteOrder order,
00062 ExifSLong value);
00063 void exif_set_rational (unsigned char *b, ExifByteOrder order,
00064 ExifRational value);
00065 void exif_set_srational (unsigned char *b, ExifByteOrder order,
00066 ExifSRational value);
00067
00068 void exif_convert_utf16_to_utf8 (char *out, const unsigned short *in, int maxlen);
00069
00070
00071 void exif_array_set_byte_order (ExifFormat, unsigned char *, unsigned int,
00072 ExifByteOrder o_orig, ExifByteOrder o_new);
00073
00074 #undef MIN
00075 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
00076
00077 #undef MAX
00078 #define MAX(a, b) (((a) > (b)) ? (a) : (b))
00079
00080
00081 #define EXIF_TAG_SUBSEC_TIME EXIF_TAG_SUB_SEC_TIME
00082
00083 #ifdef __cplusplus
00084 }
00085 #endif
00086
00087 #endif