#ifndef __EXIF_INT_H
#define __EXIF_INT_H
+#include <cstdio>
+
#include "exif.h"
/*
*-----------------------------------------------------------------------------
*/
-typedef enum {
+enum ExifByteOrder {
EXIF_BYTE_ORDER_INTEL,
EXIF_BYTE_ORDER_MOTOROLA
-} ExifByteOrder;
+};
-typedef struct _ExifFormatAttrib ExifFormatAttrib;
-struct _ExifFormatAttrib
+struct ExifFormatAttrib
{
ExifFormatType type;
guint size;
*-----------------------------------------------------------------------------
*/
-typedef struct _ExifMarker ExifMarker;
-typedef struct _ExifTextList ExifTextList;
-
-struct _ExifData
+struct ExifData
{
gchar *path;
GList *items; /**< list of (ExifItem *) */
GList *current; /**< for exif_get_next_item */
};
-
-struct _ExifItem
+struct ExifTextList
{
- ExifFormatType format;
- guint tag;
- const ExifMarker *marker;
- guint elements;
- gpointer data;
- guint data_len;
+ gint value;
+ const gchar *description;
};
-struct _ExifMarker
+struct ExifMarker
{
guint tag;
ExifFormatType format;
gint components;
- gchar *key;
- gchar *description;
+ const gchar *key;
+ const gchar *description;
ExifTextList *list;
};
-#define EXIF_MARKER_LIST_END { 0x0000, EXIF_FORMAT_UNKNOWN, 0, NULL, NULL, NULL }
-
-struct _ExifTextList
+struct ExifItem
{
- gint value;
- const gchar *description;
+ ExifFormatType format;
+ guint tag;
+ const ExifMarker *marker;
+ guint elements;
+ gpointer data;
+ guint data_len;
};
+#define EXIF_MARKER_LIST_END { 0x0000, EXIF_FORMAT_UNKNOWN, 0, NULL, NULL, NULL }
+
#define EXIF_TEXT_LIST_END { -1, NULL }
*/
/**
- * \headerfile exif_write_data_list
+ * @headerfile exif_write_data_list
* usually for debugging to stdout
*/
void exif_write_data_list(ExifData *exif, FILE *f, gint human_readable_list);
gint level,
const ExifMarker *list);
-gint exif_tiff_directory_offset(guchar *data, const guint len,
+gint exif_tiff_directory_offset(guchar *data, guint len,
guint *offset, ExifByteOrder *bo);
gint exif_tiff_parse(ExifData *exif, guchar *tiff, guint size, ExifMarker *list);