EXIF library (libexif) API  0.6.24
exif-content.h
Go to the documentation of this file.
1 
4 /*
5  * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the
19  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20  * Boston, MA 02110-1301 USA.
21  */
22 
23 #ifndef LIBEXIF_EXIF_CONTENT_H
24 #define LIBEXIF_EXIF_CONTENT_H
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif /* __cplusplus */
29 
31 typedef struct _ExifContent ExifContent;
32 typedef struct _ExifContentPrivate ExifContentPrivate;
33 
34 #include <libexif/exif-tag.h>
35 #include <libexif/exif-entry.h>
36 #include <libexif/exif-data.h>
37 #include <libexif/exif-log.h>
38 #include <libexif/exif-mem.h>
39 
41 {
42  ExifEntry **entries;
43  unsigned int count;
44 
47 
48  ExifContentPrivate *priv;
49 };
50 
51 /* Lifecycle */
52 
60 
69 
76 void exif_content_ref (ExifContent *content);
77 
83 void exif_content_unref (ExifContent *content);
84 
92 void exif_content_free (ExifContent *content);
93 
102 
110 
120 
128 void exif_content_fix (ExifContent *c);
129 
130 typedef void (* ExifContentForeachEntryFunc) (ExifEntry *, void *user_data);
131 
140  ExifContentForeachEntryFunc func,
141  void *user_data);
142 
148 ExifIfd exif_content_get_ifd (ExifContent *c);
149 
158 #define exif_content_get_value(c,t,v,m) \
159  (exif_content_get_entry (c,t) ? \
160  exif_entry_get_value (exif_content_get_entry (c,t),v,m) : NULL)
161 
168 void exif_content_dump (ExifContent *content, unsigned int indent);
169 
175 void exif_content_log (ExifContent *content, ExifLog *log);
176 
177 #ifdef __cplusplus
178 }
179 #endif /* __cplusplus */
180 
181 #endif /* !defined(LIBEXIF_EXIF_CONTENT_H) */
void exif_content_foreach_entry(ExifContent *content, ExifContentForeachEntryFunc func, void *user_data)
Executes function on each EXIF tag in this IFD in turn.
Definition: exif-content.c:216
void exif_content_free(ExifContent *content)
Actually free the ExifContent.
Definition: exif-content.c:99
Definition: exif-content.h:40
ExifIfd exif_content_get_ifd(ExifContent *c)
Return the IFD number in which the given ExifContent is found.
Definition: exif-content.c:240
void exif_content_ref(ExifContent *content)
Increase reference counter for ExifContent.
Definition: exif-content.c:79
ExifTag
EXIF tags.
Definition: exif-tag.h:34
void exif_content_unref(ExifContent *content)
Decrease reference counter for ExifContent.
Definition: exif-content.c:88
ExifEntry * exif_content_get_entry(ExifContent *content, ExifTag tag)
Return the ExifEntry in this IFD corresponding to the given tag.
Definition: exif-content.c:202
Data found in one EXIF tag.
Definition: exif-entry.h:43
struct _ExifMem ExifMem
ExifMem define a memory allocator.
Definition: exif-mem.h:57
void exif_content_dump(ExifContent *content, unsigned int indent)
Dump contents of the IFD to stdout.
Definition: exif-content.c:120
Log message infrastructure.
void exif_content_add_entry(ExifContent *c, ExifEntry *entry)
Add an EXIF tag to an IFD.
Definition: exif-content.c:139
ExifContent * exif_content_new(void)
Reserve memory for and initialize a new ExifContent.
Definition: exif-content.c:43
Handling EXIF tags.
void exif_content_remove_entry(ExifContent *c, ExifEntry *e)
Remove an EXIF tag from an IFD.
Definition: exif-content.c:163
void exif_content_fix(ExifContent *c)
Fix the IFD to bring it into specification.
Definition: exif-content.c:284
ExifData * parent
Data containing this content.
Definition: exif-content.h:46
void exif_content_log(ExifContent *content, ExifLog *log)
Set the log message object for this IFD.
Definition: exif-content.c:229
Handling EXIF entries.
Define the ExifMem data type and the associated functions.
Defines the ExifData type and the associated functions.
Represents the entire EXIF data found in an image.
Definition: exif-data.h:46
ExifContent * exif_content_new_mem(ExifMem *)
Reserve memory for and initialize new ExifContent using the specified memory allocator.
Definition: exif-content.c:54
struct _ExifLog ExifLog
State maintained by the logging interface.
Definition: exif-log.h:34