xenocara/app/xcmsdb/SCCDFile.h
2006-11-25 20:07:29 +00:00

146 lines
4.2 KiB
C

/* $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 */