summaryrefslogtreecommitdiffstats
path: root/components/cloud_devices
diff options
context:
space:
mode:
authorvitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-06 11:21:31 +0000
committervitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-06 11:21:31 +0000
commitb35b8842ab5d889c88eb637a96d5ec909e2a4f06 (patch)
treef96a276fd61d34545b768df61e7c7dd167ae4d45 /components/cloud_devices
parentfb55c7005db14ba9383c5de3de71f264bda11ff1 (diff)
downloadchromium_src-b35b8842ab5d889c88eb637a96d5ec909e2a4f06.zip
chromium_src-b35b8842ab5d889c88eb637a96d5ec909e2a4f06.tar.gz
chromium_src-b35b8842ab5d889c88eb637a96d5ec909e2a4f06.tar.bz2
Paper definitions extended with width and hight.
Function to find paper by size. BUG=317027 Review URL: https://codereview.chromium.org/154563002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249357 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/cloud_devices')
-rw-r--r--components/cloud_devices/printer_description.cc547
-rw-r--r--components/cloud_devices/printer_description.h26
2 files changed, 301 insertions, 272 deletions
diff --git a/components/cloud_devices/printer_description.cc b/components/cloud_devices/printer_description.cc
index 13f8710..41918f5 100644
--- a/components/cloud_devices/printer_description.cc
+++ b/components/cloud_devices/printer_description.cc
@@ -43,10 +43,10 @@ extern const char kOptionPageOrientation[] = "page_orientation";
extern const char kOptionPageRange[] = "page_range";
extern const char kOptionReverse[] = "reverse_order";
-const char kMargineBottomMicrons[] = "bottom_microns";
-const char kMargineLeftMicrons[] = "left_microns";
-const char kMargineRightMicrons[] = "right_microns";
-const char kMargineTopMicrons[] = "top_microns";
+const char kMargineBottom[] = "bottom_microns";
+const char kMargineLeft[] = "left_microns";
+const char kMargineRight[] = "right_microns";
+const char kMargineTop[] = "top_microns";
const char kDpiHorizontal[] = "horizontal_dpi";
const char kDpiVertical[] = "vertical_dpi";
@@ -83,15 +83,10 @@ const char kTypeOrientationAuto[] = "AUTO";
const char kTypeOrientationLandscape[] = "LANDSCAPE";
const char kTypeOrientationPortrait[] = "PORTRAIT";
-template <class IdType>
-struct TypePair {
- IdType id;
+const struct ColorNames {
+ ColorType id;
const char* const json_name;
- static const TypePair kTypeMap[];
-};
-
-template<>
-const TypePair<ColorType> TypePair<ColorType>::kTypeMap[] = {
+} kColorNames[] = {
{ STANDARD_COLOR, kTypeColorColor },
{ STANDARD_MONOCHROME, kTypeColorMonochrome },
{ CUSTOM_COLOR, kTypeColorCustomColor },
@@ -99,33 +94,37 @@ const TypePair<ColorType> TypePair<ColorType>::kTypeMap[] = {
{ AUTO_COLOR, kTypeColorAuto },
};
-template<>
-const TypePair<DuplexType>
- TypePair<DuplexType>::kTypeMap[] = {
+const struct DuplexNames {
+ DuplexType id;
+ const char* const json_name;
+} kDuplexNames[] = {
{ NO_DUPLEX, kTypeDuplexNoDuplex },
{ LONG_EDGE, kTypeDuplexLongEdge },
{ SHORT_EDGE, kTypeDuplexShortEdge },
};
-template<>
-const TypePair<OrientationType>
- TypePair<OrientationType>::kTypeMap[] = {
+const struct OrientationNames {
+ OrientationType id;
+ const char* const json_name;
+} kOrientationNames[] = {
{ PORTRAIT, kTypeOrientationPortrait },
{ LANDSCAPE, kTypeOrientationLandscape },
{ AUTO_ORIENTATION, kTypeOrientationAuto },
};
-template<>
-const TypePair<MarginsType>
- TypePair<MarginsType>::kTypeMap[] = {
+const struct MarginsNames {
+ MarginsType id;
+ const char* const json_name;
+} kMarginsNames[] = {
{ NO_MARGINS, kTypeMarginsBorderless },
{ STANDARD_MARGINS, kTypeMarginsStandard },
{ CUSTOM_MARGINS, kTypeMarginsCustom },
};
-template<>
-const TypePair<FitToPageType>
- TypePair<FitToPageType>::kTypeMap[] = {
+const struct FitToPageNames {
+ FitToPageType id;
+ const char* const json_name;
+} kFitToPageNames[] = {
{ NO_FITTING, kTypeFitToPageNoFitting },
{ FIT_TO_PAGE, kTypeFitToPageFitToPage },
{ GROW_TO_PAGE, kTypeFitToPageGrowToPage },
@@ -133,194 +132,213 @@ const TypePair<FitToPageType>
{ FILL_PAGE, kTypeFitToPageFillPage },
};
+const int32 kInchToUm = 25400;
+const int32 kMmToUm = 1000;
+const int32 kSizeTrasholdUm = 1000;
-template<>
-const TypePair<MediaType>
- TypePair<MediaType>::kTypeMap[] = {
-#define MAP_CLOUD_PRINT_MEDIA_TYPE(type) { type, #type }
- { CUSTOM_MEDIA, "CUSTOM" },
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_INDEX_3X5),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_PERSONAL),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_MONARCH),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_NUMBER_9),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_INDEX_4X6),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_NUMBER_10),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_A2),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_NUMBER_11),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_NUMBER_12),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_5X7),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_INDEX_5X8),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_NUMBER_14),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_INVOICE),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_INDEX_4X6_EXT),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_6X9),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_C5),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_7X9),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_EXECUTIVE),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_GOVT_LETTER),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_GOVT_LEGAL),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_QUARTO),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_LETTER),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_FANFOLD_EUR),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_LETTER_PLUS),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_FOOLSCAP),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_LEGAL),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_SUPER_A),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_9X11),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_ARCH_A),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_LETTER_EXTRA),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_LEGAL_EXTRA),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_10X11),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_10X13),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_10X14),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_10X15),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_11X12),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_EDP),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_FANFOLD_US),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_11X15),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_LEDGER),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_EUR_EDP),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_ARCH_B),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_12X19),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_B_PLUS),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_SUPER_B),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_C),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_ARCH_C),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_D),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_ARCH_D),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_ASME_F),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_WIDE_FORMAT),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_E),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_ARCH_E),
- MAP_CLOUD_PRINT_MEDIA_TYPE(NA_F),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ROC_16K),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ROC_8K),
- MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_32K),
- MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_1),
- MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_2),
- MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_4),
- MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_5),
- MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_8),
- MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_6),
- MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_3),
- MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_16K),
- MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_7),
- MAP_CLOUD_PRINT_MEDIA_TYPE(OM_JUURO_KU_KAI),
- MAP_CLOUD_PRINT_MEDIA_TYPE(OM_PA_KAI),
- MAP_CLOUD_PRINT_MEDIA_TYPE(OM_DAI_PA_KAI),
- MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_10),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A10),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A9),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A8),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A7),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A6),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A5),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A5_EXTRA),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4_TAB),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4_EXTRA),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X3),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X4),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X5),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X6),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X7),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X8),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X9),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3_EXTRA),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A2),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3X3),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3X4),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3X5),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3X6),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3X7),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A1),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A2X3),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A2X4),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A2X5),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A0),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A1X3),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A1X4),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_2A0),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A0X3),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B10),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B9),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B8),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B7),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B6),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B6C4),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B5),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B5_EXTRA),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B4),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B3),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B2),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B1),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B0),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C10),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C9),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C8),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C7),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C7C6),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C6),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C6C5),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C5),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C4),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C3),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C2),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C1),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C0),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_DL),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_RA2),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_SRA2),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_RA1),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_SRA1),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_RA0),
- MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_SRA0),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B10),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B9),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B8),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B7),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B6),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B5),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B4),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B3),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B2),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B1),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B0),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_EXEC),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_CHOU4),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_HAGAKI),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_YOU4),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_CHOU2),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_CHOU3),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_OUFUKU),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_KAHU),
- MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_KAKU2),
- MAP_CLOUD_PRINT_MEDIA_TYPE(OM_SMALL_PHOTO),
- MAP_CLOUD_PRINT_MEDIA_TYPE(OM_ITALIAN),
- MAP_CLOUD_PRINT_MEDIA_TYPE(OM_POSTFIX),
- MAP_CLOUD_PRINT_MEDIA_TYPE(OM_LARGE_PHOTO),
- MAP_CLOUD_PRINT_MEDIA_TYPE(OM_FOLIO),
- MAP_CLOUD_PRINT_MEDIA_TYPE(OM_FOLIO_SP),
- MAP_CLOUD_PRINT_MEDIA_TYPE(OM_INVITE),
-#undef MAP_CLOUD_PRINT_MEDIA_TYPE
+#define MAP_CLOUD_PRINT_MEDIA_TYPE(type, width, height, unit_um) \
+ { type, #type, width*unit_um, height*unit_um }
+
+const struct MadiaDefinition {
+ MediaType id;
+ const char* const json_name;
+ int32 width_um;
+ int32 height_um;
+} kMediaDefinitions[] = {
+ { CUSTOM_MEDIA, "CUSTOM" , 0, 0},
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_INDEX_3X5, 3, 5, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_PERSONAL, 3.625f, 6.5f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_MONARCH, 3.875f, 7.5f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_NUMBER_9, 3.875f, 8.875f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_INDEX_4X6, 4, 6, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_NUMBER_10, 4.125f, 9.5f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_A2, 4.375f, 5.75f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_NUMBER_11, 4.5f, 10.375f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_NUMBER_12, 4.75f, 11, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_5X7, 5, 7, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_INDEX_5X8, 5, 8, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_NUMBER_14, 5, 11.5f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_INVOICE, 5.5f, 8.5f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_INDEX_4X6_EXT, 6, 8, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_6X9, 6, 9, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_C5, 6.5f, 9.5f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_7X9, 7, 9, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_EXECUTIVE, 7.25f, 10.5f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_GOVT_LETTER, 8, 10, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_GOVT_LEGAL, 8, 13, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_QUARTO, 8.5f, 10.83f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_LETTER, 8.5f, 11, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_FANFOLD_EUR, 8.5f, 12, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_LETTER_PLUS, 8.5f, 12.69f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_FOOLSCAP, 8.5f, 13, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_LEGAL, 8.5f, 14, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_SUPER_A, 8.94f, 14, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_9X11, 9, 11, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_ARCH_A, 9, 12, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_LETTER_EXTRA, 9.5f, 12, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_LEGAL_EXTRA, 9.5f, 15, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_10X11, 10, 11, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_10X13, 10, 13, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_10X14, 10, 14, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_10X15, 10, 15, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_11X12, 11, 12, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_EDP, 11, 14, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_FANFOLD_US, 11, 14.875f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_11X15, 11, 15, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_LEDGER, 11, 17, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_EUR_EDP, 12, 14, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_ARCH_B, 12, 18, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_12X19, 12, 19, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_B_PLUS, 12, 19.17f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_SUPER_B, 13, 19, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_C, 17, 22, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_ARCH_C, 18, 24, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_D, 22, 34, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_ARCH_D, 24, 36, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_ASME_F, 28, 40, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_WIDE_FORMAT, 30, 42, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_E, 34, 44, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_ARCH_E, 36, 48, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(NA_F, 44, 68, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ROC_16K, 7.75f, 10.75f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ROC_8K, 10.75f, 15.5f, kInchToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_32K, 97, 151, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_1, 102, 165, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_2, 102, 176, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_4, 110, 208, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_5, 110, 220, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_8, 120, 309, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_6, 120, 320, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_3, 125, 176, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_16K, 146, 215, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_7, 160, 230, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(OM_JUURO_KU_KAI, 198, 275, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(OM_PA_KAI, 267, 389, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(OM_DAI_PA_KAI, 275, 395, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(PRC_10, 324, 458, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A10, 26, 37, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A9, 37, 52, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A8, 52, 74, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A7, 74, 105, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A6, 105, 148, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A5, 148, 210, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A5_EXTRA, 235.5f, 322.3f, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4, 210, 297, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4_TAB, 225, 297, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4_EXTRA, 235.5f, 322.3f, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3, 297, 420, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X3, 297, 630, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X4, 297, 841, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X5, 297, 1051, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X6, 297, 1261, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X7, 297, 1471, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X8, 297, 1682, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A4X9, 297, 1892, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3_EXTRA, 322, 445, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A2, 420, 594, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3X3, 420, 891, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3X4, 420, 1189, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3X5, 420, 1486, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3X6, 420, 1783, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A3X7, 420, 2080, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A1, 594, 841, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A2X3, 594, 1261, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A2X4, 594, 1682, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A2X5, 594, 2102, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A0, 841, 1189, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A1X3, 841, 1783, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A1X4, 841, 2378, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_2A0, 1189, 1682, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_A0X3, 1189, 2523, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B10, 31, 44, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B9, 44, 62, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B8, 62, 88, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B7, 88, 125, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B6, 125, 176, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B6C4, 125, 324, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B5, 176, 250, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B5_EXTRA, 201, 276, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B4, 250, 353, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B3, 353, 500, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B2, 500, 707, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B1, 707, 1000, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_B0, 1000, 1414, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C10, 28, 40, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C9, 40, 57, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C8, 57, 81, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C7, 81, 114, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C7C6, 81, 162, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C6, 114, 162, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C6C5, 114, 229, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C5, 162, 229, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C4, 229, 324, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C3, 324, 458, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C2, 458, 648, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C1, 648, 917, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_C0, 917, 1297, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_DL, 110, 220, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_RA2, 430, 610, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_SRA2, 450, 640, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_RA1, 610, 860, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_SRA1, 640, 900, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_RA0, 860, 1220, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(ISO_SRA0, 900, 1280, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B10, 32, 45, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B9, 45, 64, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B8, 64, 91, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B7, 91, 128, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B6, 128, 182, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B5, 182, 257, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B4, 257, 364, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B3, 364, 515, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B2, 515, 728, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B1, 728, 1030, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_B0, 1030, 1456, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JIS_EXEC, 216, 330, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_CHOU4, 90, 205, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_HAGAKI, 100, 148, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_YOU4, 105, 235, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_CHOU2, 111.1f, 146, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_CHOU3, 120, 235, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_OUFUKU, 148, 200, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_KAHU, 240, 322.1f, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_KAKU2, 240, 332, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(OM_SMALL_PHOTO, 100, 150, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(OM_ITALIAN, 110, 230, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(OM_POSTFIX, 114, 229, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(OM_LARGE_PHOTO, 200, 300, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(OM_FOLIO, 210, 330, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(OM_FOLIO_SP, 215, 315, kMmToUm),
+ MAP_CLOUD_PRINT_MEDIA_TYPE(OM_INVITE, 220, 220, kMmToUm)
};
+#undef MAP_CLOUD_PRINT_MEDIA_TYPE
+
+const MadiaDefinition* FindMediaBySize(int32 width_um, int32 height_um) {
+ const MadiaDefinition* result = NULL;
+ for (size_t i = 0; i < arraysize(kMediaDefinitions); ++i) {
+ int32 diff = std::max(std::abs(width_um - kMediaDefinitions[i].width_um),
+ std::abs(height_um - kMediaDefinitions[i].height_um));
+ if (diff < kSizeTrasholdUm)
+ result = &kMediaDefinitions[i];
+ }
+ return result;
+}
-template<class IdType>
-std::string TypeToString(IdType id) {
- for (size_t i = 0; i < arraysize(TypePair<IdType>::kTypeMap); ++i) {
- if (id == TypePair<IdType>::kTypeMap[i].id)
- return TypePair<IdType>::kTypeMap[i].json_name;
+template<class T, class IdType>
+std::string TypeToString(const T& names, IdType id) {
+ for (size_t i = 0; i < arraysize(names); ++i) {
+ if (id == names[i].id)
+ return names[i].json_name;
}
NOTREACHED();
return std::string();
}
-template<class IdType>
-bool TypeFromString(const std::string& type, IdType* id) {
- for (size_t i = 0; i < arraysize(TypePair<IdType>::kTypeMap); ++i) {
- if (type == TypePair<IdType>::kTypeMap[i].json_name) {
- *id = TypePair<IdType>::kTypeMap[i].id;
+template<class T, class IdType>
+bool TypeFromString(const T& names, const std::string& type, IdType* id) {
+ for (size_t i = 0; i < arraysize(names); ++i) {
+ if (type == names[i].json_name) {
+ *id = names[i].id;
return true;
}
}
@@ -346,29 +364,29 @@ bool Color::IsValid() const {
Margins::Margins()
: type(STANDARD_MARGINS),
- top_microns(0),
- right_microns(0),
- bottom_microns(0),
- left_microns(0) {
+ top_um(0),
+ right_um(0),
+ bottom_um(0),
+ left_um(0) {
}
Margins::Margins(MarginsType type,
- int32 top_microns,
- int32 right_microns,
- int32 bottom_microns,
- int32 left_microns)
+ int32 top_um,
+ int32 right_um,
+ int32 bottom_um,
+ int32 left_um)
: type(type),
- top_microns(top_microns),
- right_microns(right_microns),
- bottom_microns(bottom_microns),
- left_microns(left_microns) {
+ top_um(top_um),
+ right_um(right_um),
+ bottom_um(bottom_um),
+ left_um(left_um) {
}
bool Margins::operator==(const Margins& other) const {
return type == other.type &&
- top_microns == other.top_microns &&
- right_microns == other.right_microns &&
- bottom_microns == other.bottom_microns;
+ top_um == other.top_um &&
+ right_um == other.right_um &&
+ bottom_um == other.bottom_um;
}
Dpi::Dpi() : horizontal(0), vertical(0) {}
@@ -382,34 +400,43 @@ bool Dpi::operator==(const Dpi& other) const {
Media::Media()
: type(CUSTOM_MEDIA),
- width_microns(0),
- height_microns(0),
+ width_um(0),
+ height_um(0),
is_continuous_feed(false) {
}
-Media::Media(MediaType type, int32 width_microns, int32 height_microns)
+Media::Media(MediaType type, int32 width_um, int32 height_um)
: type(type),
- width_microns(width_microns),
- height_microns(height_microns),
- is_continuous_feed(width_microns <= 0 || height_microns <= 0) {
+ width_um(width_um),
+ height_um(height_um),
+ is_continuous_feed(width_um <= 0 || height_um <= 0) {
}
-Media::Media(const std::string& custom_display_name, int32 width_microns,
- int32 height_microns)
+Media::Media(const std::string& custom_display_name, int32 width_um,
+ int32 height_um)
: type(CUSTOM_MEDIA),
- width_microns(width_microns),
- height_microns(height_microns),
- is_continuous_feed(width_microns <= 0 || height_microns <= 0),
+ width_um(width_um),
+ height_um(height_um),
+ is_continuous_feed(width_um <= 0 || height_um <= 0),
custom_display_name(custom_display_name) {
}
+bool Media::MatchBySize() {
+ const MadiaDefinition* media = FindMediaBySize(width_um, height_um);
+ if (!media)
+ return false;
+ type = media->id;
+ custom_display_name.clear();
+ return true;
+}
+
bool Media::IsValid() const {
if (is_continuous_feed) {
- if (width_microns <= 0 && height_microns <= 0)
+ if (width_um <= 0 && height_um <= 0)
return false;
} else {
- if (width_microns <= 0 || height_microns <= 0)
+ if (width_um <= 0 || height_um <= 0)
return false;
}
return true;
@@ -417,8 +444,8 @@ bool Media::IsValid() const {
bool Media::operator==(const Media& other) const {
return type == other.type &&
- width_microns == other.width_microns &&
- height_microns == other.height_microns &&
+ width_um == other.width_um &&
+ height_um == other.height_um &&
is_continuous_feed == other.is_continuous_feed;
}
@@ -475,7 +502,7 @@ class ColorTraits : public ItemsTraits<kOptionColor> {
std::string type_str;
if (!dict.GetString(kKeyType, &type_str))
return false;
- if (!TypeFromString(type_str, &option->type))
+ if (!TypeFromString(kColorNames, type_str, &option->type))
return false;
dict.GetString(kKeyVendorId, &option->vendor_id);
dict.GetString(kCustomName, &option->custom_display_name);
@@ -483,7 +510,7 @@ class ColorTraits : public ItemsTraits<kOptionColor> {
}
static void Save(const Color& option, base::DictionaryValue* dict) {
- dict->SetString(kKeyType, TypeToString(option.type));
+ dict->SetString(kKeyType, TypeToString(kColorNames, option.type));
if (!option.vendor_id.empty())
dict->SetString(kKeyVendorId, option.vendor_id);
if (!option.custom_display_name.empty())
@@ -497,11 +524,11 @@ class DuplexTraits : public NoValueValidation,
static bool Load(const base::DictionaryValue& dict, DuplexType* option) {
std::string type_str;
return dict.GetString(kKeyType, &type_str) &&
- TypeFromString(type_str, option);
+ TypeFromString(kDuplexNames, type_str, option);
}
static void Save(DuplexType option, base::DictionaryValue* dict) {
- dict->SetString(kKeyType, TypeToString(option));
+ dict->SetString(kKeyType, TypeToString(kDuplexNames, option));
}
};
@@ -511,11 +538,11 @@ class OrientationTraits : public NoValueValidation,
static bool Load(const base::DictionaryValue& dict, OrientationType* option) {
std::string type_str;
return dict.GetString(kKeyType, &type_str) &&
- TypeFromString(type_str, option);
+ TypeFromString(kOrientationNames, type_str, option);
}
static void Save(OrientationType option, base::DictionaryValue* dict) {
- dict->SetString(kKeyType, TypeToString(option));
+ dict->SetString(kKeyType, TypeToString(kOrientationNames, option));
}
};
@@ -541,21 +568,21 @@ class MarginsTraits : public NoValueValidation,
std::string type_str;
if (!dict.GetString(kKeyType, &type_str))
return false;
- if (!TypeFromString(type_str, &option->type))
+ if (!TypeFromString(kMarginsNames, type_str, &option->type))
return false;
return
- dict.GetInteger(kMargineTopMicrons, &option->top_microns) &&
- dict.GetInteger(kMargineRightMicrons, &option->right_microns) &&
- dict.GetInteger(kMargineBottomMicrons, &option->bottom_microns) &&
- dict.GetInteger(kMargineLeftMicrons, &option->left_microns);
+ dict.GetInteger(kMargineTop, &option->top_um) &&
+ dict.GetInteger(kMargineRight, &option->right_um) &&
+ dict.GetInteger(kMargineBottom, &option->bottom_um) &&
+ dict.GetInteger(kMargineLeft, &option->left_um);
}
static void Save(const Margins& option, base::DictionaryValue* dict) {
- dict->SetString(kKeyType, TypeToString(option.type));
- dict->SetInteger(kMargineTopMicrons, option.top_microns);
- dict->SetInteger(kMargineRightMicrons, option.right_microns);
- dict->SetInteger(kMargineBottomMicrons, option.bottom_microns);
- dict->SetInteger(kMargineLeftMicrons, option.left_microns);
+ dict->SetString(kKeyType, TypeToString(kMarginsNames, option.type));
+ dict->SetInteger(kMargineTop, option.top_um);
+ dict->SetInteger(kMargineRight, option.right_um);
+ dict->SetInteger(kMargineBottom, option.bottom_um);
+ dict->SetInteger(kMargineLeft, option.left_um);
}
};
@@ -585,11 +612,11 @@ class FitToPageTraits : public NoValueValidation,
static bool Load(const base::DictionaryValue& dict, FitToPageType* option) {
std::string type_str;
return dict.GetString(kKeyType, &type_str) &&
- TypeFromString(type_str, option);
+ TypeFromString(kFitToPageNames, type_str, option);
}
static void Save(FitToPageType option, base::DictionaryValue* dict) {
- dict->SetString(kKeyType, TypeToString(option));
+ dict->SetString(kKeyType, TypeToString(kFitToPageNames, option));
}
};
@@ -644,12 +671,12 @@ class MediaTraits : public ItemsTraits<kOptionMediaSize> {
static bool Load(const base::DictionaryValue& dict, Media* option) {
std::string type_str;
if (dict.GetString(kKeyName, &type_str)) {
- if (!TypeFromString(type_str, &option->type))
+ if (!TypeFromString(kMediaDefinitions, type_str, &option->type))
return false;
}
- dict.GetInteger(kMediaWidth, &option->width_microns);
- dict.GetInteger(kMediaHeight, &option->height_microns);
+ dict.GetInteger(kMediaWidth, &option->width_um);
+ dict.GetInteger(kMediaHeight, &option->height_um);
dict.GetBoolean(kMediaIsContinuous, &option->is_continuous_feed);
dict.GetString(kCustomName, &option->custom_display_name);
return true;
@@ -657,13 +684,13 @@ class MediaTraits : public ItemsTraits<kOptionMediaSize> {
static void Save(const Media& option, base::DictionaryValue* dict) {
if (option.type != CUSTOM_MEDIA)
- dict->SetString(kKeyName, TypeToString(option.type));
+ dict->SetString(kKeyName, TypeToString(kMediaDefinitions, option.type));
if (!option.custom_display_name.empty())
dict->SetString(kCustomName, option.custom_display_name);
- if (option.width_microns > 0)
- dict->SetInteger(kMediaWidth, option.width_microns);
- if (option.height_microns > 0)
- dict->SetInteger(kMediaHeight, option.height_microns);
+ if (option.width_um > 0)
+ dict->SetInteger(kMediaWidth, option.width_um);
+ if (option.height_um > 0)
+ dict->SetInteger(kMediaHeight, option.height_um);
if (option.is_continuous_feed)
dict->SetBoolean(kMediaIsContinuous, true);
}
diff --git a/components/cloud_devices/printer_description.h b/components/cloud_devices/printer_description.h
index cc9b654..d40d615 100644
--- a/components/cloud_devices/printer_description.h
+++ b/components/cloud_devices/printer_description.h
@@ -63,10 +63,10 @@ enum MarginsType {
struct Margins {
Margins();
Margins(MarginsType type,
- int32 top_microns,
- int32 right_microns,
- int32 bottom_microns,
- int32 left_microns);
+ int32 top_um,
+ int32 right_um,
+ int32 bottom_um,
+ int32 left_um);
bool operator==(const Margins& other) const;
bool operator!=(const Margins& other) const {
@@ -74,10 +74,10 @@ struct Margins {
}
MarginsType type;
- int32 top_microns;
- int32 right_microns;
- int32 bottom_microns;
- int32 left_microns;
+ int32 top_um;
+ int32 right_um;
+ int32 bottom_um;
+ int32 left_um;
};
struct Dpi {
@@ -282,10 +282,12 @@ enum MediaType {
struct Media {
Media();
- Media(MediaType type, int32 width_microns, int32 height_microns);
+ Media(MediaType type, int32 width_um, int32 height_um);
Media(const std::string& custom_display_name,
- int32 width_microns, int32 height_microns);
+ int32 width_um, int32 height_um);
+
+ bool MatchBySize();
bool IsValid() const;
bool operator==(const Media& other) const;
@@ -294,8 +296,8 @@ struct Media {
}
MediaType type;
- int32 width_microns;
- int32 height_microns;
+ int32 width_um;
+ int32 height_um;
bool is_continuous_feed;
std::string custom_display_name;
};