summaryrefslogtreecommitdiff
path: root/spectro/insttypes.h
blob: 8306bc87af192dbb1401027eeaeb35531471449c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136

#ifndef INSTTYPES_H

/* Device and Instrument suported types definitions. */

/* 
 * Argyll Color Correction System
 *
 * Author: Graeme W. Gill
 * Date:   15/3/2001
 *
 * Copyright 2001 - 2013 Graeme W. Gill
 * All rights reserved.
 *
 * This material is licenced under the GNU GENERAL PUBLIC LICENSE Version 2 or later :-
 * see the License2.txt file for licencing details.
 *
 */

#ifdef __cplusplus
	extern "C" {
#endif


/* ----------------------------- */
/* Possible types of devices and instruments */
typedef enum {
    devUnknown      = 0,		/* Undefined Device */

	/* Color measurement instruments */
    instDTP22,					/* Xrite DTP22 (Digital Swatchbook)  */
    instDTP41,       			/* Xrite DTP41 */
    instDTP51, 					/* Xrite DTP51 */
    instSpectrolino, 			/* GretagMacbeth Spectrolino */
    instSpectroScan, 			/* GretagMacbeth SpectroScan */
    instSpectroScanT, 			/* GretagMacbeth SpectroScanT */
	instSpectrocam,				/* Avantes Spectrocam */
	instSpecbos1201,			/* JETI specbos 1201 */
	instSpecbos,				/* JETI specbos XXXX */
	instSpectraval,				/* JETI spectraval 1501, 1511 */
	instKleinK10,				/* Klein K10-A */
	instSMCube,					/* SwatchMate Cube */
    instDTP20,					/* Xrite DTP20 (Pulse)  */
    instDTP92, 					/* Xrite DTP92 */
    instDTP94, 					/* Xrite DTP94 (Optix) */
	instI1Disp1,				/* GretagMacbeth i1 Display 1 */
	instI1Disp2,				/* GretagMacbeth i1 Display 2 */
	instI1Disp3,				/* Xrite i1 DisplayPro, ColorMunki Display */
	instI1Monitor,				/* GretagMacbeth i1 Monitor */
	instI1Pro,					/* GretagMacbeth i1 Pro */
	instI1Pro2,					/* X-Rite i1 Pro2 */
	instColorMunki,				/* X-Rite ColorMunki */
	instHCFR,					/* Colorimtre HCFR */
	instSpyder1,				/* Datacolor/ColorVision Spyder1 */
	instSpyder2,				/* Datacolor/ColorVision Spyder2 */
	instSpyder3,				/* Datacolor Spyder3 */
	instSpyder4,				/* Datacolor Spyder4 */
	instSpyder5,				/* Datacolor Spyder5 */
	instHuey,					/* GretagMacbeth Huey */
	instSmile,					/* X-rite Colormunki Smile */
	instEX1,					/* Image Engineering EX1 */
	instColorHug,				/* Hughski ColorHug */
	instColorHug2,				/* Hughski ColorHug2 */


	instFakeDisp = 9998,		/* Fake display & instrument device id */

	/* 3D cLUT box */
	// 20000

	/* Video test patern generator box */
	// 30000

	/* Printers */
	devEpsonR1800 = 40000		/* Epson R1800 printer */

} devType;

/* Aliases for backwards compatibility */
#define instUnknown devUnknown
typedef devType instType;
typedef devType cLUTType;
typedef devType vtpgType;
typedef devType printerType;

struct _icoms;					/* Forward declarations */
enum _icom_type;

/* Utility functions in libinsttypes */

/* Given a device type, return the corrsponding */
/* category */
//extern _icom_type inst_category(instType itype);

/* Given its instrument type, return the matching */
/* short instrument name (static string), */
extern char *inst_sname(instType itype);

/* Given its instrument type, return the matching */
/* long instrument identification name (static string), */
extern char *inst_name(instType itype);


/* Given an instrument long identification name, return the matching */
/* instType, or instUnknown if not matched */
extern instType inst_enum(char *name);


#ifdef ENABLE_USB
/* Given a USB vendor and product ID, */
/* return the matching instrument type, or */
/* instUnknown if none match. */
extern instType inst_usb_match(
unsigned int idVendor,
unsigned int idProduct,
int nep);					/* Number of end points (0 for prelim match) */
#endif /* ENABLE_USB */


/* Should deprecate the following. It should be replaced with a */
/* method in the instrument class that returns its configured spectrum, */
/* and the spectrum should be embedded in the .ti3 file, not the instrument */
/* name. */

/* Fill in an instruments illuminant spectrum. */
/* Return 0 on sucess, 1 if not not applicable. */
extern int inst_illuminant(xspect *sp, instType itype);


#ifdef __cplusplus
	}
#endif

#define INSTTYPES_H
#endif /* INSTTYPES_H */