00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __EXIF_CONTENT_H__
00022 #define __EXIF_CONTENT_H__
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00028 typedef struct _ExifContent ExifContent;
00029 typedef struct _ExifContentPrivate ExifContentPrivate;
00030
00031 #include <libexif/exif-tag.h>
00032 #include <libexif/exif-entry.h>
00033 #include <libexif/exif-data.h>
00034 #include <libexif/exif-log.h>
00035 #include <libexif/exif-mem.h>
00036
00037 struct _ExifContent
00038 {
00039 ExifEntry **entries;
00040 unsigned int count;
00041
00042
00043 ExifData *parent;
00044
00045 ExifContentPrivate *priv;
00046 };
00047
00048
00049 ExifContent *exif_content_new (void);
00050 ExifContent *exif_content_new_mem (ExifMem *);
00051 void exif_content_ref (ExifContent *content);
00052 void exif_content_unref (ExifContent *content);
00053 void exif_content_free (ExifContent *content);
00054
00055 void exif_content_add_entry (ExifContent *, ExifEntry *);
00056 void exif_content_remove_entry (ExifContent *, ExifEntry *);
00057 ExifEntry *exif_content_get_entry (ExifContent *, ExifTag);
00058 void exif_content_fix (ExifContent *);
00059
00060 typedef void (* ExifContentForeachEntryFunc) (ExifEntry *, void *user_data);
00061 void exif_content_foreach_entry (ExifContent *content,
00062 ExifContentForeachEntryFunc func,
00063 void *user_data);
00064
00065
00066 ExifIfd exif_content_get_ifd (ExifContent *);
00067 #define exif_content_get_value(c,t,v,m) \
00068 (exif_content_get_entry (c,t) ? \
00069 exif_entry_get_value (exif_content_get_entry (c,t),v,m) : NULL)
00070
00071 void exif_content_dump (ExifContent *content, unsigned int indent);
00072 void exif_content_log (ExifContent *content, ExifLog *log);
00073
00074 #ifdef __cplusplus
00075 }
00076 #endif
00077
00078 #endif