Harlequin RIP SDK
swevents.h File Reference

Defines the core and skin external event numbers used for the Events system. More...

#include "eventapi.h"
#include "timelineapi.h"
#include "swdataapi.h"
#include "monevent.h"

Data Structures

struct  PS_STRING
 
struct  SWMSG_ASYNC_PS
 
struct  SWMSG_INTERRUPT
 
struct  ERROR_DETAIL
 
struct  SWMSG_ERROR
 

Macros

#define MAX_ASYNC_ID   (31)
 
#define SW_ASYNC_QUIT_ID   31
 

Typedefs

typedef struct SWMSG_ASYNC_PS SWMSG_ASYNC_PS
 
typedef struct SWMSG_INTERRUPT SWMSG_INTERRUPT
 
typedef struct ERROR_DETAIL ERROR_DETAIL
 
typedef struct SWMSG_ERROR SWMSG_ERROR
 

Enumerations

enum  {
  SWEVT_INTERRUPT_USER = (EVENT_CORE + ( 0 )) , SWEVT_INTERRUPT_TIMEOUT = (EVENT_CORE + ( 1 )) , SWEVT_ASYNC_PS = (EVENT_CORE + ( 10 )) , SWEVT_PROGRESS_UPDATE = (EVENT_CORE + ( 20 )) ,
  SWEVT_HT_GENERATION_SEARCH = (EVENT_CORE + ( 30 )) , SWEVT_HT_GENERATION_START = (EVENT_CORE + ( 31 )) , SWEVT_HT_GENERATION_END = (EVENT_CORE + ( 32 )) , SWEVT_HT_USAGE_THRESHOLD = (EVENT_CORE + ( 43 )) ,
  SWEVT_HT_USAGE_SPOT = (EVENT_CORE + ( 44 )) , SWEVT_HT_USAGE_MODULAR = (EVENT_CORE + ( 45 )) , SWEVT_HT_USAGE_COLORANT = (EVENT_CORE + ( 46 )) , SWEVT_BANDS_HANDLED = (EVENT_CORE + ( 60 )) ,
  SWEVT_INTERPRET_ERROR = (EVENT_CORE + ( 100 )) , SWEVT_RENDER_ERROR = (EVENT_CORE + ( 101 )) , SWEVT_RR_PAGE_READY = (EVENT_CORE + ( 201 )) , SWEVT_RR_PAGE_COMPLETE = (EVENT_CORE + ( 202 )) ,
  SWEVT_RR_ELEMENT_DEFINE = (EVENT_CORE + ( 203 )) , SWEVT_RR_ELEMENT_UNLOCK = (EVENT_CORE + ( 205 )) , SWEVT_RR_ELEMENT_PENDING = (EVENT_CORE + ( 206 )) , SWEVT_RR_ELEMENT_UPDATE_RASTER = (EVENT_CORE + ( 208 )) ,
  SWEVT_RR_ELEMENT_UPDATE_HITS = (EVENT_CORE + ( 209 )) , SWEVT_RR_CONNECT = (EVENT_CORE + ( 210 )) , SWEVT_RR_DISCONNECT = (EVENT_CORE + ( 211 )) , SWEVT_RR_ELEMENT_QUERY_LOCK = (EVENT_CORE + ( 212 )) ,
  SWEVT_RR_PAGE_DEFINE = (EVENT_CORE + ( 213 )) , SWEVT_MONITOR = (EVENT_CORE + ( 300 )) , SWEVT_NCAPI_OP = (EVENT_CORE + ( 302 ))
}
 Core event ids. More...
 
enum  {
  SWEVT_THROUGHPUT_STATUS = (EVENT_SKIN + ( 0 )) , SWEVT_THROUGHPUT_QCHANGE = (EVENT_SKIN + ( 1 )) , SWEVT_THROUGHPUT_ENABLE = (EVENT_SKIN + ( 2 )) , SWEVT_THROUGHPUT_DELETE = (EVENT_SKIN + ( 3 )) ,
  SWEVT_INPUTS_ENABLE = (EVENT_SKIN + ( 10 )) , SWEVT_INPUTQ_CHANGE = (EVENT_SKIN + ( 11 ))
}
 Skin event ids. More...
 

