146 lines
4.2 KiB
C
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 */
|