24 #ifndef __EXIF_DATA_H__
25 #define __EXIF_DATA_H__
31 #include <libexif/exif-byte-order.h>
32 #include <libexif/exif-data-type.h>
33 #include <libexif/exif-ifd.h>
39 typedef struct _ExifDataPrivate ExifDataPrivate;
57 ExifDataPrivate *priv;
84 ExifData *exif_data_new_from_file (
const char *path);
92 ExifData *exif_data_new_from_data (
const unsigned char *data,
105 void exif_data_load_data (
ExifData *data,
const unsigned char *d,
118 void exif_data_save_data (
ExifData *data,
unsigned char **d,
121 void exif_data_ref (
ExifData *data);
122 void exif_data_unref (
ExifData *data);
123 void exif_data_free (
ExifData *data);
130 ExifByteOrder exif_data_get_byte_order (
ExifData *data);
139 void exif_data_set_byte_order (
ExifData *data, ExifByteOrder order);
160 typedef void (* ExifDataForeachContentFunc) (
ExifContent *,
void *user_data);
168 void exif_data_foreach_content (
ExifData *data,
169 ExifDataForeachContentFunc func,
217 void exif_data_set_data_type (
ExifData *d, ExifDataType dt);
224 ExifDataType exif_data_get_data_type (
ExifData *d);
231 void exif_data_dump (
ExifData *data);
248 #define exif_data_get_entry(d,t) \
249 (exif_content_get_entry(d->ifd[EXIF_IFD_0],t) ? \
250 exif_content_get_entry(d->ifd[EXIF_IFD_0],t) : \
251 exif_content_get_entry(d->ifd[EXIF_IFD_1],t) ? \
252 exif_content_get_entry(d->ifd[EXIF_IFD_1],t) : \
253 exif_content_get_entry(d->ifd[EXIF_IFD_EXIF],t) ? \
254 exif_content_get_entry(d->ifd[EXIF_IFD_EXIF],t) : \
255 exif_content_get_entry(d->ifd[EXIF_IFD_GPS],t) ? \
256 exif_content_get_entry(d->ifd[EXIF_IFD_GPS],t) : \
257 exif_content_get_entry(d->ifd[EXIF_IFD_INTEROPERABILITY],t) ? \
258 exif_content_get_entry(d->ifd[EXIF_IFD_INTEROPERABILITY],t) : NULL)