Skip to content

Commit 940d8a8

Browse files
committed
Codable enum cleanup
1 parent 9492065 commit 940d8a8

9 files changed

+241
-167
lines changed

lib/PwgPgHdr.codable

-89
This file was deleted.

lib/UrfPgHdr.codable

-55
This file was deleted.

lib/ppm2pwg.cpp

+28-18
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
#include "array.h"
44
#include "log.h"
55

6-
#include "PwgPgHdr.h"
7-
#include "UrfPgHdr.h"
6+
#include "pwgpghdr.h"
7+
#include "urfpghdr.h"
88

99
#include <iostream>
1010
#include <map>
@@ -65,7 +65,7 @@ void bmp_to_pwg(Bytestream& bmpBts, Bytestream& outBts, size_t page, const Print
6565
}
6666

6767
outBts << lineRepeat;
68-
if(backside&&params.getBackHFlip())
68+
if(backside && params.getBackHFlip())
6969
{
7070
// Flip line into tmp buffer
7171
if(params.getBitsPerColor() == 1)
@@ -162,7 +162,7 @@ void compress_line(uint8_t* raw, size_t len, Bytestream& outBts, int colors)
162162
}
163163
}
164164

165-
static std::map<std::string, UrfPgHdr::MediaType_enum>
165+
static const std::map<std::string, UrfPgHdr::MediaType_enum>
166166
UrfMediaTypeMappings {{"auto", UrfPgHdr::AutomaticMediaType},
167167
{"stationery", UrfPgHdr::Stationery},
168168
{"transparency", UrfPgHdr::Transparency},
@@ -187,6 +187,14 @@ void make_pwg_hdr(Bytestream& outBts, const PrintParameters& params, bool backsi
187187
{
188188
PwgPgHdr outHdr;
189189

190+
static const std::map<PrintParameters::ColorMode, PwgPgHdr::ColorSpace_enum>
191+
pwgColorSpaceMappings {{PrintParameters::sRGB24, PwgPgHdr::sRGB},
192+
{PrintParameters::CMYK32, PwgPgHdr::CMYK},
193+
{PrintParameters::Gray8, PwgPgHdr::sGray},
194+
{PrintParameters::Black8, PwgPgHdr::Black},
195+
{PrintParameters::Gray1, PwgPgHdr::sGray},
196+
{PrintParameters::Black1, PwgPgHdr::Black}};
197+
190198
outHdr.MediaType = params.mediaType;
191199
outHdr.Duplex = params.isTwoSided();
192200
outHdr.HWResolutionX = params.hwResW;
@@ -201,14 +209,11 @@ void make_pwg_hdr(Bytestream& outBts, const PrintParameters& params, bool backsi
201209
outHdr.BitsPerColor = params.getBitsPerColor();
202210
outHdr.BitsPerPixel = params.getNumberOfColors() * outHdr.BitsPerColor;
203211
outHdr.BytesPerLine = params.getPaperSizeWInBytes();
204-
outHdr.ColorSpace = params.colorMode == PrintParameters::CMYK32 ? PwgPgHdr::CMYK
205-
: params.colorMode == PrintParameters::sRGB24 ? PwgPgHdr::sRGB
206-
: params.isBlack() ? PwgPgHdr::Black
207-
: PwgPgHdr::sGray;
212+
outHdr.ColorSpace = pwgColorSpaceMappings.at(params.colorMode);
208213
outHdr.NumColors = params.getNumberOfColors();
209214
outHdr.TotalPageCount = 0;
210-
outHdr.CrossFeedTransform = backside&&params.getBackHFlip() ? -1 : 1;
211-
outHdr.FeedTransform = backside&&params.getBackVFlip() ? -1 : 1;
215+
outHdr.CrossFeedTransform = backside && params.getBackHFlip() ? -1 : 1;
216+
outHdr.FeedTransform = backside && params.getBackVFlip() ? -1 : 1;
212217
outHdr.AlternatePrimary = 0x00ffffff;
213218
outHdr.setPrintQuality(params.quality);
214219
outHdr.PageSizeName = params.paperSizeName;
@@ -222,19 +227,24 @@ void make_urf_hdr(Bytestream& outBts, const PrintParameters& params)
222227
{
223228
if(params.hwResW != params.hwResH)
224229
{
225-
exit(2);
230+
throw std::logic_error("Asymmetric URF resolution");
226231
}
227232

228233
UrfPgHdr outHdr;
229234

235+
static const std::map<PrintParameters::ColorMode, UrfPgHdr::ColorSpace_enum>
236+
urfColorSpaceMappings {{PrintParameters::sRGB24, UrfPgHdr::sRGB},
237+
{PrintParameters::CMYK32, UrfPgHdr::CMYK},
238+
{PrintParameters::Gray8, UrfPgHdr::sGray}};
239+
240+
static const std::map<PrintParameters::DuplexMode, UrfPgHdr::Duplex_enum>
241+
urfDuplexMappings {{PrintParameters::OneSided, UrfPgHdr::OneSided},
242+
{PrintParameters::TwoSidedLongEdge, UrfPgHdr::TwoSidedLongEdge},
243+
{PrintParameters::TwoSidedShortEdge, UrfPgHdr::TwoSidedShortEdge}};
244+
230245
outHdr.BitsPerPixel = 8*params.getNumberOfColors();
231-
outHdr.ColorSpace = params.colorMode == PrintParameters::CMYK32 ? UrfPgHdr::CMYK
232-
: params.colorMode == PrintParameters::sRGB24 ? UrfPgHdr::sRGB
233-
: UrfPgHdr::sGray;
234-
outHdr.Duplex = params.isTwoSided() ? (params.duplexMode == PrintParameters::TwoSidedShortEdge
235-
? UrfPgHdr::ShortSide
236-
: UrfPgHdr::LongSide)
237-
: UrfPgHdr::NoDuplex;
246+
outHdr.ColorSpace = urfColorSpaceMappings.at(params.colorMode);
247+
outHdr.Duplex = urfDuplexMappings.at(params.duplexMode);
238248
outHdr.setQuality(params.quality);
239249
outHdr.MediaType = params.mediaType == "" ? UrfPgHdr::AutomaticMediaType
240250
: UrfMediaTypeMappings.at(params.mediaType);

lib/pwgpghdr.codable

+121
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
CODABLE(PwgPgHdr)
2+
DEFAULT_STRING(64, PwgRaster, "PwgRaster")
3+
STRING(64, MediaColor)
4+
STRING(64, MediaType)
5+
STRING(64, PrintContentOptimize)
6+
PADDING(12)
7+
ENUM(uint32_t, CutMedia, ENUM_VALUE(CutNever, 0),
8+
ENUM_LABEL(CutAfterDocument),
9+
ENUM_LABEL(CutAfterJob),
10+
ENUM_LABEL(CutAfterSet),
11+
ENUM_LABEL(CutAfterPage))
12+
FIELD(uint32_t, Duplex)
13+
FIELD(uint32_t, HWResolutionX)
14+
FIELD(uint32_t, HWResolutionY)
15+
PADDING(16)
16+
FIELD(uint32_t, InsertSheet)
17+
ENUM(uint32_t, Jog, ENUM_VALUE(JogNever, 0),
18+
ENUM_LABEL(JogAfterDocument),
19+
ENUM_LABEL(JogAfterJob),
20+
ENUM_LABEL(JogAfterSet),
21+
ENUM_LABEL(JogAfterPage))
22+
ENUM(uint32_t, LeadingEdge, ENUM_VALUE(ShortEdgeFirst, 0),
23+
ENUM_LABEL(LongEdgeFirst))
24+
PADDING(12)
25+
ENUM(uint32_t, MediaPosition, ENUM_VALUE(AutomaticMediaPosition, 0),
26+
ENUM_LABEL(Main),
27+
ENUM_LABEL(Alternate),
28+
ENUM_LABEL(LargeCapacity),
29+
ENUM_LABEL(Manual),
30+
ENUM_LABEL(EnvelopeMediaPosition),
31+
ENUM_LABEL(DiscMediaPosition),
32+
ENUM_LABEL(PhotoMediaPosition),
33+
ENUM_LABEL(Hagaki),
34+
ENUM_LABEL(MainRoll),
35+
ENUM_LABEL(AlternateRoll),
36+
ENUM_LABEL(Top),
37+
ENUM_LABEL(Middle),
38+
ENUM_LABEL(Bottom),
39+
ENUM_LABEL(Side),
40+
ENUM_LABEL(Left),
41+
ENUM_LABEL(Right),
42+
ENUM_LABEL(Center),
43+
ENUM_LABEL(Rear),
44+
ENUM_LABEL(ByPassTray),
45+
ENUM_LABEL(Tray1),
46+
ENUM_LABEL(Tray2),
47+
ENUM_LABEL(Tray3),
48+
ENUM_LABEL(Tray4),
49+
ENUM_LABEL(Tray5),
50+
ENUM_LABEL(Tray6),
51+
ENUM_LABEL(Tray7),
52+
ENUM_LABEL(Tray8),
53+
ENUM_LABEL(Tray9),
54+
ENUM_LABEL(Tray10),
55+
ENUM_LABEL(Tray11),
56+
ENUM_LABEL(Tray12),
57+
ENUM_LABEL(Tray13),
58+
ENUM_LABEL(Tray14),
59+
ENUM_LABEL(Tray15),
60+
ENUM_LABEL(Tray16),
61+
ENUM_LABEL(Tray17),
62+
ENUM_LABEL(Tray18),
63+
ENUM_LABEL(Tray19),
64+
ENUM_LABEL(Tray20),
65+
ENUM_LABEL(Roll1),
66+
ENUM_LABEL(Roll2),
67+
ENUM_LABEL(Roll3),
68+
ENUM_LABEL(Roll4),
69+
ENUM_LABEL(Roll5),
70+
ENUM_LABEL(Roll6),
71+
ENUM_LABEL(Roll7),
72+
ENUM_LABEL(Roll8),
73+
ENUM_LABEL(Roll9),
74+
ENUM_LABEL(Roll10))
75+
FIELD(uint32_t, MediaWeightMetric)
76+
PADDING(8)
77+
FIELD(uint32_t, NumCopies)
78+
ENUM(uint32_t, Orientation, ENUM_VALUE(Portrait, 0),
79+
ENUM_LABEL(Landscape),
80+
ENUM_LABEL(ReversePortrait),
81+
ENUM_LABEL(ReverseLandscape))
82+
PADDING(4)
83+
FIELD(uint32_t, PageSizeX)
84+
FIELD(uint32_t, PageSizeY)
85+
PADDING(8)
86+
FIELD(uint32_t, Tumble)
87+
FIELD(uint32_t, Width)
88+
FIELD(uint32_t, Height)
89+
PADDING(4)
90+
FIELD(uint32_t, BitsPerColor)
91+
FIELD(uint32_t, BitsPerPixel)
92+
FIELD(uint32_t, BytesPerLine)
93+
ENUM(uint32_t, ColorOrder, ENUM_VALUE(Chunky, 0))
94+
ENUM(uint32_t, ColorSpace, ENUM_VALUE(RGB, 1),
95+
ENUM_VALUE(Black, 3),
96+
ENUM_VALUE(CMYK, 6),
97+
ENUM_VALUE(sGray, 18),
98+
ENUM_VALUE(sRGB, 19),
99+
ENUM_VALUE(AdobeRGB, 20))
100+
PADDING(16)
101+
FIELD(uint32_t, NumColors)
102+
PADDING(28)
103+
FIELD(uint32_t, TotalPageCount)
104+
FIELD(int32_t, CrossFeedTransform)
105+
FIELD(int32_t, FeedTransform)
106+
FIELD(uint32_t, ImageBoxLeft)
107+
FIELD(uint32_t, ImageBoxTop)
108+
FIELD(uint32_t, ImageBoxRight)
109+
FIELD(uint32_t, ImageBoxBottom)
110+
FIELD(uint32_t, AlternatePrimary)
111+
ENUM(uint32_t, PrintQuality, ENUM_VALUE(DefaultPrintQuality, 0),
112+
ENUM_VALUE(Draft, 3),
113+
ENUM_VALUE(Normal, 4),
114+
ENUM_VALUE(High, 5))
115+
PADDING(20)
116+
FIELD(uint32_t, VendorIdentifier)
117+
FIELD(uint32_t, VendorLength)
118+
PADDING(1088)
119+
PADDING(64)
120+
STRING(64, RenderingIntent)
121+
STRING(64, PageSizeName)

lib/PwgPgHdr.h lib/pwgpghdr.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef PWGPGHDR_H
22
#define PWGPGHDR_H
33

4-
#define CODABLE_FILE "PwgPgHdr.codable"
4+
#define CODABLE_FILE "pwgpghdr.codable"
55
#include "codable.h"
66

77
#endif

0 commit comments

Comments
 (0)