xref: /haiku/src/add-ons/print/drivers/canon_lips/lips3/Lips3Cap.cpp (revision 52a380120846174213ccce9c4aab0dda17c72083)
1*52a38012Sejakowatz /*
2*52a38012Sejakowatz  * Lips3Cap.cpp
3*52a38012Sejakowatz  * Copyright 1999-2000 Y.Takagi. All Rights Reserved.
4*52a38012Sejakowatz  */
5*52a38012Sejakowatz 
6*52a38012Sejakowatz #include "PrinterData.h"
7*52a38012Sejakowatz #include "Lips3Cap.h"
8*52a38012Sejakowatz 
9*52a38012Sejakowatz #define TO72DPI(a)	(a * 72.0f / 600.0f)
10*52a38012Sejakowatz 
11*52a38012Sejakowatz const PaperCap a3(
12*52a38012Sejakowatz 	"A3",
13*52a38012Sejakowatz 	false,
14*52a38012Sejakowatz 	JobData::A3,
15*52a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(7014.0f), TO72DPI(9920.0f)),
16*52a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(6894.0f), TO72DPI(9800.0f)));
17*52a38012Sejakowatz 
18*52a38012Sejakowatz const PaperCap a4(
19*52a38012Sejakowatz 	"A4",
20*52a38012Sejakowatz 	true,
21*52a38012Sejakowatz 	JobData::A4,
22*52a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(4960.0f), TO72DPI(7014.0f)),
23*52a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4840.0f), TO72DPI(6894.0f)));
24*52a38012Sejakowatz 
25*52a38012Sejakowatz const PaperCap a5(
26*52a38012Sejakowatz 	"A5",
27*52a38012Sejakowatz 	false,
28*52a38012Sejakowatz 	JobData::A5,
29*52a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(3506.0f), TO72DPI(4960.0f)),
30*52a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(3386.0f), TO72DPI(4840.0f)));
31*52a38012Sejakowatz 
32*52a38012Sejakowatz const PaperCap japanese_postcard(
33*52a38012Sejakowatz 	"Japanese Postcard",
34*52a38012Sejakowatz 	false,
35*52a38012Sejakowatz 	JobData::JAPANESE_POSTCARD,
36*52a38012Sejakowatz 	BRect(0.0f,           0.0f,             TO72DPI(2362.0f), TO72DPI(3506.0f)),
37*52a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(2242.0f), TO72DPI(3386.0f)));
38*52a38012Sejakowatz 
39*52a38012Sejakowatz const PaperCap b4(
40*52a38012Sejakowatz 	"B4",
41*52a38012Sejakowatz 	false,
42*52a38012Sejakowatz 	JobData::B4,
43*52a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(6070.0f), TO72DPI(8598.0f)),
44*52a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(5950.0f), TO72DPI(8478.0f)));
45*52a38012Sejakowatz 
46*52a38012Sejakowatz const PaperCap b5(
47*52a38012Sejakowatz 	"B5",
48*52a38012Sejakowatz 	false,
49*52a38012Sejakowatz 	JobData::B5,
50*52a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(4298.0f), TO72DPI(6070.0f)),
51*52a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4178.0f), TO72DPI(5950.0f)));
52*52a38012Sejakowatz 
53*52a38012Sejakowatz const PaperCap letter(
54*52a38012Sejakowatz 	"Letter",
55*52a38012Sejakowatz 	false,
56*52a38012Sejakowatz 	JobData::LETTER,
57*52a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(5100.0f), TO72DPI(6600.0f)),
58*52a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4980.0f), TO72DPI(6480.0f)));
59*52a38012Sejakowatz 
60*52a38012Sejakowatz const PaperCap legal(
61*52a38012Sejakowatz 	"Legal",
62*52a38012Sejakowatz 	false,
63*52a38012Sejakowatz 	JobData::LEGAL,
64*52a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(5100.0f), TO72DPI(8400.0f)),
65*52a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4980.0f), TO72DPI(8280.0f)));
66*52a38012Sejakowatz 
67*52a38012Sejakowatz const PaperSourceCap autobin("Auto",  true,  JobData::AUTO);
68*52a38012Sejakowatz const PaperSourceCap manual("Manual", false, JobData::MANUAL);
69*52a38012Sejakowatz const PaperSourceCap upper("Upper",   false, JobData::UPPER);
70*52a38012Sejakowatz const PaperSourceCap lower("Lower",   false, JobData::LOWER);
71*52a38012Sejakowatz 
72*52a38012Sejakowatz const ResolutionCap dpi300("300dpi",   true, 300,  300);
73*52a38012Sejakowatz 
74*52a38012Sejakowatz const PaperCap *papers[] = {
75*52a38012Sejakowatz 	&a4,
76*52a38012Sejakowatz 	&a3,
77*52a38012Sejakowatz 	&a5,
78*52a38012Sejakowatz 	&b4,
79*52a38012Sejakowatz 	&b5,
80*52a38012Sejakowatz 	&letter,
81*52a38012Sejakowatz 	&legal
82*52a38012Sejakowatz };
83*52a38012Sejakowatz 
84*52a38012Sejakowatz const PaperSourceCap *papersources[] = {
85*52a38012Sejakowatz 	&autobin,
86*52a38012Sejakowatz 	&manual,
87*52a38012Sejakowatz 	&upper,
88*52a38012Sejakowatz 	&lower
89*52a38012Sejakowatz };
90*52a38012Sejakowatz 
91*52a38012Sejakowatz const ResolutionCap *resolutions[] = {
92*52a38012Sejakowatz 	&dpi300
93*52a38012Sejakowatz };
94*52a38012Sejakowatz 
95*52a38012Sejakowatz Lips3Cap::Lips3Cap(const PrinterData *printer_data)
96*52a38012Sejakowatz 	: PrinterCap(printer_data)
97*52a38012Sejakowatz {
98*52a38012Sejakowatz }
99*52a38012Sejakowatz 
100*52a38012Sejakowatz int Lips3Cap::countCap(CAPID capid) const
101*52a38012Sejakowatz {
102*52a38012Sejakowatz 	switch (capid) {
103*52a38012Sejakowatz 	case PAPER:
104*52a38012Sejakowatz 		return sizeof(papers) / sizeof(papers[0]);
105*52a38012Sejakowatz 	case PAPERSOURCE:
106*52a38012Sejakowatz 		return sizeof(papersources) / sizeof(papersources[0]);
107*52a38012Sejakowatz 	case RESOLUTION:
108*52a38012Sejakowatz 		return sizeof(resolutions) / sizeof(resolutions[0]);
109*52a38012Sejakowatz 	default:
110*52a38012Sejakowatz 		return 0;
111*52a38012Sejakowatz 	}
112*52a38012Sejakowatz }
113*52a38012Sejakowatz 
114*52a38012Sejakowatz const BaseCap **Lips3Cap::enumCap(CAPID capid) const
115*52a38012Sejakowatz {
116*52a38012Sejakowatz 	switch (capid) {
117*52a38012Sejakowatz 	case PAPER:
118*52a38012Sejakowatz 		return (const BaseCap **)papers;
119*52a38012Sejakowatz 	case PAPERSOURCE:
120*52a38012Sejakowatz 		return (const BaseCap **)papersources;
121*52a38012Sejakowatz 	case RESOLUTION:
122*52a38012Sejakowatz 		return (const BaseCap **)resolutions;
123*52a38012Sejakowatz 	default:
124*52a38012Sejakowatz 		return NULL;
125*52a38012Sejakowatz 	}
126*52a38012Sejakowatz }
127*52a38012Sejakowatz 
128*52a38012Sejakowatz bool Lips3Cap::isSupport(CAPID capid) const
129*52a38012Sejakowatz {
130*52a38012Sejakowatz 	switch (capid) {
131*52a38012Sejakowatz 	case PAPER:
132*52a38012Sejakowatz 	case PAPERSOURCE:
133*52a38012Sejakowatz 	case RESOLUTION:
134*52a38012Sejakowatz 		return true;
135*52a38012Sejakowatz 	default:
136*52a38012Sejakowatz 		return false;
137*52a38012Sejakowatz 	}
138*52a38012Sejakowatz }
139