Harlequin RIP SDK

Example of a PostScript device type to implement photoink splitting. This example is unusual in that it is split into two files. The photoinksplitter.c file is in skintest. It contains the device specific code for light/dark splitting algorithms. The photoinkdev.c file (this file) contains boilerplate code for a PostScript device that acts as the intermediary between the RIP and the photoink splitting algorithms. This file is not expected to require any changes. More...

#include "skinkit.h"
#include "devutils.h"
#include "kitdevs.h"
#include "rdrapi.h"
#include "ripthread.h"
#include "skindevs.h"
#include "photoinkdev.h"

Data Structures

struct  pi_data_t
 

Typedefs

typedef struct pi_data_t pi_data_t
 

Functions

HqBool register_photoink_splitter (photoink_splitter_fn *splitter)
 Register the photoink splitter function. More...
 

Detailed Description

Example of a PostScript device type to implement photoink splitting. This example is unusual in that it is split into two files. The photoinksplitter.c file is in skintest. It contains the device specific code for light/dark splitting algorithms. The photoinkdev.c file (this file) contains boilerplate code for a PostScript device that acts as the intermediary between the RIP and the photoink splitting algorithms. This file is not expected to require any changes.

The PostScript device is expected to be called using a protocol of setting a tint value for the primary component, opening a pseudo-file on the device using the component name as the file name, then executing the 'file', e.g. assuming the %photoink% device has been instantiated:

   (%photoink%) << /Tint 0.2 >> setdevparams   % Sets a tint value of 0.2
   (%photoink%C) run     % Open and execute the 'C' pseudo-file for cyan. The
                           % result is that the split values for the 0.2 tint
                           % are left on the stack as binary tokens.
                           % The 'C' pseudo-file is automatically closed.

The photoink device function calls resulting from this fragment are:

   set_param -> open_file -> read_file -> close_file

The first read from the pseudo-file (it is performed as part of file execution) will obtain the split values for the current tint value and leave them on the stack as binary tokens. Binary token handling must be enabled in the RIP, the example photoink TestConfig shows how to do this.

The photoink splitting is implemented in skintest via the pi_splitter() function. This should be implemented if the photoink device is to function. It may be stubbed in some flavours of rip.

Typedef Documentation

◆ pi_data_t

typedef struct pi_data_t pi_data_t

Private data of photoink device instances.

Function Documentation

◆ register_photoink_splitter()

HqBool register_photoink_splitter ( photoink_splitter_fn splitter)

Register the photoink splitter function.

Parameters
[in]splitterThe splitter function to use for the photoink device.
Return values
TRUEfor success;
FALSEotherwise.