Skip to main content
Skip table of contents

(v13) Device type interface

This page applies to Harlequin v13.1r0 and later; and to Harlequin Core but not Harlequin MultiRIP

A device type is specified by a DEVICETYPE, a structure defined in the supplied header file swdevice.h . This is a C structure that contains the device type number, flags, and so on, and pointers to the functions that implement that device type.

The structure definition is in the SDK header file swdevice.h .

Device routines must take certain actions to ensure that they do not halt processing (asynchronous actions) that may be necessary elsewhere in the system. This is described in (v13) Asynchronous actions .

Particular care should be taken to ensure that the calls in the device type that implement the filenameforall and status PostScript language operators start_file_list , next_file , end_file_list , and status_file return sensible results. If it intentionally should not find any files, it must not produce a fault in doing so, since this might cause the PostScript language job to abort.

Although the device interface is backwards compatible and requires no code changes to existing device code, it is recommended that device code be re-factored to use a new type definition for device file descriptors. The type for device file descriptors is DEVICE_FILEDESCRIPTOR.

In addition to this, the file swdevice.h contains useful macros to convert a void* to a DEVICE_FILEDESCRIPTOR and back again. These are called: VOIDPTR_TO_DEVICE_FILEDESCRIPTOR() and DEVICE_FILEDESCRIPTOR_TO_VOIDPTR()

For further details on this see: \lib\interface\swdevice.h

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.