Detailed Description

Defines the core and skin external event numbers used for the Events system.

Copyright (C) 2023 Global Graphics Software Ltd. All rights reserved. This source code contains the confidential and trade secret information of Global Graphics Software Ltd. It may not be used, copied or distributed for any reason except as set forth in the applicable Global Graphics license agreement.

Macro Definition Documentation

◆ MAX_ASYNC_ID

#define MAX_ASYNC_ID   (31)

Range is 0 to MAX_ASYNC_ID inclusive

◆ SW_ASYNC_QUIT_ID

#define SW_ASYNC_QUIT_ID   31

Built-in action ID to quit the RIP

Typedef Documentation

◆ ERROR_DETAIL

typedef struct ERROR_DETAIL ERROR_DETAIL

Detail for unhandled error event.

Multiple error detail nodes may be on a detail list. Key/Value nodes come in pairs, and File nodes may be succeeded by a Line node.

◆ SWMSG_ASYNC_PS

Asynchronous PS action event message. This message is sent with a SWEVT_ASYNC_PS event, requesting that a pre-installed asynchronous PostScript action is run as soon as the interpreter is at a suitable safe point.

◆ SWMSG_ERROR

typedef struct SWMSG_ERROR SWMSG_ERROR

A job error event. This message is associated with the SWEVT_INTERPRET_ERROR and SWEVT_RENDER_ERROR events.

◆ SWMSG_INTERRUPT

Interrupt and timeout event message generated by the skin. A single message is shared between the two interrupt types (user and timeout). This message is sent with SWEVT_INTERRUPT_TIMEOUT and SWEVT_INTERRUPT_USER events.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Core event ids.

Core events are partitioned into sub-groups so that related events can be added if necessary without disturbing the overall order.

Enumerator
SWEVT_INTERRUPT_USER 

User interrupt of a job. The core RIP consumes the SWMSG_INTERRUPT associated with this event, stopping processing of the job(s) identified by the message.

SWEVT_INTERRUPT_TIMEOUT 

Automatic timeout interrupt of a job. The core RIP consumes the SWMSG_INTERRUPT associated with this event, stopping processing of the job(s) identified by the message.

SWEVT_ASYNC_PS 

Asynchronous PS request. The core RIP consumes the SWMSG_ASYNC_PS associated with this event, initiating the asynchronous PostScript action indicated by the message.

SWEVT_PROGRESS_UPDATE 

Progress update request. The core RIP consumes this event, issuing progress updates on some timelines in response. There is no message associated with this event.

SWEVT_HT_GENERATION_SEARCH 

Halftone generation search update. The core RIP generates this event, passing a SWMSG_HT_GENERATION_SEARCH message with the event to indicate the halftone screen being searched for.

SWEVT_HT_GENERATION_START 

Halftone generation start. The core RIP generates this event, passing a SWMSG_HT_GENERATION_START message with the event when it starts generating a halftone screen cache for a screen name, angle and frequency.

SWEVT_HT_GENERATION_END 

Halftone generation end. The core RIP generates this event, passing a SWMSG_HT_GENERATION_END message with the event to indicate when it has completed generation of an optimized screen for a specified screen name, angle and frequency.

SWEVT_HT_USAGE_THRESHOLD 

Threshold screen usage report. The core RIP generates this event, passing a SWMSG_HT_USAGE_THRESHOLD message with the event to indicate that a particular threshold screen is used in a job.

SWEVT_HT_USAGE_SPOT 

Spot function screen usage report. The core RIP generates this event, passing a SWMSG_HT_USAGE_SPOT message with the event to indicate that a particular spot function screen is used in a job.

SWEVT_HT_USAGE_MODULAR 

Modular halftone usage report. The core RIP generates this event, passing a SWMSG_HT_USAGE_MODULAR message with the event to indicate that a particular modular screen is used in a job.

SWEVT_HT_USAGE_COLORANT 

