xref: /haiku/src/add-ons/print/drivers/canon_lips/lips3/Lips3Cap.cpp (revision 7f226d991c2c4ab1316714dad3acceae7b85dd78)
152a38012Sejakowatz /*
252a38012Sejakowatz  * Lips3Cap.cpp
352a38012Sejakowatz  * Copyright 1999-2000 Y.Takagi. All Rights Reserved.
452a38012Sejakowatz  */
552a38012Sejakowatz 
652a38012Sejakowatz #include "PrinterData.h"
752a38012Sejakowatz #include "Lips3Cap.h"
852a38012Sejakowatz 
952a38012Sejakowatz #define TO72DPI(a)	(a * 72.0f / 600.0f)
1052a38012Sejakowatz 
1152a38012Sejakowatz const PaperCap a3(
1252a38012Sejakowatz 	"A3",
1352a38012Sejakowatz 	false,
1452a38012Sejakowatz 	JobData::A3,
1552a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(7014.0f), TO72DPI(9920.0f)),
1652a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(6894.0f), TO72DPI(9800.0f)));
1752a38012Sejakowatz 
1852a38012Sejakowatz const PaperCap a4(
1952a38012Sejakowatz 	"A4",
2052a38012Sejakowatz 	true,
2152a38012Sejakowatz 	JobData::A4,
2252a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(4960.0f), TO72DPI(7014.0f)),
2352a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4840.0f), TO72DPI(6894.0f)));
2452a38012Sejakowatz 
2552a38012Sejakowatz const PaperCap a5(
2652a38012Sejakowatz 	"A5",
2752a38012Sejakowatz 	false,
2852a38012Sejakowatz 	JobData::A5,
2952a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(3506.0f), TO72DPI(4960.0f)),
3052a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(3386.0f), TO72DPI(4840.0f)));
3152a38012Sejakowatz 
3252a38012Sejakowatz const PaperCap japanese_postcard(
3352a38012Sejakowatz 	"Japanese Postcard",
3452a38012Sejakowatz 	false,
3552a38012Sejakowatz 	JobData::JAPANESE_POSTCARD,
3652a38012Sejakowatz 	BRect(0.0f,           0.0f,             TO72DPI(2362.0f), TO72DPI(3506.0f)),
3752a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(2242.0f), TO72DPI(3386.0f)));
3852a38012Sejakowatz 
3952a38012Sejakowatz const PaperCap b4(
4052a38012Sejakowatz 	"B4",
4152a38012Sejakowatz 	false,
4252a38012Sejakowatz 	JobData::B4,
4352a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(6070.0f), TO72DPI(8598.0f)),
4452a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(5950.0f), TO72DPI(8478.0f)));
4552a38012Sejakowatz 
4652a38012Sejakowatz const PaperCap b5(
4752a38012Sejakowatz 	"B5",
4852a38012Sejakowatz 	false,
4952a38012Sejakowatz 	JobData::B5,
5052a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(4298.0f), TO72DPI(6070.0f)),
5152a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4178.0f), TO72DPI(5950.0f)));
5252a38012Sejakowatz 
5352a38012Sejakowatz const PaperCap letter(
5452a38012Sejakowatz 	"Letter",
5552a38012Sejakowatz 	false,
5652a38012Sejakowatz 	JobData::LETTER,
5752a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(5100.0f), TO72DPI(6600.0f)),
5852a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4980.0f), TO72DPI(6480.0f)));
5952a38012Sejakowatz 
6052a38012Sejakowatz const PaperCap legal(
6152a38012Sejakowatz 	"Legal",
6252a38012Sejakowatz 	false,
6352a38012Sejakowatz 	JobData::LEGAL,
6452a38012Sejakowatz 	BRect(0.0f,            0.0f,            TO72DPI(5100.0f), TO72DPI(8400.0f)),
6552a38012Sejakowatz 	BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4980.0f), TO72DPI(8280.0f)));
6652a38012Sejakowatz 
6752a38012Sejakowatz const PaperSourceCap autobin("Auto",  true,  JobData::AUTO);
6852a38012Sejakowatz const PaperSourceCap manual("Manual", false, JobData::MANUAL);
6952a38012Sejakowatz const PaperSourceCap upper("Upper",   false, JobData::UPPER);
7052a38012Sejakowatz const PaperSourceCap lower("Lower",   false, JobData::LOWER);
7152a38012Sejakowatz 
7252a38012Sejakowatz const ResolutionCap dpi300("300dpi",   true, 300,  300);
7352a38012Sejakowatz 
7452a38012Sejakowatz const PaperCap *papers[] = {
7552a38012Sejakowatz 	&a4,
7652a38012Sejakowatz 	&a3,
7752a38012Sejakowatz 	&a5,
7852a38012Sejakowatz 	&b4,
7952a38012Sejakowatz 	&b5,
8052a38012Sejakowatz 	&letter,
8152a38012Sejakowatz 	&legal
8252a38012Sejakowatz };
8352a38012Sejakowatz 
8452a38012Sejakowatz const PaperSourceCap *papersources[] = {
8552a38012Sejakowatz 	&autobin,
8652a38012Sejakowatz 	&manual,
8752a38012Sejakowatz 	&upper,
8852a38012Sejakowatz 	&lower
8952a38012Sejakowatz };
9052a38012Sejakowatz 
9152a38012Sejakowatz const ResolutionCap *resolutions[] = {
9252a38012Sejakowatz 	&dpi300
9352a38012Sejakowatz };
9452a38012Sejakowatz 
95*7f226d99SMichael Pfeiffer const ColorCap color("Color", false, JobData::kCOLOR);
96*7f226d99SMichael Pfeiffer const ColorCap monochrome("Monochrome", true, JobData::kMONOCHROME);
97*7f226d99SMichael Pfeiffer 
98*7f226d99SMichael Pfeiffer const ColorCap *colors[] = {
99*7f226d99SMichael Pfeiffer 	&color,
100*7f226d99SMichael Pfeiffer 	&monochrome
101*7f226d99SMichael Pfeiffer };
102*7f226d99SMichael Pfeiffer 
10352a38012Sejakowatz Lips3Cap::Lips3Cap(const PrinterData *printer_data)
10452a38012Sejakowatz 	: PrinterCap(printer_data)
10552a38012Sejakowatz {
10652a38012Sejakowatz }
10752a38012Sejakowatz 
10852a38012Sejakowatz int Lips3Cap::countCap(CAPID capid) const
10952a38012Sejakowatz {
11052a38012Sejakowatz 	switch (capid) {
11152a38012Sejakowatz 	case PAPER:
11252a38012Sejakowatz 		return sizeof(papers) / sizeof(papers[0]);
11352a38012Sejakowatz 	case PAPERSOURCE:
11452a38012Sejakowatz 		return sizeof(papersources) / sizeof(papersources[0]);
11552a38012Sejakowatz 	case RESOLUTION:
11652a38012Sejakowatz 		return sizeof(resolutions) / sizeof(resolutions[0]);
117*7f226d99SMichael Pfeiffer 	case COLOR:
118*7f226d99SMichael Pfeiffer 		return sizeof(colors) / sizeof(colors[0]);
11952a38012Sejakowatz 	default:
12052a38012Sejakowatz 		return 0;
12152a38012Sejakowatz 	}
12252a38012Sejakowatz }
12352a38012Sejakowatz 
12452a38012Sejakowatz const BaseCap **Lips3Cap::enumCap(CAPID capid) const
12552a38012Sejakowatz {
12652a38012Sejakowatz 	switch (capid) {
12752a38012Sejakowatz 	case PAPER:
12852a38012Sejakowatz 		return (const BaseCap **)papers;
12952a38012Sejakowatz 	case PAPERSOURCE:
13052a38012Sejakowatz 		return (const BaseCap **)papersources;
13152a38012Sejakowatz 	case RESOLUTION:
13252a38012Sejakowatz 		return (const BaseCap **)resolutions;
133*7f226d99SMichael Pfeiffer 	case COLOR:
134*7f226d99SMichael Pfeiffer 		return (const BaseCap **)colors;
13552a38012Sejakowatz 	default:
13652a38012Sejakowatz 		return NULL;
13752a38012Sejakowatz 	}
13852a38012Sejakowatz }
13952a38012Sejakowatz 
14052a38012Sejakowatz bool Lips3Cap::isSupport(CAPID capid) const
14152a38012Sejakowatz {
14252a38012Sejakowatz 	switch (capid) {
14352a38012Sejakowatz 	case PAPER:
14452a38012Sejakowatz 	case PAPERSOURCE:
14552a38012Sejakowatz 	case RESOLUTION:
146*7f226d99SMichael Pfeiffer 	case COLOR:
14752a38012Sejakowatz 		return true;
14852a38012Sejakowatz 	default:
14952a38012Sejakowatz 		return false;
15052a38012Sejakowatz 	}
15152a38012Sejakowatz }
152