store the pre-alphacomposit hook and allow it to be queried.
[AROS.git] / workbench / devs / printer / printer_intern.h
blob9749868ba4bf2309b11b368654254275e2a4b5c8
1 /*
2 * Copyright (C) 2012, The AROS Development Team. All rights reserved.
3 * Author: Jason S. McMullan <jason.mcmullan@gmail.com>
5 * Licensed under the AROS PUBLIC LICENSE (APL) Version 1.1
6 */
8 #ifndef PRINTER_INTERN_H
9 #define PRINTER_INTERN_H
11 #include <exec/devices.h>
12 #include <libraries/asl.h>
13 #include <devices/prtbase.h>
14 #include <devices/printer.h>
16 #include <prefs/printertxt.h>
17 #include <prefs/printergfx.h>
18 #include <dos/dos.h>
20 #include <turboprint.h>
22 /*********************************************************************************************/
24 struct PrinterBase;
26 struct PrinterPrefs {
27 struct PrinterTxtPrefs pp_Txt;
28 struct PrinterUnitPrefs pp_Unit;
29 struct PrinterDeviceUnitPrefs pp_DeviceUnit;
30 struct PrinterGfxPrefs pp_Gfx;
33 struct PrinterUnit {
34 struct PrinterData pu_PrinterData;
35 struct PrinterBase *pu_PrinterBase;
36 struct PrinterPrefs pu_Prefs;
37 struct Process *pu_Process;
38 struct Hook *pu_ErrHook;
40 struct PrinterUnitText {
41 BYTE pt_CurrentLine;
42 BYTE pt_CRLF;
43 BYTE pt_Spacing;
44 } pu_Text;
47 /*********************************************************************************************/
49 #define PRINTER_UNITS 10 /* Same as the max # of printers */
51 struct PrinterBase {
52 struct Device pb_Device;
54 struct PrinterUnit *pb_Unit[PRINTER_UNITS];
55 struct SignalSemaphore pb_UnitLock[PRINTER_UNITS];
57 struct Library *pb_DOSBase;
60 #define DOSBase PrinterBase->pb_DOSBase
62 /*********************************************************************************************/
64 BOOL Printer_LoadPrefs(struct PrinterBase *PrinterBase, LONG unit, struct PrinterPrefs *prefs);
66 struct PrinterUnit *Printer_Unit(struct PrinterBase *PrinterBase, LONG unit);
68 LONG Printer_Gfx_DumpRPort(struct IODRPReq *pio, struct TagItem *tags);
70 LONG Printer_Text_Write(struct PrinterData *pd, UBYTE *text, LONG length);
71 LONG Printer_Text_Command(struct PrinterData *pd, UWORD command, UBYTE p0, UBYTE p1, UBYTE p2, UBYTE p3);
73 #endif /* PRINTER_INTERN_H */