Index: components/cloud_devices/common/printer_description.cc |
diff --git a/components/cloud_devices/common/printer_description.cc b/components/cloud_devices/common/printer_description.cc |
index 86977958a7d5dce87c7c8dbf6be0b022494ab800..2f70fa6ce7722082b98311752e771f9f91c3c1ac 100644 |
--- a/components/cloud_devices/common/printer_description.cc |
+++ b/components/cloud_devices/common/printer_description.cc |
@@ -162,7 +162,7 @@ const int32 kSizeTrasholdUm = 1000; |
static_cast<int>(height* unit_um + 0.5) \ |
} |
-const struct MadiaDefinition { |
+const struct MediaDefinition { |
MediaType id; |
const char* const json_name; |
int width_um; |
@@ -335,8 +335,17 @@ const struct MadiaDefinition { |
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; |
+const MediaDefinition& FindMediaByType(MediaType type) { |
+ for (size_t i = 0; i < arraysize(kMediaDefinitions); ++i) { |
+ if (kMediaDefinitions[i].id == type) |
+ return kMediaDefinitions[i]; |
+ } |
+ NOTREACHED(); |
+ return kMediaDefinitions[0]; |
+} |
+ |
+const MediaDefinition* FindMediaBySize(int32 width_um, int32 height_um) { |
+ const MediaDefinition* 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)); |
@@ -432,6 +441,17 @@ Media::Media() |
: type(CUSTOM_MEDIA), width_um(0), height_um(0), is_continuous_feed(false) { |
} |
+Media::Media(MediaType type) |
+ : type(type), |
+ width_um(0), |
+ height_um(0), |
+ is_continuous_feed(false) { |
+ const MediaDefinition& media = FindMediaByType(type); |
+ width_um = media.width_um; |
+ height_um = media.height_um; |
+ is_continuous_feed = width_um <= 0 || height_um <= 0; |
+} |
+ |
Media::Media(MediaType type, int32 width_um, int32 height_um) |
: type(type), |
width_um(width_um), |
@@ -450,7 +470,7 @@ Media::Media(const std::string& custom_display_name, |
} |
bool Media::MatchBySize() { |
- const MadiaDefinition* media = FindMediaBySize(width_um, height_um); |
+ const MediaDefinition* media = FindMediaBySize(width_um, height_um); |
if (!media) |
return false; |
type = media->id; |