1 
2 #ifndef INSTTYPES_H
3 
4 /* Device and Instrument suported types definitions. */
5 
6 /*
7  * Argyll Color Correction System
8  *
9  * Author: Graeme W. Gill
10  * Date:   15/3/2001
11  *
12  * Copyright 2001 - 2013 Graeme W. Gill
13  * All rights reserved.
14  *
15  * This material is licenced under the GNU GENERAL PUBLIC LICENSE Version 2 or later :-
16  * see the License2.txt file for licencing details.
17  *
18  */
19 
20 #ifdef __cplusplus
21 	extern "C" {
22 #endif
23 
24 
25 /* ----------------------------- */
26 /* Possible types of devices and instruments */
27 typedef enum {
28     devUnknown      = 0,		/* Undefined Device */
29 
30 	/* Color measurement instruments */
31     instDTP22,					/* Xrite DTP22 (Digital Swatchbook)  */
32     instDTP41,       			/* Xrite DTP41 */
33     instDTP51, 					/* Xrite DTP51 */
34     instSpectrolino, 			/* GretagMacbeth Spectrolino */
35     instSpectroScan, 			/* GretagMacbeth SpectroScan */
36     instSpectroScanT, 			/* GretagMacbeth SpectroScanT */
37 	instSpectrocam,				/* Avantes Spectrocam */
38 	instSpecbos1201,			/* JETI specbos 1201 */
39 	instSpecbos,				/* JETI specbos XXXX */
40 	instSpectraval,				/* JETI spectraval 1501, 1511 */
41 	instKleinK10,				/* Klein K10-A */
42 	instSMCube,					/* SwatchMate Cube */
43     instDTP20,					/* Xrite DTP20 (Pulse)  */
44     instDTP92, 					/* Xrite DTP92 */
45     instDTP94, 					/* Xrite DTP94 (Optix) */
46 	instI1Disp1,				/* GretagMacbeth i1 Display 1 */
47 	instI1Disp2,				/* GretagMacbeth i1 Display 2 */
48 	instI1Disp3,				/* Xrite i1 DisplayPro, ColorMunki Display */
49 	instI1Monitor,				/* GretagMacbeth i1 Monitor */
50 	instI1Pro,					/* GretagMacbeth i1 Pro */
51 	instI1Pro2,					/* X-Rite i1 Pro2 */
52 	instColorMunki,				/* X-Rite ColorMunki */
53 	instHCFR,					/* Colorimtre HCFR */
54 	instSpyder1,				/* Datacolor/ColorVision Spyder1 */
55 	instSpyder2,				/* Datacolor/ColorVision Spyder2 */
56 	instSpyder3,				/* Datacolor Spyder3 */
57 	instSpyder4,				/* Datacolor Spyder4 */
58 	instSpyder5,				/* Datacolor Spyder5 */
59 	instHuey,					/* GretagMacbeth Huey */
60 	instSmile,					/* X-rite Colormunki Smile */
61 	instEX1,					/* Image Engineering EX1 */
62 	instColorHug,				/* Hughski ColorHug */
63 	instColorHug2,				/* Hughski ColorHug2 */
64 
65 
66 	instFakeDisp = 9998,		/* Fake display & instrument device id */
67 
68 	/* 3D cLUT box */
69 	// 20000
70 
71 	/* Video test patern generator box */
72 	// 30000
73 
74 	/* Printers */
75 	devEpsonR1800 = 40000		/* Epson R1800 printer */
76 
77 } devType;
78 
79 /* Aliases for backwards compatibility */
80 #define instUnknown devUnknown
81 typedef devType instType;
82 typedef devType cLUTType;
83 typedef devType vtpgType;
84 typedef devType printerType;
85 
86 struct _icoms;					/* Forward declarations */
87 enum _icom_type;
88 
89 /* Utility functions in libinsttypes */
90 
91 /* Given a device type, return the corrsponding */
92 /* category */
93 //extern _icom_type inst_category(instType itype);
94 
95 /* Given its instrument type, return the matching */
96 /* short instrument name (static string), */
97 extern char *inst_sname(instType itype);
98 
99 /* Given its instrument type, return the matching */
100 /* long instrument identification name (static string), */
101 extern char *inst_name(instType itype);
102 
103 
104 /* Given an instrument long identification name, return the matching */
105 /* instType, or instUnknown if not matched */
106 extern instType inst_enum(char *name);
107 
108 
109 #ifdef ENABLE_USB
110 /* Given a USB vendor and product ID, */
111 /* return the matching instrument type, or */
112 /* instUnknown if none match. */
113 extern instType inst_usb_match(
114 unsigned int idVendor,
115 unsigned int idProduct,
116 int nep);					/* Number of end points (0 for prelim match) */
117 #endif /* ENABLE_USB */
118 
119 
120 /* Should deprecate the following. It should be replaced with a */
121 /* method in the instrument class that returns its configured spectrum, */
122 /* and the spectrum should be embedded in the .ti3 file, not the instrument */
123 /* name. */
124 
125 /* Fill in an instruments illuminant spectrum. */
126 /* Return 0 on sucess, 1 if not not applicable. */
127 extern int inst_illuminant(xspect *sp, instType itype);
128 
129 
130 #ifdef __cplusplus
131 	}
132 #endif
133 
134 #define INSTTYPES_H
135 #endif /* INSTTYPES_H */
136 
137