1/* $Xorg: SCCDFile.h,v 1.3 2000/08/17 19:54:13 cpqbld Exp $ */ 2/* 3 * (c) Copyright 1990 Tektronix Inc. 4 * All Rights Reserved 5 * 6 * Permission to use, copy, modify, and distribute this software and its 7 * documentation for any purpose and without fee is hereby granted, 8 * provided that the above copyright notice appear in all copies and that 9 * both that copyright notice and this permission notice appear in 10 * supporting documentation, and that the name of Tektronix not be used 11 * in advertising or publicity pertaining to distribution of the software 12 * without specific, written prior permission. 13 * 14 * Tektronix disclaims all warranties with regard to this software, including 15 * all implied warranties of merchantability and fitness, in no event shall 16 * Tektronix be liable for any special, indirect or consequential damages or 17 * any damages whatsoever resulting from loss of use, data or profits, 18 * whether in an action of contract, negligence or other tortious action, 19 * arising out of or in connection with the use or performance of this 20 * software. 21 * 22 * 23 * NAME 24 * SCCDFile.h 25 * 26 * DESCRIPTION 27 * Include file for TekCMS Color Extension when using the 28 * X Device Color Characterization Convention (XDCCC). 29 * 30 */ 31/* $XFree86: xc/programs/xcmsdb/SCCDFile.h,v 1.3 1999/03/02 11:49:36 dawes Exp $ */ 32#ifndef SCCDFILE_H 33#define SCCDFILE_H 34 35#include <X11/Xutil.h> 36#include <X11/Xcms.h> 37 38/* 39 * DEFINES 40 */ 41 42#define XDCCC_NUMBER 0x8000000L /* 2**27 per ICCCM */ 43#define XDCCC_MATRIX_ATOM_NAME "XDCCC_LINEAR_RGB_MATRICES" 44#define XDCCC_CORRECT_ATOM_NAME "XDCCC_LINEAR_RGB_CORRECTION" 45#define READABLE_SD_SUFFIX ".txt" 46#define TXT_FORMAT_VERSION "1.1" 47 48#define DATA_DELIMS " \t\n" /* space, tab, newline */ 49 50#define SC_BEGIN_KEYWORD "SCREENDATA_BEGIN" 51#define SC_END_KEYWORD "SCREENDATA_END" 52#define COMMENT_KEYWORD "COMMENT" 53#define NAME_KEYWORD "NAME" 54#define MODEL_KEYWORD "MODEL" 55#define PART_NUMBER_KEYWORD "PART_NUMBER" 56#define SERIAL_NUMBER_KEYWORD "SERIAL_NUMBER" 57#define REVISION_KEYWORD "REVISION" 58#define SCREEN_CLASS_KEYWORD "SCREEN_CLASS" 59#define COLORIMETRIC_BEGIN_KEYWORD "COLORIMETRIC_BEGIN" 60#define COLORIMETRIC_END_KEYWORD "COLORIMETRIC_END" 61#define XYZTORGBMAT_BEGIN_KEYWORD "XYZtoRGB_MATRIX_BEGIN" 62#define XYZTORGBMAT_END_KEYWORD "XYZtoRGB_MATRIX_END" 63#define RGBTOXYZMAT_BEGIN_KEYWORD "RGBtoXYZ_MATRIX_BEGIN" 64#define RGBTOXYZMAT_END_KEYWORD "RGBtoXYZ_MATRIX_END" 65#define IPROFILE_BEGIN_KEYWORD "INTENSITY_PROFILE_BEGIN" 66#define IPROFILE_END_KEYWORD "INTENSITY_PROFILE_END" 67#define ITBL_BEGIN_KEYWORD "INTENSITY_TBL_BEGIN" 68#define ITBL_END_KEYWORD "INTENSITY_TBL_END" 69 70#define WHITEPT_XYZ_BEGIN_KEYWORD "WHITEPT_XYZ_BEGIN" 71#define WHITEPT_XYZ_END_KEYWORD "WHITEPT_XYZ_END" 72 73#define VIDEO_RGB_KEYWORD "VIDEO_RGB" 74#ifdef GRAY 75#define VIDEO_GRAY_KEYWORD "VIDEO_GRAY" 76#endif 77 78#define DATA -1 79#define SC_BEGIN 1 80#define SC_END 2 81#define COMMENT 3 82#define NAME 4 83#define MODEL 5 84#define PART_NUMBER 6 85#define SERIAL_NUMBER 7 86#define REVISION 8 87#define SCREEN_CLASS 9 88#define COLORIMETRIC_BEGIN 10 89#define COLORIMETRIC_END 11 90#define XYZTORGBMAT_BEGIN 12 91#define XYZTORGBMAT_END 13 92#define RGBTOXYZMAT_BEGIN 14 93#define RGBTOXYZMAT_END 15 94#define IPROFILE_BEGIN 16 95#define IPROFILE_END 17 96#define ITBL_BEGIN 18 97#define ITBL_END 19 98#define WHITEPT_XYZ_BEGIN 20 99#define WHITEPT_XYZ_END 21 100 101#define CORR_TYPE_NONE -1 102#define CORR_TYPE_0 0 103#define CORR_TYPE_1 1 104 105#define VIDEO_RGB 0 106#ifdef GRAY 107#define VIDEO_GRAY 1 108#endif 109 110 /* 111 * Intensity Record (i.e., value / intensity tuple) 112 */ 113typedef struct _IntensityRec { 114 unsigned short value; 115 XcmsFloat intensity; 116} IntensityRec; 117 118 /* 119 * Intensity Table 120 */ 121typedef struct _IntensityTbl { 122 IntensityRec *pBase; 123 unsigned int nEntries; 124} IntensityTbl; 125 126typedef struct _XDCCC_Matrix { 127 XcmsFloat XYZtoRGBmatrix[3][3]; 128 XcmsFloat RGBtoXYZmatrix[3][3]; 129} XDCCC_Matrix; 130 131typedef struct _XDCCC_Correction { 132 XVisualInfo visual_info; 133 long visual_info_mask; 134 int tableType; 135 int nTables; 136 IntensityTbl* pRedTbl; 137 IntensityTbl* pGreenTbl; 138 IntensityTbl* pBlueTbl; 139 struct _XDCCC_Correction* next; 140} XDCCC_Correction; 141 142extern int LoadSCCData(Display *pDpy, int screenNumber, const char *filename, 143 int targetFormat); 144 145#endif /* SCCDFILE_H */ 146