/* ciisetup.h ** Copyright (C) 1993 by Xerox Corporation. All rights reserved. ** MFP, September 28, 1993 5:12:41 pm PDT ** ** Dependencies: ** cii.h ** ** Caveats: ** ** Change log: ** August 19, 1993 (MFP) - creation (as ciistartup.h) ** September 21, 1993 (MFP) - renamed *startup* to *setup* ** September 28, 1993 (MFP) - Added more comments */ #ifndef ciisetup←h #define ciisetup←h #ifndef cii←h #include "cii.h" #endif /********************************************************************** ** CII←SetupHandle: TYPE ** ** ** ** This object provides methods for the creation and ** ** initialization of a CII←Handle for some specific raster ** ** devices. Note that it is NOT the case that all CII←Handle ** ** instances are created via this route, which is why this class ** ** is defined separately from the cii interface. Other suppliers ** ** of cii implementations may well have their own CII←Handle ** ** creation routines. ** ** ** ** It is not normally necessary for interpreters to use this ** ** interface, since they will be passed a CII←Handle. ** **********************************************************************/ typedef struct CII←SetupObjectRep * CII←SetupHandle; /********************************************************************** ** CII←ScanMode: TYPE ** ** ** ** For specifying the orientation of device rasters. The most ** ** popular are: ** ** CII←slowRightFastUp - for long-edge feed printers ** ** CII←slowDownFastRight - for short-edge feed printers, ** ** raster displays ** **********************************************************************/ typedef enum { CII←slowRightFastUp, CII←slowDownFastRight, CII←slowLeftFastDown, CII←slowUpFastLeft, CII←slowRightFastDown, CII←slowDownFastLeft, CII←slowLeftFastUp, CII←slowUpFastRight } CII←ScanMode; /********************************************************************** ** CII←SetupStandardParams: METHOD ** ** ** ** This sets the standard parameters, needed for every raster ** ** device. ** **********************************************************************/ #define CII←SetupStandardParams(a, b, c, d, e, f) \ (((a)->SetupStandardParams)(a, b, c, d, e, f)) typedef CII←RES PROC←CII←SetupStandardParams( CII←SetupHandle s, unsigned int sSizeDevice, unsigned int fSizeDevice, CII←ScanMode scanMode, float surfaceUnitsPerInchX, float surfaceUnitsPerInchY ); /********************************************************************** ** CII←SetupArrayParamSize: METHOD ** ** ** ** This provides an extension mechanism, for creators that need ** ** variable-sized array parameters. ** **********************************************************************/ #define CII←SetupArrayParamSize(s, name, size) \ (((s)->SetupArrayParamSize)(s, name, size)) typedef CII←RES PROC←CII←SetupArrayParamSize( CII←SetupHandle s, char* name, unsigned int size ); /********************************************************************** ** CII←SetupIntParam: METHOD ** ** ** ** This provides an extension mechanism, for creators that need ** ** parameters in addition to those set by SetupStandardParams. If ** ** index is not 0, the client must have called ** ** CII←SetupArrayParamSize with the same name paramenter, and a ** ** size greater than the index value. ** **********************************************************************/ #define CII←SetupIntParam(s, name, index, value) \ (((s)->SetupIntParam)(s, name, index, value)) typedef CII←RES PROC←CII←SetupIntParam( CII←SetupHandle s, char* name, unsigned int index, int value ); /********************************************************************** ** CII←SetupFloatParam: METHOD ** ** ** ** Similar to CII←SetupIntParam, but for floating-point parameters. ** **********************************************************************/ #define CII←SetupFloatParam(s, name, index, value) \ (((s)->SetupFloatParam)(s, name, index, value)) typedef CII←RES PROC←CII←SetupFloatParam( CII←SetupHandle s, char* name, unsigned int index, float value ); /********************************************************************** ** CII←SetupNameParam: METHOD ** ** ** ** Similar to CII←SetupIntParam, but for string-valued parameters. ** **********************************************************************/ #define CII←SetupNameParam(s, name, index, value) \ (((s)->SetupNameParam)(s, name, index, value)) typedef CII←RES PROC←CII←SetupNameParam( CII←SetupHandle s, char* name, unsigned int index, char* value ); /********************************************************************** ** CII←CreateHandleFromRasters: METHOD ** ** ** ** Actually creates a CII←Handle. After the handle is created, ** ** there may be some additional calls needed to complete the ** ** initializaton. ** **********************************************************************/ #define CII←CreateHandleFromRasters(s, logicalDevice, nRasters, rasters, handleResult) \ (((s)->CreateHandleFromRasters)(s, logicalDevice, nRasters, rasters, handleResult)) typedef CII←RES PROC←CII←CreateHandleFromRasters( CII←SetupHandle s, unsigned int logicalDevice, unsigned int nRasters, CII←RasterRep rasters[], CII←Handle* handleResult ); /********************************************************************** ** CII←DestroySetupObject: METHOD ** ** ** ** Should be called exactly once on each CII←SetupHandle created, ** ** after which the client must not use it. It is OK to destroy a ** ** CII←SetupHandle before you are done with the CII←Handles that ** ** it was used to create. ** **********************************************************************/ #define CII←DestroySetupObject(s) \ (((s)->DestroySetupObject)(s)) typedef CII←RES PROC←CII←DestroySetupObject(CII←SetupHandle s); #ifdef c←plusplus #define C←PROC "C" #else #define C←PROC #endif /********************************************************************** ** CII←HighlightDeviceSetup: PROCEDURE ** ** ** ** This makes a CII←SetupHandle for creating a highlight device. ** ** Additional initialization calls: ** ** CII←SetOutputBuffers (allowed) ** ** CII←SetHalftoneProperties (recommended) ** **********************************************************************/ extern C←PROC CII←SetupHandle CII←HighlightDeviceSetup(); /********************************************************************** ** CII←BWHalftoneDeviceSetup: PROCEDURE ** ** ** ** This makes a CII←SetupHandle for creating a monochrome ** ** halftoning device. Additional initialization calls: ** ** CII←SetOutputBuffers (allowed) ** ** CII←SetHalftoneProperties (recommended) ** **********************************************************************/ extern C←PROC CII←SetupHandle CII←BWHalftoneDeviceSetup(); /********************************************************************** ** CII←CMYKHalftoneDeviceSetup: PROCEDURE ** ** ** ** This makes a CII←SetupHandle for creating a four-color CMYK ** ** halftoning device. Additional initialization calls: ** ** CII←SetOutputBuffers (allowed) ** ** CII←SetHalftoneProperties (recommended) ** **********************************************************************/ extern C←PROC CII←SetupHandle CII←CMYKHalftoneDeviceSetup(); /********************************************************************** ** CII←CMYKHalftoneSeparationDeviceSetup: PROCEDURE ** ** ** ** This makes a CII←SetupHandle for creating a halftoning device ** ** that makes just one separation of a four-color CMYK device. ** ** Additional initialization calls: ** ** CII←SetOutputBuffers (allowed) ** ** CII←SetSeparation (required) ** ** CII←SetHalftoneProperties (recommended) ** **********************************************************************/ extern C←PROC CII←SetupHandle CII←CMYKHalftoneSeparationDeviceSetup(); /********************************************************************** ** CII←SetupObjectRep: OBJECT ** ** ** **********************************************************************/ typedef struct CII←SetupObjectRep { void* data; PROC←CII←SetupStandardParams* SetupStandardParams; PROC←CII←SetupArrayParamSize* SetupArrayParamSize; PROC←CII←SetupIntParam* SetupIntParam; PROC←CII←SetupFloatParam* SetupFloatParam; PROC←CII←SetupNameParam* SetupNameParam; PROC←CII←CreateHandleFromRasters* CreateHandleFromRasters; PROC←CII←DestroySetupObject* DestroySetupObject; } CII←SetupObjectRep; #undef C←PROC #endif /* ciisetup←h */