Files
argyllcms/spectro/insttypes.h
2026-08-20 20:28:40 +01:00

162 lines
4.7 KiB
C

#ifndef INSTTYPES_H
/* Device and Instrument suported types definitions. */
/*
* Argyll Color Management 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 */
instSpecbos2501, /* JETI specbos 2501 */
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 */
instI1Pro3, /* X-Rite i1 Pro3 */
instColorMunki, /* X-Rite ColorMunki */
instHCFR, /* Colorimtre HCFR */
instSpyder1, /* Datacolor/ColorVision Spyder1 */
instSpyder2, /* Datacolor/ColorVision Spyder2 */
instSpyder3, /* Datacolor Spyder3 */
instSpyder4, /* Datacolor Spyder4 */
instSpyder5, /* Datacolor Spyder5 */
instSpyderX, /* Datacolor SpyderX */
instSpyderX2, /* Datacolor SpyderX2 */
instSpyder2024, /* Datacolor Spyder 2024 */
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 */
#ifdef ENABLE_VTPGLUT
/* 3D cLUT box */
devRadiance = 20000, /* Lumagen Radiance v3dlut & vtpg */
devPrisma, /* Q, Inc Prisma v3dlut */
/* Video test patern generator box */
// 30000
#endif
} devType;
/* Aliases for backwards compatibility */
#define instUnknown devUnknown
typedef devType instType;
typedef devType vcLUTType;
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 dev_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 success, 1 if not not applicable. */
extern int inst_illuminant(xspect *sp, instType itype);
/* ------------------------------------------------------ */
/* Gretag/X-Rite specific reflective measurement standard */
typedef enum {
xcalstd_none = -2, /* Not set */
xcalstd_native = -1, /* No conversion */
xcalstd_xrdi = 0, /* Historical X-Rite */
xcalstd_gmdi = 1, /* Historical Gretag-Macbeth */
xcalstd_xrga = 2, /* Current X-Rite */
} xcalstd;
/* Return a string for the xcalstd enum */
char *xcalstd2str(xcalstd std);
/* Parse a string to xcalstd, */
/* return xcalstd_none if not recognized */
xcalstd str2xcalstd(char *str);
#ifdef __cplusplus
}
#endif
#define INSTTYPES_H
#endif /* INSTTYPES_H */