Screen colorant usage report. The core RIP generates this event, passing a SWMSG_HT_USAGE_COLORANT message with the event to indicate that a particular colorant was screened in a job.

SWEVT_BANDS_HANDLED 

The pagebuffer device generates this event, associated with a SWMSG_BANDS_HANDLED message, to indicate that bands passed to it for output have been copied, output, or otherwise disposed of, and can be re-used by the core RIP. The skin (via the pagebuffer device) may consume bands passed to it by the core RIP asynchronously, returning the band resources when able.

SWEVT_INTERPRET_ERROR 

An error terminating the interpretation of a job. The core RIP generates this event, associated with a SWMSG_ERROR error, when an error has not been handled (by PS or Core code), and will cause the job to fail. It is possible to suppress normal error reporting by modifying the message.

SWEVT_RENDER_ERROR 

An error terminating the rendering of a job. The core RIP generates this event, associated with a SWMSG_ERROR error, when an error has not been handled in the renderer. This may be generated by asynchronous renderer threads after the interpreter has finished and handed off the page. If not, there will usually be a SWEVT_INTERPRET_ERROR event for this error as well. It is possible to suppress further error handling and continue rendering the job, by modifying the message.

SWEVT_RR_PAGE_READY 

HVD page ready. The core RIP generates this event when the cache implementation has been informed that all of the sub-page raster elements for an HVD page have been generated or are being generated, and the page is ready for composition. A SWMSG_RR_PAGE_REF message is associated with this event, indicating which page is ready.

SWEVT_RR_PAGE_COMPLETE 

HVD page complete. The HVD cache implementation generates this event when output of a page is fully complete, using a SWMSG_RR_PAGE_REF message to identify the page completed. The core RIP will respond to this event by issuing SWEVT_RR_ELEMENT_UNLOCK and SWEVT_RR_ELEMENT_UPDATE_HITS events for the sub-page raster elements.

SWEVT_RR_ELEMENT_DEFINE 

HVD sub-page raster element definition. This event is generated by the Core RIP, associating a SWMSG_RR_ELEMENT_DEFINE message, to introduce a raster element which may be cached by HVD. The message contains a unique ID and bounding box for a re-used element, amongst other fields. This event may be issued multiple times with the same unique ID if the same element is used in different HVD scanning windows.

SWEVT_RR_ELEMENT_UNLOCK 

HVD sub-page raster element unlock. This event is generated by the Core RIP, associated with a SWMSG_RR_ELEMENT_REF message. If no other locks apply to the raster element identified by the message, it is eligible for purging at the discretion of the cache implementation. Cache implementations are encouraged to retain raster elements even after unlocking if they have available space.

SWEVT_RR_ELEMENT_PENDING 

HVD sub-page raster element pending. This event is generated by the Core RIP, associated with a SWMSG_RR_ELEMENT_REF message. It indicates to the cache instance that a raster for the element identified by the message is being generated. This allows the cache to respond to queries which arrive before the raster data as if it was already present, preventing the redundant work of creating the raster twice.

SWEVT_RR_ELEMENT_UPDATE_RASTER 

Internal HVD raster element update. This event is generated by the Core RIP, associated with a SWMSG_RR_ELEMENT_UPDATE_RASTER message. It is used to update the internal HVD implementation with raster data generated by the Core RIP. This event is not relevant to external HVD caches.

SWEVT_RR_ELEMENT_UPDATE_HITS 

HVD sub-page raster element hit count update. This event is generated by the Core RIP, associated with a SWMSG_RR_ELEMENT_UPDATE_HITS message. It is used to update the cache instances notion of how popular a particular raster element is, which can influence cache eviction policy.

SWEVT_RR_CONNECT 

HVD cache instance connection. This event is generated by the Core RIP when it initiates use of HVD for a particular job, and is sent with an associated SWMSG_RR_CONNECT message. The message identifies the cache implementation that the Core RIP is configured to use, along with a setup identifier for the cache instance. An event handler for a matching HVD cache should fill in the connection handle and position independent capability flag in the message, and return SW_EVENT_HANDLED. If no suitable cache handler is available, the Core RIP will report an error and abort the job.

