00001 00004 /* 00005 * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net> 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the 00019 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00020 * Boston, MA 02110-1301 USA. 00021 */ 00022 00023 #ifndef __EXIF_ENTRY_H__ 00024 #define __EXIF_ENTRY_H__ 00025 00026 #ifdef __cplusplus 00027 extern "C" { 00028 #endif /* __cplusplus */ 00029 00035 typedef struct _ExifEntry ExifEntry; 00036 typedef struct _ExifEntryPrivate ExifEntryPrivate; 00037 00038 #include <libexif/exif-content.h> 00039 #include <libexif/exif-format.h> 00040 #include <libexif/exif-mem.h> 00041 00043 struct _ExifEntry { 00045 ExifTag tag; 00046 00048 ExifFormat format; 00049 00052 unsigned long components; 00053 00057 unsigned char *data; 00058 00061 unsigned int size; 00062 00065 ExifContent *parent; 00066 00068 ExifEntryPrivate *priv; 00069 }; 00070 00071 /* Lifecycle */ 00072 00080 ExifEntry *exif_entry_new (void); 00081 00090 ExifEntry *exif_entry_new_mem (ExifMem *); 00091 00098 void exif_entry_ref (ExifEntry *entry); 00099 00105 void exif_entry_unref (ExifEntry *entry); 00106 00114 void exif_entry_free (ExifEntry *entry); 00115 00125 void exif_entry_initialize (ExifEntry *e, ExifTag tag); 00126 00140 void exif_entry_fix (ExifEntry *entry); 00141 00142 00143 /* For your convenience */ 00144 00163 const char *exif_entry_get_value (ExifEntry *entry, char *val, 00164 unsigned int maxlen); 00165 00172 void exif_entry_dump (ExifEntry *entry, unsigned int indent); 00173 00179 #define exif_entry_get_ifd(e) ((e)?exif_content_get_ifd((e)->parent):EXIF_IFD_COUNT) 00180 00181 #ifdef __cplusplus 00182 } 00183 #endif /* __cplusplus */ 00184 00185 #endif /* __EXIF_ENTRY_H__ */