Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
[geeqie.git] / src / format_raw.h
index 8531e01..d46fca7 100644 (file)
@@ -22,15 +22,30 @@ typedef enum {
        FORMAT_RAW_MATCH_TIFF_MAKE
 } FormatRawMatchType;
 
+typedef enum {
+       FORMAT_RAW_EXIF_NONE,
+       FORMAT_RAW_EXIF_TIFF,
+       FORMAT_RAW_EXIF_JPEG,
+       FORMAT_RAW_EXIF_IFD_II,
+       FORMAT_RAW_EXIF_IFD_MM,
+       FORMAT_RAW_EXIF_PROPRIETARY
+} FormatRawExifType;
+
 typedef gint (* FormatRawParseFunc)(unsigned char *data, const guint len,
                                    guint *image_offset, guint *exif_offset);
 
+typedef gint (* FormatRawExifParseFunc)(unsigned char *data, const guint len,
+                                       ExifData *exif);
+
 gint format_raw_img_exif_offsets(unsigned char *data, const guint len,
                                 guint *image_offset, guint *exif_offset);
 gint format_raw_img_exif_offsets_fd(int fd, const gchar *path,
                                    unsigned char *header_data, const guint header_len,
                                    guint *image_offset, guint *exif_offset);
 
+FormatRawExifType format_raw_exif_offset(unsigned char *data, const guint len, guint *exif_offset,
+                                        FormatRawExifParseFunc *exif_parse_func);
+
 
 typedef enum {
        FORMAT_EXIF_MATCH_MAKE,
@@ -44,5 +59,23 @@ gint format_exif_makernote_parse(ExifData *exif, unsigned char *tiff, guint offs
                                 guint size, ExifByteOrder bo);
 
 
+#define DEBUG_RAW_TIFF 0
+
+#if DEBUG_RAW_TIFF
+
+#define FORMAT_RAW_DEBUG_TIFF { "", \
+                               FORMAT_RAW_MATCH_MAGIC,     0, "II", 2, \
+                               FORMAT_RAW_EXIF_NONE, NULL, \
+                               "Tiff debugger II", format_debug_tiff_raw }, \
+                             { "", \
+                               FORMAT_RAW_MATCH_MAGIC,     0, "MM", 2, \
+                               FORMAT_RAW_EXIF_NONE, NULL, \
+                               "Tiff debugger MM", format_debug_tiff_raw }
+
+/* used for debugging only */
+gint format_debug_tiff_raw(unsigned char *data, const guint len,
+                          guint *image_offset, guint *exif_offset);
+#endif
+
 #endif