SWEVT_RR_DISCONNECT 

HVD cache instance disconnection. This event is generated by the Core RIP when it has finished using an HVD cache instance. It is associated with SWMSG_RR_DISCONNECT message, containing the connection handle of the HVD instance being disconnected. If the HVD cache instance is no longer in use after disconnection, it may purge all of its retained raster elements. The core RIP will not issue this event until it has seen a corresponding SWEVT_RR_PAGE_COMPLETE event issued by the cache instance for every SWEVT_RR_PAGE_READY event that the core sent to the cache.

SWEVT_RR_ELEMENT_QUERY_LOCK 

HVD sub-page raster element query and lock. This event is generated by the Core RIP, associated with a SWMSG_RR_ELEMENT_QUERY_LOCK message. It is used by the Core RIP to query whether the element identified by the message is present in the cache instance (or known to be pending, as indicated by SWEVT_RR_ELEMENT_PENDING). The handler should return SW_EVENT_HANDLED if the raster element is known, SW_EVENT_CONTINUE if the element is not known. If the element is known, then the cache is assumed to have locked it so that it will not be purged until it sees a corresponding SWEVT_RR_ELEMENT_UNLOCK event. This controls the low water mark level of the cache such that the current page can be guaranteed to complete. If the element is not known, the Core RIP will proceed to issue a SWEVT_RR_ELEMENT_PENDING event, initiate generation of the raster, and then will call this event again.

SWEVT_RR_PAGE_DEFINE 

HVD page definition. This event is generated by the Core RIP. A raster page is constructed by HVD out of a set of sub-page raster elements, composed onto an empty raster in a specified order. The associated SWMSG_RR_PAGE_DEFINE message contains an array of page definition pointers, each page definition containing an array of sub-page raster element references and positions. The page definitions may contain all pages in the job, or some sub-range of pages, or tiles from all or a sub-range of pages in the job.

SWEVT_MONITOR 

Monitor information output. This event is generated by both core RIP and skin, associated with a SWMSG_MONITOR message. This event is used to send output to the RIP's logfiles, standard output, standard error, and other information channels. The SWMSG_MONITOR indicates the channel the message is sent to, the information type, and for some types of message a machine-parsable unique ID that can be used to identify specific causes of error or warning messages. See Monitor information events.

SWEVT_NCAPI_OP 

Named Color API action. This API is not present in the Harlequin Core SDK.

◆ anonymous enum

anonymous enum

Skin event ids.

Skin event IDs are owned by skin sub-systems, which may not be present in all Harlequin RIP products.

Skin events are partitioned into sub-groups so that related events can be added if necessary without disturbing the overall order. The names used for skin events follow the same pattern as core events, but are in a different range.

Enumerator
SWEVT_THROUGHPUT_STATUS 

Throughput system status change. This API is not present in the Harlequin Core SDK.

SWEVT_THROUGHPUT_QCHANGE 

Throughput queue change. This API is not present in the Harlequin Core SDK.

SWEVT_THROUGHPUT_ENABLE 

Throughput queue enable/disable/status request. This API is not present in the Harlequin Core SDK.

SWEVT_THROUGHPUT_DELETE 

Throughput queue deletion mode change/status request. This API is not present in the Harlequin Core SDK.

SWEVT_INPUTS_ENABLE 

Inputs start/stop/status request. This event requires a SWMSG_INPUTS_ENABLE message. The event may be used to enable, disable, or query the input queue state. Handlers with a priority higher than SW_EVENT_NORMAL can affect queue state requests by filtering or modifying events. Handlers with priority lower than SW_EVENT_NORMAL are purely informational, and will receive changes to the current queue state.

SWEVT_INPUTQ_CHANGE 

Input queue change. The input queue system generates this event, associated with a SWMSG_INPUTQ_CHANGE message to inform clients of the new input queue state. This event is purely informational, and is issued after the change is final. The return value of the event handler does not affect the queue change.