Harlequin RIP SDK

Header file defining the DEVICE interface. More...

#include "ripcall.h"

Data Structures

struct  _pdf_filespec
 PDF_FILESPEC - a pointer to PDF_FILESPEC will be passed as the arg to DEVICELIST_IOCTL when the opcode is DeviceIOCtl_PDFFilenameToPS. More...
 
struct  _os_filespec
 A pointer to OS_FILESPEC will be passed as the arg to DEVICELIST_IOCTL routine when opcode is DeviceIOCtl_OSDeviceName. More...
 
struct  DEVICEPARAM
 A structure describing the parameter to set and its value. More...
 
struct  FILEENTRY
 Calls to DEVICELIST_NEXT must pass a FILEENTRY structure which the routine will fill in. More...
 
struct  STAT
 Calls to DEVICELIST_STATUS_FILE must pass a STAT structure to the routine which it will fill in. More...
 
struct  devicelist
 PostScript device instances. More...
 
struct  DeviceType
 This is the structure used to represent a device type (class) implementation in the Harlequin RIP core. More...
 

Macros

#define OS_DEVICE_TYPE   0
 The OS file system device type. More...
 
#define NULL_DEVICE_TYPE   1
 Data source/sink device type. More...
 
#define ABS_DEVICE_TYPE   10
 Absolute mapping device type. More...
 
#define RELATIVE_DEVICE_TYPE   17
 Relative mapping device type. More...
 
#define PREBOOT_DEVICE_TYPE   18
 Device to support alternate %os% mounting methods. More...
 
#define PREFIX_DEVICE_TYPE   19
 Device type to add Prefix support to relative devices. More...
 
#define COMPRESS_DEVICE_TYPE   23
 Device type to perform compression on raster band data. More...
 
#define UNION_DEVICE_TYPE   40
 Unified view of multiple devices. More...
 
#define MONEVENT_DEVICE_TYPE   52
 Device type used for sending textual output from %stdout, %stderr and %monitor. More...
 
#define FONT_ND_CRYPT_DEVICE_TYPE   128
 Device type for encrypting or decrypting OEM encrypted fonts. More...
 
#define MINPOSSIBLESTRATEGY   1
 
#define MAXPOSSIBLESTRATEGY   128
 
#define LONGESTDEVICENAME   50
 
#define DeviceIOCtl_ShortRead   0
 Opcode for DEVICELIST_IOCTL. More...
 
#define DeviceIOCtl_PDFFilenameToPS   1
 Opcode for DEVICELIST_IOCTL to convert PDF filenames specified for a particular platform to PostScript filenames. Argument is a pointer to a PDF_FILESPEC.
 
#define DeviceIOCtl_OSDeviceName   2
 Opcode for DEVICELIST_IOCTL. Arg is a pointer to an OS_FILESPEC. More...
 
#define VOIDPTR_TO_DEVICE_FILEDESCRIPTOR(d)   ((DEVICE_FILEDESCRIPTOR)((uintptr_t)(d) >> 1))
 Convert a (void*) to a device file descriptor. More...
 
#define DEVICE_FILEDESCRIPTOR_TO_VOIDPTR(d)   ((void *)((uintptr_t)(d) << 1))
 Convert a device file descriptor which was converted from a (void*) via the macro VOIDPTR_TO_DEVICE_FILEDESCRIPTOR() back to its original value.
 
#define setDevParamTypeAndName(_dp, _type, _name, _nameLength)
 Utility macro to set the type and name of a DEVICEPARAM.
 
#define setDevParamTypeAndCName(_dp, _type, _name)    setDevParamTypeAndName((_dp), (_type), (uint8 *)(_name), CSTRING_LENGTH(_name))
 Utility macro to set the type and name of a DEVICEPARAM, using a constant C string for the name. More...
 
#define SW_DEVICE_NAME_PROGRESS   "progress"
 

Typedefs

typedef HqnResult DEVICE_result
 Type for return value from DEVICELIST_LAST_ERROR functions. More...
 
typedef HqnFileDescriptor DEVICE_FILEDESCRIPTOR
 Type of a file descriptor for devices.
 
typedef struct _pdf_filespec PDF_FILESPEC
 PDF_FILESPEC - a pointer to PDF_FILESPEC will be passed as the arg to DEVICELIST_IOCTL when the opcode is DeviceIOCtl_PDFFilenameToPS. More...
 
typedef struct _os_filespec OS_FILESPEC
 A pointer to OS_FILESPEC will be passed as the arg to DEVICELIST_IOCTL routine when opcode is DeviceIOCtl_OSDeviceName. More...
 
typedef struct DEVICEPARAM DEVICEPARAM
 A structure describing the parameter to set and its value.
 
typedef struct FILEENTRY FILEENTRY
 Calls to DEVICELIST_NEXT must pass a FILEENTRY structure which the routine will fill in.
 
