#ifndef DEVICES_PRTBASE_H #define DEVICES_PRTBASE_H /* ** $Filename: devices/prtbase.h $ ** $Release: 2.04 Includes, V37.4 $ ** $Revision: 1.10 $ ** $Date: 90/11/02 $ ** ** printer.device base structure definitions ** ** (C) Copyright 1987-1991 Commodore-Amiga, Inc. ** All Rights Reserved */ #ifndef EXEC_TYPES_H #include "exec/types.h" #endif #ifndef EXEC_NODES_H #include "exec/nodes.h" #endif #ifndef EXEC_LISTS_H #include "exec/lists.h" #endif #ifndef EXEC_PORTS_H #include "exec/ports.h" #endif #ifndef EXEC_LIBRARIES_H #include "exec/libraries.h" #endif #ifndef EXEC_TASKS_H #include "exec/tasks.h" #endif #ifndef DEVICES_PARALLEL_H #include "devices/parallel.h" #endif #ifndef DEVICES_SERIAL_H #include "devices/serial.h" #endif #ifndef DEVICES_TIMER_H #include "devices/timer.h" #endif #ifndef LIBRARIES_DOSEXTENS_H #include "libraries/dosextens.h" #endif #ifndef INTUITION_INTUITION_H #include "intuition/intuition.h" #endif struct DeviceData { struct Library dd_Device; APTR dd_Segment; APTR dd_ExecBase; APTR dd_CmdVectors; APTR dd_CmdBytes; UWORD dd_NumCommands; }; #define P_OLDSTKSIZE 0x0800 #define P_STKSIZE 0x1000 #define P_BUFSIZE 256 #define P_SAFESIZE 128 struct PrinterData { struct DeviceData pd_Device; struct MsgPort pd_Unit; BPTR pd_PrinterSegment; UWORD pd_PrinterType; struct PrinterSegment *pd_SegmentData; UBYTE *pd_PrintBuf; int (*pd_PWrite)(); int (*pd_PBothReady)(); union { struct IOExtPar pd_p0; struct IOExtSer pd_s0; } pd_ior0; #define pd_PIOR0 pd_ior0.pd_p0 #define pd_SIOR0 pd_ior0.pd_s0 union { struct IOExtPar pd_p1; struct IOExtSer pd_s1; } pd_ior1; #define pd_PIOR1 pd_ior1.pd_p1 #define pd_SIOR1 pd_ior1.pd_s1 struct timerequest pd_TIOR; struct MsgPort pd_IORPort; struct Task pd_TC; UBYTE pd_OldStk[P_OLDSTKSIZE]; UBYTE pd_Flags; UBYTE pd_pad; struct Preferences pd_Preferences; UBYTE pd_PWaitEnabled; UBYTE pd_Flags1; UBYTE pd_Stk[P_STKSIZE]; }; #define PPCB_GFX 0 #define PPCF_GFX 0x1 #define PPCB_COLOR 1 #define PPCF_COLOR 0x2 #define PPC_BWALPHA 0x00 #define PPC_BWGFX 0x01 #define PPC_COLORALPHA 0x02 #define PPC_COLORGFX 0x03 #define PCC_BW 0x01 #define PCC_YMC 0x02 #define PCC_YMC_BW 0x03 #define PCC_YMCB 0x04 #define PCC_4COLOR 0x04 #define PCC_ADDITIVE 0x08 #define PCC_WB 0x09 #define PCC_BGR 0x0A #define PCC_BGR_WB 0x0B #define PCC_BGRW 0x0C #define PCC_MULTI_PASS 0x10 struct PrinterExtendedData { char *ped_PrinterName; VOID (*ped_Init)(); VOID (*ped_Expunge)(); int (*ped_Open)(); VOID (*ped_Close)(); UBYTE ped_PrinterClass; UBYTE ped_ColorClass; UBYTE ped_MaxColumns; UBYTE ped_NumCharSets; UWORD ped_NumRows; ULONG ped_MaxXDots; ULONG ped_MaxYDots; UWORD ped_XDotsInch; UWORD ped_YDotsInch; char ***ped_Commands; int (*ped_DoSpecial)(); int (*ped_Render)(); LONG ped_TimeoutSecs; char **ped_8BitChars; LONG ped_PrintMode; int (*ped_ConvFunc)(); }; struct PrinterSegment { ULONG ps_NextSegment; ULONG ps_runAlert; UWORD ps_Version; UWORD ps_Revision; struct PrinterExtendedData ps_PED; }; #endif