1/*
2* Copyright 2017, Haiku. All rights reserved.
3* Distributed under the terms of the MIT License.
4*
5* Authors:
6*		Adrien Destugues <pulkomandy@pulkomandy.tk>
7*/
8#ifndef LPSTYL_H
9#define LPSTYL_H
10
11
12#include "GraphicsDriver.h"
13
14
15enum PrinterType {
16	kStyleWriter,
17	kStyleWriter2,
18	kStyleWriter3,
19	kStyleWriter2400,
20	kStyleWriter2200,
21	kStyleWriter1500,
22	kStyleWriter2500
23};
24
25
26class LpstylDriver: public GraphicsDriver {
27	public:
28						LpstylDriver(BMessage* message, PrinterData* printerData,
29							const PrinterCap* printerCap);
30
31	protected:
32		bool			StartDocument();
33		bool			StartPage();
34		bool			NextBand(BBitmap* bitmap, BPoint* offset);
35		bool			EndPage(int page);
36		bool			EndDocument(bool success);
37
38	private:
39		void			_EjectAndReset(void);
40		void			_IdentifyPrinter(void);
41		bool			_ColorCartridge(void);
42
43		void			_WriteFFFx(char x);
44		int				_GetStatus(char reg);
45
46	private:
47		PrinterType		fPrinterType;
48};
49
50
51#endif
52