home *** CD-ROM | disk | FTP | other *** search
- #include <devices/printer.h>
- #include <intuition/intuition.h>
-
- union printerIO {
- struct IOStdReq ios;
- struct IODRPReq iodrp;
- struct IOPrtCmdReq iopc;
- };
-
- long OpenPrinter(union printerIO *request)
- {
- return (long) OpenDevice("printer.device", 0L, (struct IORequest *) request, 0L);
- }
-
- long ClosePrinter(union printerIO *request)
- {
- CloseDevice((struct IORequest *) request);
- return 0L;
- }
-
- long PrintString(union printerIO *request, char *string)
- {
- request->ios.io_Command = CMD_WRITE;
- request->ios.io_Data = (APTR) string;
- request->ios.io_Length = -1L;
-
- return (long) DoIO((struct IORequest *) request);
- }
-
- long PrintRaw(union printerIO *request, char *buffer, long count)
- {
- request->ios.io_Command = PRD_RAWWRITE;
- request->ios.io_Data = (APTR) buffer;
- request->ios.io_Length = count;
-
- return (long) DoIO((struct IORequest *) request);
- }
-
- long PrintCommand(union printerIO *request, long command,
- long p0, long p1, long p2, long p3)
- {
- request->iopc.io_Command = PRD_PRTCOMMAND;
- request->iopc.io_PrtCommand = command;
- request->iopc.io_Parm0 = p0;
- request->iopc.io_Parm1 = p1;
- request->iopc.io_Parm2 = p2;
- request->iopc.io_Parm3 = p3;
-
- return (long) DoIO((struct IORequest *) request);
- }
-
- long DumpRPort(union printerIO *request, struct RastPort *rastPort,
- struct ColorMap *colorMap, ULONG modes,
- UWORD sx, UWORD sy, UWORD sw, UWORD sh,
- LONG dc, LONG dr,
- UWORD s)
- {
- request->iodrp.io_Command = PRD_DUMPRPORT;
- request->iodrp.io_RastPort = rastPort;
- request->iodrp.io_ColorMap = colorMap;
- request->iodrp.io_Modes = modes;
- request->iodrp.io_SrcX = sx;
- request->iodrp.io_SrcY = sy;
- request->iodrp.io_SrcWidth = sw;
- request->iodrp.io_SrcHeight = sh;
- request->iodrp.io_DestCols = dc;
- request->iodrp.io_DestRows = dr;
- request->iodrp.io_Special = s;
-
- return (long) DoIO((struct IORequest *) request);
- }
-