1 /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
2 /*          EXIFPROBE - TIFF/JPEG/EXIF image file probe               */
3 /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
4 /* Copyright (C) 2002 by Duane H. Hesser. All rights reserved.        */
5 /*                                                                    */
6 /* See the file LICENSE.EXIFPROBE for terms of use.                   */
7 /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
8 
9 /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
10 /* @(#) $Id: maker_datadefs.h,v 1.1 2005/05/25 15:38:08 alex Exp $ */
11 /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
12 
13 
14 #ifndef MAKER_DATADEFS_INCLUDED
15 #define MAKER_DATADEFS_INCLUDED
16 
17 #include "maker.h"
18 
19 struct maker_scheme {
20     unsigned long scheme_type;
21     unsigned long note_fileoffset;
22     unsigned long note_length;
23     char *id;                   /* Initial id string, if present      */
24     int id_length;              /* length of ID string, if present    */
25     int tiffhdr_offset;         /* from start of section, if present  */
26     int ifd_offset;             /* from start of section or tiff hdr  */
27     int num_entries;            /* read from the start of the IFD     */
28     int offsets_relative_to;    /* tiffheader, start of note, entry   */
29     int no_nextifd_offset;      /* some don't include nextifd_offset  */
30     int make;                   /* the internal identifier for make   */
31     int model;                  /* the internal identifier for model  */
32     int note_version;        /* for makes with multiple note versions */
33     int tagset;              /* usually same as model_version...      */
34     unsigned long fileoffset_base; /* entry offsets relative to this  */
35                                    /* if not entry-relative           */
36     unsigned short tiff_byteorder; /* main file byte order            */
37     unsigned short note_byteorder; /* may be different                */
38     struct ifd_entry first_entry;
39 };
40 
41 struct camera_id {
42     char *name;
43     int namelen;
44     int id;
45     int noteversion;
46     int notetagset;
47 };
48 
49 struct camera_name {
50     char *name;
51     int namelen;
52     int id;
53     struct camera_id *model;
54 };
55 
56 #endif /* MAKER_DATADEFS_INCLUDED */
57