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