typedef struct STAT STAT
 Calls to DEVICELIST_STATUS_FILE must pass a STAT structure to the routine which it will fill in.
 
typedef struct devicelist DEVICELIST
 PostScript device instances. More...
 
typedef int32(* DEVICELIST_TICKLE) (struct DeviceType *dev, int32 recursion)
 The tickle feature is obsolete. This function type will not be called.
 
typedef DEVICE_result(* DEVICELIST_LAST_ERROR) (DEVICELIST *dev)
 Device type method to return last error for a device instance. More...
 
typedef int32(* DEVICELIST_INIT) (DEVICELIST *dev)
 Device type method to initialise a device instance. More...
 
typedef DEVICE_FILEDESCRIPTOR(* DEVICELIST_OPEN) (DEVICELIST *dev, uint8 *filename, int32 openflags)
 Device type method to open a file on a device instance. More...
 
typedef int32(* DEVICELIST_READ) (DEVICELIST *dev, DEVICE_FILEDESCRIPTOR descriptor, uint8 *buff, int32 len)
 Device type method to read data from an open file on a device instance. More...
 
typedef int32(* DEVICELIST_WRITE) (DEVICELIST *dev, DEVICE_FILEDESCRIPTOR descriptor, uint8 *buff, int32 len)
 Device type method to write data to an open file on a device instance. More...
 
typedef int32(* DEVICELIST_CLOSE) (DEVICELIST *dev, DEVICE_FILEDESCRIPTOR descriptor)
 Device type method to close an open file on a device instance. More...
 
typedef int32(* DEVICELIST_ABORT) (DEVICELIST *dev, DEVICE_FILEDESCRIPTOR descriptor)
 Device type method to abort action on an open file on a device instance. More...
 
typedef int32(* DEVICELIST_SEEK) (DEVICELIST *dev, DEVICE_FILEDESCRIPTOR descriptor, Hq32x2 *destn, int32 flags)
 Device type method to seek an open file on a device instance. More...
 
typedef int32(* DEVICELIST_BYTES) (DEVICELIST *dev, DEVICE_FILEDESCRIPTOR descriptor, Hq32x2 *bytes, int32 reason)
 Device type method to get bytes available for an open file on a device instance. More...
 
typedef int32(* DEVICELIST_STATUS_FILE) (DEVICELIST *dev, uint8 *filename, STAT *statbuff)
 Device type method to check status of a file by name. More...
 
typedef void *(* DEVICELIST_START_LIST) (DEVICELIST *dev, uint8 *pattern)
 Device type method to start iterating file names on a device instance. More...
 
typedef int32(* DEVICELIST_NEXT) (DEVICELIST *dev, void **handle, uint8 *pattern, FILEENTRY *entry)
 Device type method to get the next file in an iteration. More...
 
typedef int32(* DEVICELIST_END_LIST) (DEVICELIST *dev, void *handle)
 Device type method to end iterating file names from a device instance. More...
 
typedef int32(* DEVICELIST_RENAME) (DEVICELIST *dev, uint8 *file1, uint8 *file2)
 Device type method to rename a file on a device instance. More...
 
typedef int32(* DEVICELIST_DELETE) (DEVICELIST *dev, uint8 *filename)
 Device type method to remove a file from a device instance. More...
 
typedef int32(* DEVICELIST_SET_PARAM) (DEVICELIST *dev, DEVICEPARAM *param)
 Device type method to set a device parameter. More...
 
typedef int32(* DEVICELIST_START_PARAM) (DEVICELIST *dev)
 Device type method to start iterating device parameters. More...
 
typedef int32(* DEVICELIST_GET_PARAM) (DEVICELIST *dev, DEVICEPARAM *param)
 Device type method to get the next device parameter. More...
 
typedef int32(* DEVICELIST_STATUS_DEVICE) (DEVICELIST *dev, DEVSTAT *devstat)
 Device type method to get the status of the device instance. More...
 
typedef int32(* DEVICELIST_DISMOUNT) (DEVICELIST *dev)
 Device type method to dismount the device instance. More...
 
typedef int32(* DEVICELIST_BUFFER_SIZE) (DEVICELIST *dev)
 Optional device type method to return the buffer size that a device requires for best operation. More...
 
typedef int32(* DEVICELIST_IOCTL) (DEVICELIST *dev, DEVICE_FILEDESCRIPTOR fileDescriptor, int32 opcode, intptr_t arg)
 Device type method for miscellaneous control options. More...
 
typedef struct DeviceType DEVICETYPE
 This is the structure used to represent a device type (class) implementation in the Harlequin RIP core. More...
 

Enumerations

enum  DEVICE_RESULT {
  DeviceNoError = HQN_RESULT_SUCCESS , DeviceInvalidAccess , DeviceIOError , DeviceLimitCheck ,
  DeviceUndefined , DeviceUnregistered , DeviceInterrupted , DeviceVMError ,
  DeviceReOutput , DeviceNotReady , DeviceCancelPage , DeviceReOutputPageBuffer ,
  DeviceTimeout
}
 Last error return values. More...
 
