Use util_clip_triangle() in pan_item_tri_new()
[geeqie.git] / src / exif-int.h
index 2f75b50..441de2d 100644 (file)
@@ -1,32 +1,29 @@
 /*
- * Geeqie
- * (C) 2006 John Ellis
- *  Copyright (C) 2008 - 2012 The Geeqie Team
+ * Copyright (C) 2006 John Ellis
+ * Copyright (C) 2008 - 2016 The Geeqie Team
  *
- *  Authors:
- *    Support for Exif file format, originally written by Eric Swalens.
- *    Modified by Quy Tonthat
- *    Reimplemented with generic data storage by John Ellis
+ * Authors: Eric Swalens, Quy Tonthat, John Ellis
  *
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
 
 #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;
@@ -49,8 +45,7 @@ struct _ExifFormatAttrib
        const gchar *description;
 };
 
-/* the list of known tag data formats */
-extern ExifFormatAttrib ExifFormatList[];
+extern ExifFormatAttrib ExifFormatList[]; /**< the list of known tag data formats */
 
 
 /*
@@ -59,45 +54,41 @@ extern ExifFormatAttrib ExifFormatList[];
  *-----------------------------------------------------------------------------
  */
 
-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 */
+       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 }
 
 
@@ -111,14 +102,11 @@ struct _ExifTextList
 
 
 
-/* the known exif tags list */
-extern ExifMarker ExifKnownMarkersList[];
+extern ExifMarker ExifKnownMarkersList[]; /**< the known exif tags list */
 
-/* the unknown tags utilize this generic list */
-extern ExifMarker ExifUnknownMarkersList[];
+extern ExifMarker ExifUnknownMarkersList[]; /**< the unknown tags utilize this generic list */
 
-/* the list of specially formatted keys, for human readable output */
-extern ExifFormattedText ExifFormattedList[];
+extern ExifFormattedText ExifFormattedList[]; /**< the list of specially formatted keys, for human readable output */
 
 
 /*
@@ -127,8 +115,10 @@ extern ExifFormattedText ExifFormattedList[];
  *-----------------------------------------------------------------------------
  */
 
-
-/* usually for debugging to stdout */
+/**
+ * @headerfile exif_write_data_list
+ * usually for debugging to stdout
+ */
 void exif_write_data_list(ExifData *exif, FILE *f, gint human_readable_list);
 
 
@@ -160,7 +150,7 @@ gint exif_parse_IFD_table(ExifData *exif,
                          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);