diff options
Diffstat (limited to 'app/xcmsdb/SCCDFile.h')
-rw-r--r-- | app/xcmsdb/SCCDFile.h | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/app/xcmsdb/SCCDFile.h b/app/xcmsdb/SCCDFile.h new file mode 100644 index 000000000..a9a7722cd --- /dev/null +++ b/app/xcmsdb/SCCDFile.h @@ -0,0 +1,145 @@ +/* $Xorg: SCCDFile.h,v 1.3 2000/08/17 19:54:13 cpqbld Exp $ */ +/* + * (c) Copyright 1990 Tektronix Inc. + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Tektronix not be used + * in advertising or publicity pertaining to distribution of the software + * without specific, written prior permission. + * + * Tektronix disclaims all warranties with regard to this software, including + * all implied warranties of merchantability and fitness, in no event shall + * Tektronix be liable for any special, indirect or consequential damages or + * any damages whatsoever resulting from loss of use, data or profits, + * whether in an action of contract, negligence or other tortious action, + * arising out of or in connection with the use or performance of this + * software. + * + * + * NAME + * SCCDFile.h + * + * DESCRIPTION + * Include file for TekCMS Color Extension when using the + * X Device Color Characterization Convention (XDCCC). + * + */ +/* $XFree86: xc/programs/xcmsdb/SCCDFile.h,v 1.3 1999/03/02 11:49:36 dawes Exp $ */ +#ifndef SCCDFILE_H +#define SCCDFILE_H + +#include <X11/Xutil.h> +#include <X11/Xcms.h> + +/* + * DEFINES + */ + +#define XDCCC_NUMBER 0x8000000L /* 2**27 per ICCCM */ +#define XDCCC_MATRIX_ATOM_NAME "XDCCC_LINEAR_RGB_MATRICES" +#define XDCCC_CORRECT_ATOM_NAME "XDCCC_LINEAR_RGB_CORRECTION" +#define READABLE_SD_SUFFIX ".txt" +#define TXT_FORMAT_VERSION "1.1" + +#define DATA_DELIMS " \t\n" /* space, tab, newline */ + +#define SC_BEGIN_KEYWORD "SCREENDATA_BEGIN" +#define SC_END_KEYWORD "SCREENDATA_END" +#define COMMENT_KEYWORD "COMMENT" +#define NAME_KEYWORD "NAME" +#define MODEL_KEYWORD "MODEL" +#define PART_NUMBER_KEYWORD "PART_NUMBER" +#define SERIAL_NUMBER_KEYWORD "SERIAL_NUMBER" +#define REVISION_KEYWORD "REVISION" +#define SCREEN_CLASS_KEYWORD "SCREEN_CLASS" +#define COLORIMETRIC_BEGIN_KEYWORD "COLORIMETRIC_BEGIN" +#define COLORIMETRIC_END_KEYWORD "COLORIMETRIC_END" +#define XYZTORGBMAT_BEGIN_KEYWORD "XYZtoRGB_MATRIX_BEGIN" +#define XYZTORGBMAT_END_KEYWORD "XYZtoRGB_MATRIX_END" +#define RGBTOXYZMAT_BEGIN_KEYWORD "RGBtoXYZ_MATRIX_BEGIN" +#define RGBTOXYZMAT_END_KEYWORD "RGBtoXYZ_MATRIX_END" +#define IPROFILE_BEGIN_KEYWORD "INTENSITY_PROFILE_BEGIN" +#define IPROFILE_END_KEYWORD "INTENSITY_PROFILE_END" +#define ITBL_BEGIN_KEYWORD "INTENSITY_TBL_BEGIN" +#define ITBL_END_KEYWORD "INTENSITY_TBL_END" + +#define WHITEPT_XYZ_BEGIN_KEYWORD "WHITEPT_XYZ_BEGIN" +#define WHITEPT_XYZ_END_KEYWORD "WHITEPT_XYZ_END" + +#define VIDEO_RGB_KEYWORD "VIDEO_RGB" +#ifdef GRAY +#define VIDEO_GRAY_KEYWORD "VIDEO_GRAY" +#endif + +#define DATA -1 +#define SC_BEGIN 1 +#define SC_END 2 +#define COMMENT 3 +#define NAME 4 +#define MODEL 5 +#define PART_NUMBER 6 +#define SERIAL_NUMBER 7 +#define REVISION 8 +#define SCREEN_CLASS 9 +#define COLORIMETRIC_BEGIN 10 +#define COLORIMETRIC_END 11 +#define XYZTORGBMAT_BEGIN 12 +#define XYZTORGBMAT_END 13 +#define RGBTOXYZMAT_BEGIN 14 +#define RGBTOXYZMAT_END 15 +#define IPROFILE_BEGIN 16 +#define IPROFILE_END 17 +#define ITBL_BEGIN 18 +#define ITBL_END 19 +#define WHITEPT_XYZ_BEGIN 20 +#define WHITEPT_XYZ_END 21 + +#define CORR_TYPE_NONE -1 +#define CORR_TYPE_0 0 +#define CORR_TYPE_1 1 + +#define VIDEO_RGB 0 +#ifdef GRAY +#define VIDEO_GRAY 1 +#endif + + /* + * Intensity Record (i.e., value / intensity tuple) + */ +typedef struct _IntensityRec { + unsigned short value; + XcmsFloat intensity; +} IntensityRec; + + /* + * Intensity Table + */ +typedef struct _IntensityTbl { + IntensityRec *pBase; + unsigned int nEntries; +} IntensityTbl; + +typedef struct _XDCCC_Matrix { + XcmsFloat XYZtoRGBmatrix[3][3]; + XcmsFloat RGBtoXYZmatrix[3][3]; +} XDCCC_Matrix; + +typedef struct _XDCCC_Correction { + XVisualInfo visual_info; + long visual_info_mask; + int tableType; + int nTables; + IntensityTbl* pRedTbl; + IntensityTbl* pGreenTbl; + IntensityTbl* pBlueTbl; + struct _XDCCC_Correction* next; +} XDCCC_Correction; + +extern int LoadSCCData(Display *pDpy, int screenNumber, char *filename, + int targetFormat); + +#endif /* SCCDFILE_H */ |