12c7c4e3dSmrg/* $Xorg: SCCDFile.h,v 1.3 2000/08/17 19:54:13 cpqbld Exp $ */
22c7c4e3dSmrg/*
32c7c4e3dSmrg * (c) Copyright 1990 Tektronix Inc.
42c7c4e3dSmrg * 	All Rights Reserved
52c7c4e3dSmrg *
62c7c4e3dSmrg * Permission to use, copy, modify, and distribute this software and its
72c7c4e3dSmrg * documentation for any purpose and without fee is hereby granted,
82c7c4e3dSmrg * provided that the above copyright notice appear in all copies and that
92c7c4e3dSmrg * both that copyright notice and this permission notice appear in
102c7c4e3dSmrg * supporting documentation, and that the name of Tektronix not be used
112c7c4e3dSmrg * in advertising or publicity pertaining to distribution of the software
122c7c4e3dSmrg * without specific, written prior permission.
132c7c4e3dSmrg *
142c7c4e3dSmrg * Tektronix disclaims all warranties with regard to this software, including
152c7c4e3dSmrg * all implied warranties of merchantability and fitness, in no event shall
162c7c4e3dSmrg * Tektronix be liable for any special, indirect or consequential damages or
172c7c4e3dSmrg * any damages whatsoever resulting from loss of use, data or profits,
182c7c4e3dSmrg * whether in an action of contract, negligence or other tortious action,
192c7c4e3dSmrg * arising out of or in connection with the use or performance of this
202c7c4e3dSmrg * software.
212c7c4e3dSmrg *
222c7c4e3dSmrg *
232c7c4e3dSmrg *	NAME
242c7c4e3dSmrg *		SCCDFile.h
252c7c4e3dSmrg *
262c7c4e3dSmrg *	DESCRIPTION
272c7c4e3dSmrg *		Include file for TekCMS Color Extension when using the
282c7c4e3dSmrg *		X Device Color Characterization Convention (XDCCC).
292c7c4e3dSmrg *
302c7c4e3dSmrg */
312c7c4e3dSmrg/* $XFree86: xc/programs/xcmsdb/SCCDFile.h,v 1.3 1999/03/02 11:49:36 dawes Exp $ */
322c7c4e3dSmrg#ifndef SCCDFILE_H
332c7c4e3dSmrg#define SCCDFILE_H
342c7c4e3dSmrg
352c7c4e3dSmrg#include <X11/Xutil.h>
362c7c4e3dSmrg#include <X11/Xcms.h>
372c7c4e3dSmrg
382c7c4e3dSmrg/*
392c7c4e3dSmrg *	DEFINES
402c7c4e3dSmrg */
412c7c4e3dSmrg
422c7c4e3dSmrg#define XDCCC_NUMBER			0x8000000L	/* 2**27 per ICCCM */
432c7c4e3dSmrg#define XDCCC_MATRIX_ATOM_NAME		"XDCCC_LINEAR_RGB_MATRICES"
442c7c4e3dSmrg#define XDCCC_CORRECT_ATOM_NAME		"XDCCC_LINEAR_RGB_CORRECTION"
452c7c4e3dSmrg#define	READABLE_SD_SUFFIX		".txt"
462c7c4e3dSmrg#define TXT_FORMAT_VERSION		"1.1"
472c7c4e3dSmrg
482c7c4e3dSmrg#define	DATA_DELIMS			" \t\n"	/* space, tab, newline */
492c7c4e3dSmrg
502c7c4e3dSmrg#define SC_BEGIN_KEYWORD		"SCREENDATA_BEGIN"
512c7c4e3dSmrg#define SC_END_KEYWORD			"SCREENDATA_END"
522c7c4e3dSmrg#define COMMENT_KEYWORD			"COMMENT"
532c7c4e3dSmrg#define NAME_KEYWORD			"NAME"
542c7c4e3dSmrg#define MODEL_KEYWORD			"MODEL"
552c7c4e3dSmrg#define PART_NUMBER_KEYWORD		"PART_NUMBER"
562c7c4e3dSmrg#define SERIAL_NUMBER_KEYWORD		"SERIAL_NUMBER"
572c7c4e3dSmrg#define REVISION_KEYWORD		"REVISION"
582c7c4e3dSmrg#define SCREEN_CLASS_KEYWORD		"SCREEN_CLASS"
592c7c4e3dSmrg#define COLORIMETRIC_BEGIN_KEYWORD	"COLORIMETRIC_BEGIN"
602c7c4e3dSmrg#define COLORIMETRIC_END_KEYWORD	"COLORIMETRIC_END"
612c7c4e3dSmrg#define XYZTORGBMAT_BEGIN_KEYWORD	"XYZtoRGB_MATRIX_BEGIN"
622c7c4e3dSmrg#define XYZTORGBMAT_END_KEYWORD		"XYZtoRGB_MATRIX_END"
632c7c4e3dSmrg#define RGBTOXYZMAT_BEGIN_KEYWORD	"RGBtoXYZ_MATRIX_BEGIN"
642c7c4e3dSmrg#define RGBTOXYZMAT_END_KEYWORD		"RGBtoXYZ_MATRIX_END"
652c7c4e3dSmrg#define IPROFILE_BEGIN_KEYWORD		"INTENSITY_PROFILE_BEGIN"
662c7c4e3dSmrg#define IPROFILE_END_KEYWORD		"INTENSITY_PROFILE_END"
672c7c4e3dSmrg#define ITBL_BEGIN_KEYWORD		"INTENSITY_TBL_BEGIN"
682c7c4e3dSmrg#define ITBL_END_KEYWORD		"INTENSITY_TBL_END"
692c7c4e3dSmrg
702c7c4e3dSmrg#define WHITEPT_XYZ_BEGIN_KEYWORD	"WHITEPT_XYZ_BEGIN"
712c7c4e3dSmrg#define WHITEPT_XYZ_END_KEYWORD		"WHITEPT_XYZ_END"
722c7c4e3dSmrg
732c7c4e3dSmrg#define VIDEO_RGB_KEYWORD		"VIDEO_RGB"
742c7c4e3dSmrg#ifdef GRAY
752c7c4e3dSmrg#define VIDEO_GRAY_KEYWORD		"VIDEO_GRAY"
762c7c4e3dSmrg#endif
772c7c4e3dSmrg
782c7c4e3dSmrg#define DATA				-1
792c7c4e3dSmrg#define SC_BEGIN			1
802c7c4e3dSmrg#define SC_END				2
812c7c4e3dSmrg#define COMMENT				3
822c7c4e3dSmrg#define NAME				4
832c7c4e3dSmrg#define MODEL				5
842c7c4e3dSmrg#define PART_NUMBER			6
852c7c4e3dSmrg#define SERIAL_NUMBER			7
862c7c4e3dSmrg#define REVISION			8
872c7c4e3dSmrg#define SCREEN_CLASS			9
882c7c4e3dSmrg#define COLORIMETRIC_BEGIN		10
892c7c4e3dSmrg#define COLORIMETRIC_END		11
902c7c4e3dSmrg#define XYZTORGBMAT_BEGIN		12
912c7c4e3dSmrg#define XYZTORGBMAT_END			13
922c7c4e3dSmrg#define RGBTOXYZMAT_BEGIN		14
932c7c4e3dSmrg#define RGBTOXYZMAT_END			15
942c7c4e3dSmrg#define IPROFILE_BEGIN			16
952c7c4e3dSmrg#define IPROFILE_END			17
962c7c4e3dSmrg#define ITBL_BEGIN			18
972c7c4e3dSmrg#define ITBL_END			19
982c7c4e3dSmrg#define WHITEPT_XYZ_BEGIN		20
992c7c4e3dSmrg#define WHITEPT_XYZ_END			21
1002c7c4e3dSmrg
1012c7c4e3dSmrg#define CORR_TYPE_NONE  -1
1022c7c4e3dSmrg#define CORR_TYPE_0	0
1032c7c4e3dSmrg#define CORR_TYPE_1	1
1042c7c4e3dSmrg
1052c7c4e3dSmrg#define VIDEO_RGB	0
1062c7c4e3dSmrg#ifdef GRAY
1072c7c4e3dSmrg#define VIDEO_GRAY	1
1082c7c4e3dSmrg#endif
1092c7c4e3dSmrg
1102c7c4e3dSmrg    /*
1112c7c4e3dSmrg     * Intensity Record (i.e., value / intensity tuple)
1122c7c4e3dSmrg     */
1132c7c4e3dSmrgtypedef struct _IntensityRec {
1142c7c4e3dSmrg    unsigned short value;
1152c7c4e3dSmrg    XcmsFloat intensity;
1162c7c4e3dSmrg} IntensityRec;
1172c7c4e3dSmrg
1182c7c4e3dSmrg    /*
1192c7c4e3dSmrg     * Intensity Table
1202c7c4e3dSmrg     */
1212c7c4e3dSmrgtypedef struct _IntensityTbl {
1222c7c4e3dSmrg    IntensityRec *pBase;
1232c7c4e3dSmrg    unsigned int nEntries;
1242c7c4e3dSmrg} IntensityTbl;
1252c7c4e3dSmrg
1262c7c4e3dSmrgtypedef struct _XDCCC_Matrix {
1272c7c4e3dSmrg    XcmsFloat XYZtoRGBmatrix[3][3];
1282c7c4e3dSmrg    XcmsFloat RGBtoXYZmatrix[3][3];
1292c7c4e3dSmrg} XDCCC_Matrix;
1302c7c4e3dSmrg
1312c7c4e3dSmrgtypedef struct _XDCCC_Correction {
1322c7c4e3dSmrg    XVisualInfo		visual_info;
1332c7c4e3dSmrg    long		visual_info_mask;
1342c7c4e3dSmrg    int			tableType;
1352c7c4e3dSmrg    int			nTables;
1362c7c4e3dSmrg    IntensityTbl*	pRedTbl;
1372c7c4e3dSmrg    IntensityTbl*	pGreenTbl;
1382c7c4e3dSmrg    IntensityTbl*	pBlueTbl;
1392c7c4e3dSmrg    struct _XDCCC_Correction*	next;
1402c7c4e3dSmrg} XDCCC_Correction;
1412c7c4e3dSmrg
1422becc446Smrgextern int LoadSCCData(Display *pDpy, int screenNumber, const char *filename,
1432c7c4e3dSmrg		       int targetFormat);
1442c7c4e3dSmrg
1452c7c4e3dSmrg#endif /* SCCDFILE_H */
146