D_OUTPUT
This page applies to Harlequin v13.1r0 and later; and to Harlequin MultiRIP but not Harlequin Core
D_OUTPUT Selector
Parameter: devOutputParam * output
When the RIP has a band of output data to pass to the plugin, it calls D_OUTPUT
.
No plugin call should take a long time to complete. (See How long should a plugin call take?
.) In an initial D_OUTPUT
call a plugin normally just notes that lines are available, and perhaps initiates the first transfer of data asynchronously, in a separate thread. If the lines have been re‐buffered, for instance to remove the padding, or during data compression, the plugin should update d_linescopied
. Further data would be transferred during subsequent D_IDLE
or D_OUTPUT
calls, or when an interrupt has occurred, or according to any output‐hardware‐specific prescriptions.
When lines have been successfully transferred, the plugin updates the d_linesprinted
field of the deviceDefinition
structure and d_linescopied
, if it has not already done so.
Note:
Most plugins treat D_OUTPUT
and D_IDLE
identically. They ignore the parameter and use the d_bands
and d_linesripped
elements of the deviceDefinition
structure. We recommend that you use the same method.
The parameter passed with the selector is described below.
typedef struct devOutputParam { uint32 *o_band;
int32 o_lines;
int32 o_full;
int32 o_rlelinecomplete;
int32 o_compressed;
} devOutputParam;
o_band
The address of the band of output data. If you wish to process images without using D_IDLE
, the entire band must be consumed quickly at each call to D_OUTPUT
.
o_lines
The number of lines stored in the band. Equal to the value of the d_linesperband
field in the deviceDefinition
structure (see d_linesperband (deviceDefinition)
), with the possible exception of the final band.
o_full
A flag indicating whether all the bands in the buffer are used filled and awaiting consumption.
o_rlelinecomplete
This field can be ignored unless the plugin deals with run‐length encoded data. If it does, see your RLE documentation.
o_compressed
An integer indicating whether this particular band of raster data is compressed or not when the plugin receives it.
If the band contains uncompressed data, o_compressed
will be 0 (zero).
If o_compressed is non‐zero, it indicates that the band data passed to the plugin is still compressed. In this case, the pluginDecompression
field in the pageHeader
structure will contain the algorithm number used to compress the data.