enum  PDF_FILESPEC_values {
  PDF_FILESPEC_None = 0x00 , PDF_FILESPEC_PDF = 0x01 , PDF_FILESPEC_DOS = 0x02 , PDF_FILESPEC_Mac = 0x03 ,
  PDF_FILESPEC_Unix = 0x04 , PDF_FILESPEC_FS = 0x08
}
 PDF_FILESPEC flags. More...
 
enum  DEVICEPARAM_type {
  ParamBoolean = 1 , ParamInteger = 2 , ParamString = 3 , ParamFloat = 4 ,
  ParamArray = 5 , ParamDict = 6 , ParamNull = 7
}
 DEVICEPARAM::type values. More...
 
enum  DEVICELIST_SET_PARAM_result {
  ParamAccepted = 1 , ParamTypeCheck = 2 , ParamRangeCheck = 3 , ParamConfigError = 4 ,
  ParamIgnored = 5 , ParamError = -1
}
 DEVICELIST_SET_PARAM return codes More...
 
enum  DEVICELIST_OPEN_flags {
  SW_RDONLY = 0x001 , SW_WRONLY = 0x002 , SW_RDWR = 0x004 , SW_APPEND = 0x008 ,
  SW_CREAT = 0x010 , SW_TRUNC = 0x020 , SW_EXCL = 0x040 , SW_FROMPS = 0x080 ,
  SW_FONT = 0x100
}
 DEVICELIST_OPEN flags More...
 
enum  DEVICELIST_SEEK_flags { SW_SET = 0 , SW_INCR = 1 , SW_XTND = 2 }
 DEVICELIST_SEEK flags More...
 
enum  DEVICELIST_BYTES_reasons { SW_BYTES_AVAIL_REL = 0 , SW_BYTES_TOTAL_ABS = 1 }
 DEVICELIST_BYTES reason codes More...
 
enum  DEVICELIST_NEXT_result {
  FileNameNoMatch = 0 , FileNameMatch = 1 , FileNameError = -1 , FileNameIOError = -1 ,
  FileNameRangeCheck = -2
}
 DEVICELIST_NEXT return codes More...
 
enum  DEVICETYPE_flags {
  DEVICEABSOLUTE = 0x0000 , DEVICERELATIVE = 0x0001 , DEVICEWRITABLE = 0x0002 , DEVICESMALLBUFF = 0x0004 ,
  DEVICELINEBUFF = 0x0008 , DEVICEENABLED = 0x0010 , DEVICEREMOVABLE = 0x0020 , DEVICENOSEARCH = 0x0040 ,
  DEVICEUNDISMOUNTABLE = 0x0080
}
 Bit mask flags for DEVICETYPE::devicetypeflags. More...
 

Functions

HqnResult device_result_translate (DEVICE_result result)
 Translate a device API-specific error code to a generic HqnResult error code. More...
 
DEVICELISTSwFindDevice (uint8 *deviceName)
 Looks up a device by name, returns NULL on failure.
 
uint8SwAlloc (int32 bytes)
 Dynamically allocate memory from the core rip's memory space. More...
 
uint8SwRealloc (void *pointer, int32 bytes)
 Reallocate memory dynamically allocated from the core rip's memory space using SwAlloc(), preserving existing contents. More...
 
void SwFree (void *pointer)
 Free memory dynamically allocated from the core rip's memory space by SwAlloc() or SwRealloc(). More...
 
int32 SwPatternMatch (uint8 *pattern, uint8 *string)
 For use in DEVICELIST_NEXT to assist pattern matching on file names. More...
 
int32 SwLengthPatternMatch (uint8 *pattern, int32 plen, uint8 *string, int32 slen)
 For use in DEVICELIST_NEXT to assist pattern matching on file names. More...
 
int32 SwReadFilterBytes (DEVICELIST *dev, uint8 **ret_buff)
 Utility function to help when the RIP is reading bytes from a custom filter via the device interface. More...
 
int32 SwReplaceFilterBytes (DEVICELIST *dev, int32 len)
 Utility function to help when the RIP is reading bytes from a custom filter via the device interface. More...
 
int32 SwWriteFilterBytes (DEVICELIST *dev, uint8 *buff, int32 len)
 Utility function to help when the RIP is writing bytes to a custom filter via the device interface. More...
 
int32 SwSeekFilterBytes (DEVICELIST *dev, int32 offset)
 Utility function to help when the RIP is seeking on a custom filter via the device interface. More...
 
int32 SwTestAndTickle (void)
 This is a wrapper to SwOften() for use when adding custom filters via the device interface. More...
 

Detailed Description

Header file defining the DEVICE interface.

Copyright (C) 2023 Global Graphics Software Ltd. All rights reserved. Global Graphics Software Ltd. Confidential Information.