xref: /libtiff-4.0.7/contrib/tags/xtiffiop.h (revision bfbc7176)
1 /*
2  * Private Extended TIFF library interface.
3  *
4  *  uses private LIBTIFF interface.
5  *
6  *  The portions of this module marked "XXX" should be
7  *  modified to support your tags instead.
8  *
9  *  written by: Niles D. Ritter
10  *
11  */
12 
13 #ifndef __xtiffiop_h
14 #define __xtiffiop_h
15 
16 #include "tiffiop.h"
17 #include "xtiffio.h"
18 
19 /**********************************************************************
20  *               User Configuration
21  **********************************************************************/
22 
23 /* XXX - Define number of your extended tags here */
24 #define NUM_XFIELD 3
25 #define XFIELD_BASE (FIELD_LAST-NUM_XFIELD)
26 
27 /*  XXX - Define your Tag Fields here  */
28 #define	FIELD_EXAMPLE_MULTI     (XFIELD_BASE+0)
29 #define	FIELD_EXAMPLE_SINGLE    (XFIELD_BASE+1)
30 #define	FIELD_EXAMPLE_ASCII      (XFIELD_BASE+2)
31 
32 
33 /* XXX - Define Private directory tag structure here */
34 struct XTIFFDirectory {
35 	uint16	 xd_num_multi; /* dir-count for the multi tag */
36 	double*  xd_example_multi;
37 	uint32   xd_example_single;
38 	char*    xd_example_ascii;
39 };
40 typedef struct XTIFFDirectory XTIFFDirectory;
41 
42 /**********************************************************************
43  *    Nothing below this line should need to be changed by the user.
44  **********************************************************************/
45 
46 struct xtiff {
47 	TIFF 		*xtif_tif;	/* parent TIFF pointer */
48 	uint32		xtif_flags;
49 #define       XTIFFP_PRINT   0x00000001
50 	XTIFFDirectory	xtif_dir;	/* internal rep of current directory */
51 	TIFFVSetMethod	xtif_vsetfield;	/* inherited tag set routine */
52 	TIFFVGetMethod	xtif_vgetfield;	/* inherited tag get routine */
53 	TIFFPrintMethod	xtif_printdir;  /* inherited dir print method */
54 };
55 typedef struct xtiff xtiff;
56 
57 
58 #define PARENT(xt,pmember) ((xt)->xtif_ ## pmember)
59 #define TIFFMEMBER(tf,pmember) ((tf)->tif_ ## pmember)
60 #define XTIFFDIR(tif) ((xtiff *)TIFFMEMBER(tif,clientdir))
61 
62 /* Extended TIFF flags */
63 #define XTIFF_INITIALIZED 0x80000000
64 
65 #endif /* __xtiffiop_h */
66 /*
67  * Local Variables:
68  * mode: c
69  * c-basic-offset: 8
70  * fill-column: 78
71  * End:
72  */
73