home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-09-22 | 37.2 KB | 1,151 lines |
- #ifndef pdriver_H
- #define pdriver_H
-
- /* C header file for PDriver
- * written by DefMod (Sep 16 1994) on Thu Sep 22 16:37:52 1994
- * Copyright © Acorn Computers Ltd, 1994
- */
-
- /*************************************************************************
- * This source file was written by Acorn Computers Limited. It is part *
- * of the OSLib library for writing applications for RISC OS. It may be *
- * used freely in the creation of programs for RISC OS. *
- *************************************************************************/
-
- #ifndef types_H
- #include "types.h"
- #endif
-
- #ifndef os_H
- #include "os.h"
- #endif
-
- #ifndef draw_H
- #include "draw.h"
- #endif
-
- #ifndef font_H
- #include "font.h"
- #endif
-
- #ifndef messagetrans_H
- #include "messagetrans.h"
- #endif
-
- /**********************************
- * SWI names and SWI reason codes *
- **********************************/
- #undef PDriver_Info
- #define PDriver_Info 0x80140
- #undef XPDriver_Info
- #define XPDriver_Info 0xA0140
- #undef PDriver_SetInfo
- #define PDriver_SetInfo 0x80141
- #undef XPDriver_SetInfo
- #define XPDriver_SetInfo 0xA0141
- #undef PDriver_CheckFeatures
- #define PDriver_CheckFeatures 0x80142
- #undef XPDriver_CheckFeatures
- #define XPDriver_CheckFeatures 0xA0142
- #undef PDriver_PageSize
- #define PDriver_PageSize 0x80143
- #undef XPDriver_PageSize
- #define XPDriver_PageSize 0xA0143
- #undef PDriver_SetPageSize
- #define PDriver_SetPageSize 0x80144
- #undef XPDriver_SetPageSize
- #define XPDriver_SetPageSize 0xA0144
- #undef PDriver_SelectJob
- #define PDriver_SelectJob 0x80145
- #undef XPDriver_SelectJob
- #define XPDriver_SelectJob 0xA0145
- #undef PDriver_CurrentJob
- #define PDriver_CurrentJob 0x80146
- #undef XPDriver_CurrentJob
- #define XPDriver_CurrentJob 0xA0146
- #undef PDriver_FontSWI
- #define PDriver_FontSWI 0x80147
- #undef XPDriver_FontSWI
- #define XPDriver_FontSWI 0xA0147
- #undef PDriver_EndJob
- #define PDriver_EndJob 0x80148
- #undef XPDriver_EndJob
- #define XPDriver_EndJob 0xA0148
- #undef PDriver_AbortJob
- #define PDriver_AbortJob 0x80149
- #undef XPDriver_AbortJob
- #define XPDriver_AbortJob 0xA0149
- #undef PDriver_Reset
- #define PDriver_Reset 0x8014A
- #undef XPDriver_Reset
- #define XPDriver_Reset 0xA014A
- #undef PDriver_GiveRectangle
- #define PDriver_GiveRectangle 0x8014B
- #undef XPDriver_GiveRectangle
- #define XPDriver_GiveRectangle 0xA014B
- #undef PDriver_DrawPage
- #define PDriver_DrawPage 0x8014C
- #undef XPDriver_DrawPage
- #define XPDriver_DrawPage 0xA014C
- #undef PDriver_GetRectangle
- #define PDriver_GetRectangle 0x8014D
- #undef XPDriver_GetRectangle
- #define XPDriver_GetRectangle 0xA014D
- #undef PDriver_CancelJob
- #define PDriver_CancelJob 0x8014E
- #undef XPDriver_CancelJob
- #define XPDriver_CancelJob 0xA014E
- #undef PDriver_ScreenDump
- #define PDriver_ScreenDump 0x8014F
- #undef XPDriver_ScreenDump
- #define XPDriver_ScreenDump 0xA014F
- #undef PDriver_EnumerateJobs
- #define PDriver_EnumerateJobs 0x80150
- #undef XPDriver_EnumerateJobs
- #define XPDriver_EnumerateJobs 0xA0150
- #undef PDriver_SetPrinter
- #define PDriver_SetPrinter 0x80151
- #undef XPDriver_SetPrinter
- #define XPDriver_SetPrinter 0xA0151
- #undef PDriver_CancelJobWithError
- #define PDriver_CancelJobWithError 0x80152
- #undef XPDriver_CancelJobWithError
- #define XPDriver_CancelJobWithError 0xA0152
- #undef PDriver_SelectIllustration
- #define PDriver_SelectIllustration 0x80153
- #undef XPDriver_SelectIllustration
- #define XPDriver_SelectIllustration 0xA0153
- #undef PDriver_InsertIllustration
- #define PDriver_InsertIllustration 0x80154
- #undef XPDriver_InsertIllustration
- #define XPDriver_InsertIllustration 0xA0154
- #undef PDriver_DeclareFont
- #define PDriver_DeclareFont 0x80155
- #undef XPDriver_DeclareFont
- #define XPDriver_DeclareFont 0xA0155
- #undef PDriver_DeclareDriver
- #define PDriver_DeclareDriver 0x80156
- #undef XPDriver_DeclareDriver
- #define XPDriver_DeclareDriver 0xA0156
- #undef PDriver_RemoveDriver
- #define PDriver_RemoveDriver 0x80157
- #undef XPDriver_RemoveDriver
- #define XPDriver_RemoveDriver 0xA0157
- #undef PDriver_SelectDriver
- #define PDriver_SelectDriver 0x80158
- #undef XPDriver_SelectDriver
- #define XPDriver_SelectDriver 0xA0158
- #undef PDriver_EnumerateDrivers
- #define PDriver_EnumerateDrivers 0x80159
- #undef XPDriver_EnumerateDrivers
- #define XPDriver_EnumerateDrivers 0xA0159
- #undef PDriver_MiscOp
- #define PDriver_MiscOp 0x8015A
- #undef XPDriver_MiscOp
- #define XPDriver_MiscOp 0xA015A
- #undef PDriverMiscOp_AddFont
- #define PDriverMiscOp_AddFont 0x0
- #undef PDriverMiscOp_RemoveFont
- #define PDriverMiscOp_RemoveFont 0x1
- #undef PDriverMiscOp_EnumerateFonts
- #define PDriverMiscOp_EnumerateFonts 0x2
- #undef PDriverMiscOp_RegisterDumper
- #define PDriverMiscOp_RegisterDumper 0x80000000
- #undef PDriverMiscOp_DeregisterDumper
- #define PDriverMiscOp_DeregisterDumper 0x80000001
- #undef PDriverMiscOp_StripTypes
- #define PDriverMiscOp_StripTypes 0x80000002
- #undef PDriver_MiscOpForDriver
- #define PDriver_MiscOpForDriver 0x8015B
- #undef XPDriver_MiscOpForDriver
- #define XPDriver_MiscOpForDriver 0xA015B
- #undef PDriverMiscOpForDriver_AddFont
- #define PDriverMiscOpForDriver_AddFont 0x0
- #undef PDriverMiscOpForDriver_RemoveFont
- #define PDriverMiscOpForDriver_RemoveFont 0x1
- #undef PDriverMiscOpForDriver_EnumerateFonts
- #define PDriverMiscOpForDriver_EnumerateFonts 0x2
- #undef PDriverMiscOpForDriver_RegisterDumper
- #define PDriverMiscOpForDriver_RegisterDumper 0x80000000
- #undef PDriverMiscOpForDriver_DeregisterDumper
- #define PDriverMiscOpForDriver_DeregisterDumper 0x80000001
- #undef PDriverMiscOpForDriver_StripTypes
- #define PDriverMiscOpForDriver_StripTypes 0x80000002
- #undef PDriver_SetDriver
- #define PDriver_SetDriver 0x8015C
- #undef XPDriver_SetDriver
- #define XPDriver_SetDriver 0xA015C
- #undef Service_Print
- #define Service_Print 0x41
- #undef Service_PDriverStarting
- #define Service_PDriverStarting 0x65
- #undef Service_PDriverGetMessages
- #define Service_PDriverGetMessages 0x78
- #undef Service_PDriverChanged
- #define Service_PDriverChanged 0x7F
-
- /************************************
- * Structure and union declarations *
- ************************************/
- typedef struct pdriver_message_print_error pdriver_message_print_error;
- typedef struct pdriver_message_print_type_odd pdriver_message_print_type_odd;
- typedef struct pdriver_message_ps_printer_query pdriver_message_ps_printer_query;
-
- /********************
- * Type definitions *
- ********************/
- struct pdriver_message_print_error
- { int errnum;
- char errmess [232];
- };
-
- struct pdriver_message_print_type_odd
- { bits file_type;
- char file_name [232];
- };
-
- struct pdriver_message_ps_printer_query
- { byte *buffer;
- int size;
- };
-
- /************************
- * Constant definitions *
- ************************/
- #define pdriver_OS_UNIT 400
- #define pdriver_INCH 72000
- #define pdriver_POINT 1000
- #define pdriver_TYPE_PS 0
- #define pdriver_TYPE_DM 1
- #define pdriver_TYPE_LJ 2
- #define pdriver_TYPE_IX 3
- #define pdriver_TYPE_FX 4
- #define pdriver_TYPE_LZ 5
- #define pdriver_TYPE_LB 6
- #define pdriver_TYPE_UF 7
- #define pdriver_TYPE_JX 99
- #define pdriver_TYPE_PJ 99
- #define pdriver_FEATURE_COLOUR 0x1u
- #define pdriver_FEATURE_LIMITED_COLOURS 0x2u
- #define pdriver_FEATURE_DISCRETE_COLOURS 0x4u
- #define pdriver_FEATURE_OUTLINES_ONLY 0x100u
- #define pdriver_FEATURE_THIN_LINES_ONLY 0x200u
- #define pdriver_FEATURE_NO_OVERWRITE 0x400u
- #define pdriver_FEATURE_TRFM_SPRITE 0x800u
- #define pdriver_FEATURE_TRFM_FONT 0x1000u
- #define pdriver_FEATURE_SCREEN_DUMP 0x1000000u
- #define pdriver_FEATURE_GENERAL_TRFM 0x2000000u
- #define pdriver_FEATURE_INSERT_ILLUSTRATION 0x4000000u
- #define pdriver_FEATURE_MISC_OP 0x8000000u
- #define pdriver_FEATURE_SET_DRIVER 0x10000000u
- #define pdriver_FEATURE_DECLARE_FONT 0x20000000u
- #define pdriver_NO_DOWNLOAD 0x1u
- #define pdriver_KERNED 0x2u
- #define error_PDRIVER_BAD_FEATURES 0x5C0u
- #define error_PDRIVER_NO_CURRENT_SPRITE 0x5C1u
- #define error_PDRIVER_NO_JOB_SELECTED 0x5C2u
- #define error_PDRIVER_NO_SUCH_JOB 0x5C3u
- #define error_PDRIVER_NO_CURRENT_PAGE 0x5C4u
- #define error_PDRIVER_PRINTING_PAGE 0x5C5u
- #define error_PDRIVER_INVALID_COPIES 0x5C6u
- #define error_PDRIVER_CANNOT_HANDLE 0x5C7u
- #define error_PDRIVER_BAD_HALFTONE 0x5C8u
- #define error_PDRIVER_CANCELLED 0x5C9u
- #define error_PDRIVER_SINGULAR_MATRIX 0x5CAu
- #define error_PDRIVER_BAD_RECTANGLE 0x5CBu
- #define error_PDRIVER_RECTANGLES_MISS 0x5CCu
- #define error_PDRIVER_NO_FREE_MEMORY 0x5CDu
- #define error_PDRIVER_NOT_ONE_PAGE 0x5CEu
- #define error_PDRIVER_IN_USE 0x5CFu
- #define error_PDRIVER_OVERFLOW 0x5D0u
- #define error_PDRIVER_BAD_MISC_OP 0x5D1u
- #define error_PDRIVER_NO_DUPLICATES 0x5D2u
- #define error_PDRIVER_NO_CURRENT_DRIVER 0x5D3u
- #define error_PDRIVER_UNKNOWN_NUMBER 0x5D4u
- #define error_PDRIVER_DUPLICATE_NUMBER 0x5D5u
- #define error_PDRIVER_BAD_SET_PRINTER 0x5D6u
- #define message_PRINT_FILE 0x80140u
- #define message_WILL_PRINT 0x80141u
- #define message_PRINT_SAVE 0x80142u
- #define message_PRINT_INIT 0x80143u
- #define message_PRINT_ERROR 0x80144u
- #define message_PRINT_TYPE_ODD 0x80145u
- #define message_PRINT_TYPE_KNOWN 0x80146u
- #define message_SET_PRINTER 0x80147u
- #define message_PRINT_INIT2 0x80148u
- #define message_PS_PRINTER_QUERY 0x8014Cu
- #define message_PS_PRINTER_ACK 0x8014Du
- #define message_PS_PRINTER_MODIFIED 0x8014Eu
- #define message_PS_PRINTER_DEFAULTS 0x8014Fu
- #define message_PS_PRINTER_DEFAULTED 0x80150u
- #define message_PS_PRINTER_NOT_PS 0x80151u
- #define message_RESET_PRINTER 0x80152u
- #define message_PS_IS_FONTPRINT_RUNNING 0x80153u
-
- /*************************
- * Function declarations *
- *************************/
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- /*************************************************************
- * NOTE: The following functions provide direct access to *
- * the SWI's noted in the function description. *
- * Please read the relevant PRM section for more *
- * information on their input/output parameters. *
- *************************************************************/
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_info()
- *
- * Description: Gets information on the printer manager
- *
- * Output: type - value of R0 on exit
- * xres - value of R1 on exit
- * yres - value of R2 on exit
- * features - value of R3 on exit
- * desc - value of R4 on exit
- * halftone_xres - value of R5 on exit
- * halftone_yres - value of R6 on exit
- * printer - value of R7 on exit
- *
- * Other notes: Calls SWI 0x80140.
- */
-
- extern os_error *xpdriver_info (int *type,
- int *xres,
- int *yres,
- bits *features,
- char **desc,
- int *halftone_xres,
- int *halftone_yres,
- int *printer);
- extern void pdriver_info (int *type,
- int *xres,
- int *yres,
- bits *features,
- char **desc,
- int *halftone_xres,
- int *halftone_yres,
- int *printer);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_set_info()
- *
- * Description: Configures the printer driver
- *
- * Input: xres - value of R1 on entry
- * yres - value of R2 on entry
- * features - value of R3 on entry
- * pdumper_name - value of R5 on entry
- * pdumper_no - value of R6 on entry
- * printer - value of R7 on entry
- *
- * Other notes: Calls SWI 0x80141.
- */
-
- extern os_error *xpdriver_set_info (int xres,
- int yres,
- bits features,
- char *pdumper_name,
- int pdumper_no,
- int printer);
- extern void pdriver_set_info (int xres,
- int yres,
- bits features,
- char *pdumper_name,
- int pdumper_no,
- int printer);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_check_features()
- *
- * Description: Checks the features of a printer
- *
- * Input: features - value of R0 on entry
- * value - value of R1 on entry
- *
- * Other notes: Calls SWI 0x80142.
- */
-
- extern os_error *xpdriver_check_features (bits features,
- bits value);
- extern void pdriver_check_features (bits features,
- bits value);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_page_size()
- *
- * Description: Finds how large the paper and printable area are
- *
- * Output: xsize - value of R1 on exit
- * ysize - value of R2 on exit
- * left - value of R3 on exit
- * bottom - value of R4 on exit
- * right - value of R5 on exit
- * top - value of R6 on exit
- *
- * Other notes: Calls SWI 0x80143.
- */
-
- extern os_error *xpdriver_page_size (int *xsize,
- int *ysize,
- int *left,
- int *bottom,
- int *right,
- int *top);
- extern void pdriver_page_size (int *xsize,
- int *ysize,
- int *left,
- int *bottom,
- int *right,
- int *top);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_set_page_size()
- *
- * Description: Sets how large the paper and printable area are
- *
- * Input: xsize - value of R1 on entry
- * ysize - value of R2 on entry
- * left - value of R3 on entry
- * bottom - value of R4 on entry
- * right - value of R5 on entry
- * top - value of R6 on entry
- *
- * Other notes: Calls SWI 0x80144.
- */
-
- extern os_error *xpdriver_set_page_size (int xsize,
- int ysize,
- int left,
- int bottom,
- int right,
- int top);
- extern void pdriver_set_page_size (int xsize,
- int ysize,
- int left,
- int bottom,
- int right,
- int top);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_select_job()
- *
- * Description: Makes a given print job the current one
- *
- * Input: job - value of R0 on entry
- * title - value of R1 on entry
- *
- * Output: old_job - value of R0 on exit (X version only)
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x80145.
- */
-
- extern os_error *xpdriver_select_job (os_f job,
- char *title,
- os_f *old_job);
- extern os_f pdriver_select_job (os_f job,
- char *title);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_current_job()
- *
- * Description: Gets the file handle of the current job
- *
- * Output: job - value of R0 on exit (X version only)
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x80146.
- */
-
- extern os_error *xpdriver_current_job (os_f *job);
- extern os_f pdriver_current_job (void);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_end_job()
- *
- * Description: Ends a print job normally
- *
- * Input: job - value of R0 on entry
- *
- * Other notes: Calls SWI 0x80148.
- */
-
- extern os_error *xpdriver_end_job (os_f job);
- extern void pdriver_end_job (os_f job);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_abort_job()
- *
- * Description: Ends a print job without any further output
- *
- * Input: job - value of R0 on entry
- *
- * Other notes: Calls SWI 0x80149.
- */
-
- extern os_error *xpdriver_abort_job (os_f job);
- extern void pdriver_abort_job (os_f job);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_reset()
- *
- * Description: Aborts all print jobs
- *
- * Other notes: Calls SWI 0x8014A.
- */
-
- extern os_error *xpdriver_reset (void);
- extern void pdriver_reset (void);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_give_rectangle()
- *
- * Description: Specifies a rectangle to be printed
- *
- * Input: id - value of R0 on entry
- * rect - value of R1 on entry
- * trfm - value of R2 on entry
- * pos - value of R3 on entry
- * bg - value of R4 on entry
- *
- * Other notes: Calls SWI 0x8014B.
- */
-
- extern os_error *xpdriver_give_rectangle (int id,
- os_box *rect,
- os_hom_trfm *trfm,
- os_coord *pos,
- os_colour bg);
- extern void pdriver_give_rectangle (int id,
- os_box *rect,
- os_hom_trfm *trfm,
- os_coord *pos,
- os_colour bg);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_draw_page()
- *
- * Description: Called to draw the page after all rectangles have been
- * specified
- *
- * Input: copies - value of R0 on entry
- * rect - value of R1 on entry
- * page - value of R2 on entry
- * page_no - value of R3 on entry
- *
- * Output: more - value of R0 on exit (X version only)
- * id - value of R2 on exit
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x8014C.
- */
-
- extern os_error *xpdriver_draw_page (int copies,
- os_box *rect,
- int page,
- char *page_no,
- bool *more,
- int *id);
- extern bool pdriver_draw_page (int copies,
- os_box *rect,
- int page,
- char *page_no,
- int *id);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_get_rectangle()
- *
- * Description: Gets the next print rectangle
- *
- * Input: rect - value of R1 on entry
- *
- * Output: more - value of R0 on exit (X version only)
- * id - value of R2 on exit
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x8014D.
- */
-
- extern os_error *xpdriver_get_rectangle (os_box *rect,
- bool *more,
- int *id);
- extern bool pdriver_get_rectangle (os_box *rect,
- int *id);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_cancel_job()
- *
- * Description: Stops a print job from printing
- *
- * Input: job - value of R0 on entry
- *
- * Other notes: Calls SWI 0x8014E.
- */
-
- extern os_error *xpdriver_cancel_job (os_f job);
- extern void pdriver_cancel_job (os_f job);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_screen_dump()
- *
- * Description: Outputs a screen dump to the printer
- *
- * Input: job - value of R0 on entry
- *
- * Other notes: Calls SWI 0x8014F.
- */
-
- extern os_error *xpdriver_screen_dump (os_f job);
- extern void pdriver_screen_dump (os_f job);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_enumerate_jobs()
- *
- * Description: Lists existing print jobs
- *
- * Input: context - value of R0 on entry
- *
- * Output: context_out - value of R0 on exit (X version only)
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x80150.
- */
-
- extern os_error *xpdriver_enumerate_jobs (int context,
- int *context_out);
- extern int pdriver_enumerate_jobs (int context);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_cancel_job_with_error()
- *
- * Description: Cancels a print job - future attempts to output to it are
- * errors
- *
- * Input: job - value of R0 on entry
- * error - value of R1 on entry
- *
- * Other notes: Calls SWI 0x80152.
- */
-
- extern os_error *xpdriver_cancel_job_with_error (os_f job,
- os_error *error);
- extern void pdriver_cancel_job_with_error (os_f job,
- os_error *error);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_select_illustration()
- *
- * Description: Makes the given print job the current one, and treats it
- * as an illustration
- *
- * Input: job - value of R0 on entry
- * title - value of R1 on entry
- *
- * Output: old_job - value of R0 on exit (X version only)
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x80153.
- */
-
- extern os_error *xpdriver_select_illustration (os_f job,
- char *title,
- os_f *old_job);
- extern os_f pdriver_select_illustration (os_f job,
- char *title);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_insert_illustration()
- *
- * Description: Inserts a file containing an illustration into the
- * current job's output
- *
- * Input: job - value of R0 on entry
- * clip_path - value of R1 on entry
- * x0 - value of R2 on entry
- * y0 - value of R3 on entry
- * x1 - value of R4 on entry
- * y1 - value of R5 on entry
- * x2 - value of R6 on entry
- * y2 - value of R7 on entry
- *
- * Other notes: Calls SWI 0x80154.
- */
-
- extern os_error *xpdriver_insert_illustration (os_f job,
- draw_path *clip_path,
- int x0,
- int y0,
- int x1,
- int y1,
- int x2,
- int y2);
- extern void pdriver_insert_illustration (os_f job,
- draw_path *clip_path,
- int x0,
- int y0,
- int x1,
- int y1,
- int x2,
- int y2);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_declare_font()
- *
- * Description: Declares the fonts that will be used in a document
- *
- * Input: font - value of R0 on entry
- * font_name - value of R1 on entry
- * flags - value of R2 on entry
- *
- * Other notes: Calls SWI 0x80155.
- */
-
- extern os_error *xpdriver_declare_font (font_f font,
- char *font_name,
- bits flags);
- extern void pdriver_declare_font (font_f font,
- char *font_name,
- bits flags);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_declare_driver()
- *
- * Description: Registers a printer driver with the PDriver sharer module
- *
- * Input: reason - value of R0 on entry
- * workspace - value of R1 on entry
- * type - value of R2 on entry
- *
- * Other notes: Calls SWI 0x80156.
- */
-
- extern os_error *xpdriver_declare_driver (int reason,
- void *workspace,
- int type);
- extern void pdriver_declare_driver (int reason,
- void *workspace,
- int type);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_remove_driver()
- *
- * Description: Deregisters a printer driver with the PDriver sharer
- * module
- *
- * Input: type - value of R0 on entry
- *
- * Other notes: Calls SWI 0x80157.
- */
-
- extern os_error *xpdriver_remove_driver (int type);
- extern void pdriver_remove_driver (int type);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_select_driver()
- *
- * Description: Selects the specified printer driver
- *
- * Input: type - value of R0 on entry
- *
- * Output: old_type - value of R0 on exit (X version only)
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x80158.
- */
-
- extern os_error *xpdriver_select_driver (int type,
- int *old_type);
- extern int pdriver_select_driver (int type);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_enumerate_drivers()
- *
- * Description: Enumerates all printer drivers within the system
- *
- * Input: context - value of R0 on entry
- *
- * Output: context_out - value of R0 on exit (X version only)
- * type - value of R1 on exit
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x80159.
- */
-
- extern os_error *xpdriver_enumerate_drivers (int context,
- int *context_out,
- int *type);
- extern int pdriver_enumerate_drivers (int context,
- int *type);
-
- /* ------------------------------------------------------------------------
- * Function: pdrivermiscop_add_font()
- *
- * Description: Adds a font name to a list of those known to the current
- * printer driver
- *
- * Input: font_name - value of R1 on entry
- * alien_name - value of R2 on entry
- * flags - value of R3 on entry
- * add_flags - value of R4 on entry
- *
- * Other notes: Calls SWI 0x8015A with R0 = 0x0.
- */
-
- extern os_error *xpdrivermiscop_add_font (char *font_name,
- char *alien_name,
- bits flags,
- bits add_flags);
- extern void pdrivermiscop_add_font (char *font_name,
- char *alien_name,
- bits flags,
- bits add_flags);
-
- /* ------------------------------------------------------------------------
- * Function: pdrivermiscop_remove_font()
- *
- * Description: Removes font name(s) from a list of those known to the
- * current printer driver
- *
- * Input: font_name - value of R1 on entry
- *
- * Other notes: Calls SWI 0x8015A with R0 = 0x1.
- */
-
- extern os_error *xpdrivermiscop_remove_font (char *font_name);
- extern void pdrivermiscop_remove_font (char *font_name);
-
- /* ------------------------------------------------------------------------
- * Function: pdrivermiscop_enumerate_fonts()
- *
- * Description: Enumerates the font names known to the current printer
- * driver
- *
- * Input: buffer - value of R1 on entry
- * size - value of R2 on entry
- * context - value of R3 on entry
- * flags - value of R4 on entry
- *
- * Output: end - value of R1 on exit
- * context_out - value of R3 on exit (X version only)
- *
- * Returns: R3 (non-X version only)
- *
- * Other notes: Calls SWI 0x8015A with R0 = 0x2.
- */
-
- extern os_error *xpdrivermiscop_enumerate_fonts (char *buffer,
- int size,
- int context,
- bits flags,
- char **end,
- int *context_out);
- extern int pdrivermiscop_enumerate_fonts (char *buffer,
- int size,
- int context,
- bits flags,
- char **end);
-
- /* ------------------------------------------------------------------------
- * Function: pdrivermiscop_register_dumper()
- *
- * Description: Registers a printer dumper with the current printer
- * driver, PDriverDP
- *
- * Input: pdumper_no - value of R1 on entry
- * dp_version_required - value of R2 on entry
- * dumper_workspace - value of R3 on entry
- * dumper_code - value of R4 on entry
- * supported_calls - value of R5 on entry
- * supported_strips - value of R6 on entry
- *
- * Other notes: Calls SWI 0x8015A with R0 = 0x80000000.
- */
-
- extern os_error *xpdrivermiscop_register_dumper (int pdumper_no,
- int dp_version_required,
- void *dumper_workspace,
- void *dumper_code,
- bits supported_calls,
- bits supported_strips);
- extern void pdrivermiscop_register_dumper (int pdumper_no,
- int dp_version_required,
- void *dumper_workspace,
- void *dumper_code,
- bits supported_calls,
- bits supported_strips);
-
- /* ------------------------------------------------------------------------
- * Function: pdrivermiscop_deregister_dumper()
- *
- * Description: Deregisters a printer dumper with the current printer
- * driver, PDriverDP
- *
- * Input: pdumper_no - value of R1 on entry
- *
- * Other notes: Calls SWI 0x8015A with R0 = 0x80000001.
- */
-
- extern os_error *xpdrivermiscop_deregister_dumper (int pdumper_no);
- extern void pdrivermiscop_deregister_dumper (int pdumper_no);
-
- /* ------------------------------------------------------------------------
- * Function: pdrivermiscop_strip_types()
- *
- * Description: Returns a bit mask showing which strip types a printer
- * dumper supports with the current printer driver
- *
- * Input: pdumper_no - value of R1 on entry
- *
- * Output: type_mask - value of R0 on exit (X version only)
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x8015A with R0 = 0x80000002.
- */
-
- extern os_error *xpdrivermiscop_strip_types (int pdumper_no,
- bits *type_mask);
- extern bits pdrivermiscop_strip_types (int pdumper_no);
-
- /* ------------------------------------------------------------------------
- * Function: pdrivermiscopfordriver_add_font()
- *
- * Description: Adds a font name to a list of those known to a specified
- * printer driver
- *
- * Input: font_name - value of R1 on entry
- * alien_name - value of R2 on entry
- * flags - value of R3 on entry
- * add_flags - value of R4 on entry
- * type - value of R8 on entry
- *
- * Other notes: Calls SWI 0x8015B with R0 = 0x0.
- */
-
- extern os_error *xpdrivermiscopfordriver_add_font (char *font_name,
- char *alien_name,
- bits flags,
- bits add_flags,
- int type);
- extern void pdrivermiscopfordriver_add_font (char *font_name,
- char *alien_name,
- bits flags,
- bits add_flags,
- int type);
-
- /* ------------------------------------------------------------------------
- * Function: pdrivermiscopfordriver_remove_font()
- *
- * Description: Removes font name(s) from a list of those known to a
- * specified printer driver
- *
- * Input: font_name - value of R1 on entry
- * type - value of R8 on entry
- *
- * Other notes: Calls SWI 0x8015B with R0 = 0x1.
- */
-
- extern os_error *xpdrivermiscopfordriver_remove_font (char *font_name,
- int type);
- extern void pdrivermiscopfordriver_remove_font (char *font_name,
- int type);
-
- /* ------------------------------------------------------------------------
- * Function: pdrivermiscopfordriver_enumerate_fonts()
- *
- * Description: Enumerates the font names known to a specified printer
- * driver
- *
- * Input: buffer - value of R1 on entry
- * size - value of R2 on entry
- * context - value of R3 on entry
- * flags - value of R4 on entry
- * type - value of R8 on entry
- *
- * Output: end - value of R1 on exit
- * context_out - value of R3 on exit (X version only)
- *
- * Returns: R3 (non-X version only)
- *
- * Other notes: Calls SWI 0x8015B with R0 = 0x2.
- */
-
- extern os_error *xpdrivermiscopfordriver_enumerate_fonts (char *buffer,
- int size,
- int context,
- bits flags,
- int type,
- char **end,
- int *context_out);
- extern int pdrivermiscopfordriver_enumerate_fonts (char *buffer,
- int size,
- int context,
- bits flags,
- int type,
- char **end);
-
- /* ------------------------------------------------------------------------
- * Function: pdrivermiscopfordriver_register_dumper()
- *
- * Description: Registers a printer dumper a specified printer driver,
- * PDriverDP
- *
- * Input: pdumper_no - value of R1 on entry
- * dp_version_required - value of R2 on entry
- * dumper_workspace - value of R3 on entry
- * dumper_code - value of R4 on entry
- * supported_calls - value of R5 on entry
- * supported_strips - value of R6 on entry
- * type - value of R8 on entry
- *
- * Other notes: Calls SWI 0x8015A with R0 = 0x80000000.
- */
-
- extern os_error *xpdrivermiscopfordriver_register_dumper (int pdumper_no,
- int dp_version_required,
- void *dumper_workspace,
- void *dumper_code,
- bits supported_calls,
- bits supported_strips,
- int type);
- extern void pdrivermiscopfordriver_register_dumper (int pdumper_no,
- int dp_version_required,
- void *dumper_workspace,
- void *dumper_code,
- bits supported_calls,
- bits supported_strips,
- int type);
-
- /* ------------------------------------------------------------------------
- * Function: pdrivermiscopfordriver_deregister_dumper()
- *
- * Description: Deregisters a printer dumper with a specified printer
- * driver, PDriverDP
- *
- * Input: pdumper_no - value of R1 on entry
- * type - value of R8 on entry
- *
- * Other notes: Calls SWI 0x8015A with R0 = 0x80000001.
- */
-
- extern os_error *xpdrivermiscopfordriver_deregister_dumper (int pdumper_no,
- int type);
- extern void pdrivermiscopfordriver_deregister_dumper (int pdumper_no,
- int type);
-
- /* ------------------------------------------------------------------------
- * Function: pdrivermiscopfordriver_strip_types()
- *
- * Description: Returns a bit mask showing which strip types a printer
- * dumper supports with a specified printer driver
- *
- * Input: pdumper_no - value of R1 on entry
- * type - value of R8 on entry
- *
- * Output: type_mask - value of R0 on exit (X version only)
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x8015A with R0 = 0x80000002.
- */
-
- extern os_error *xpdrivermiscopfordriver_strip_types (int pdumper_no,
- int type,
- bits *type_mask);
- extern bits pdrivermiscopfordriver_strip_types (int pdumper_no,
- int type);
-
- /* ------------------------------------------------------------------------
- * Function: pdriver_set_driver()
- *
- * Description: Configures the current printer driver
- *
- * Input: pdumper_no - value of R1 on entry
- * ensure_command - value of R2 on entry
- * configuration_data1 - value of R3 on entry
- * configuration_data2 - value of R4 on entry
- * configuration_word - value of R5 on entry
- *
- * Other notes: Calls SWI 0x8015C.
- */
-
- extern os_error *xpdriver_set_driver (int pdumper_no,
- char *ensure_command,
- byte *configuration_data1,
- byte *configuration_data2,
- int configuration_word);
- extern void pdriver_set_driver (int pdumper_no,
- char *ensure_command,
- byte *configuration_data1,
- byte *configuration_data2,
- int configuration_word);
-
- /* ------------------------------------------------------------------------
- * Function: service_print()
- *
- * Description: For internal use only
- *
- * Other notes: Calls SWI 0x30 with R1 = 0x41.
- */
-
- extern os_error *xservice_print (void);
- extern void service_print (void);
-
- /* ------------------------------------------------------------------------
- * Function: service_pdriver_starting()
- *
- * Description: PDriver sharer module started
- *
- * Other notes: Calls SWI 0x30 with R1 = 0x65.
- */
-
- extern os_error *xservice_pdriver_starting (void);
- extern void service_pdriver_starting (void);
-
- /* ------------------------------------------------------------------------
- * Function: service_pdriver_get_messages()
- *
- * Description: Get common messages file
- *
- * Output: unclaimed - value of R1 on exit (X version only)
- * common_cb - value of R3 on exit
- *
- * Returns: R1 (non-X version only)
- *
- * Other notes: Calls SWI 0x30 with R1 = 0x78.
- */
-
- extern os_error *xservice_pdriver_get_messages (bool *unclaimed,
- messagetrans_control_block **common_cb);
- extern bool service_pdriver_get_messages (messagetrans_control_block **common_cb);
-
- /* ------------------------------------------------------------------------
- * Function: service_pdriver_changed()
- *
- * Description: The currently selected printer driver has changed
- *
- * Other notes: Calls SWI 0x30 with R1 = 0x7F.
- */
-
- extern os_error *xservice_pdriver_changed (void);
- extern void service_pdriver_changed (void);
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif
-