Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/cloud_devices/common/printer_description.h" | 5 #include "components/cloud_devices/common/printer_description.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/json/json_reader.h" | 9 #include "base/json/json_reader.h" |
| 10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 155 const int32 kInchToUm = 25400; | 155 const int32 kInchToUm = 25400; |
| 156 const int32 kMmToUm = 1000; | 156 const int32 kMmToUm = 1000; |
| 157 const int32 kSizeTrasholdUm = 1000; | 157 const int32 kSizeTrasholdUm = 1000; |
| 158 | 158 |
| 159 #define MAP_CLOUD_PRINT_MEDIA_TYPE(type, width, height, unit_um) \ | 159 #define MAP_CLOUD_PRINT_MEDIA_TYPE(type, width, height, unit_um) \ |
| 160 { \ | 160 { \ |
| 161 type, #type, static_cast<int>(width* unit_um + 0.5), \ | 161 type, #type, static_cast<int>(width* unit_um + 0.5), \ |
| 162 static_cast<int>(height* unit_um + 0.5) \ | 162 static_cast<int>(height* unit_um + 0.5) \ |
| 163 } | 163 } |
| 164 | 164 |
| 165 const struct MadiaDefinition { | 165 const struct MediaDefinition { |
| 166 MediaType id; | 166 MediaType id; |
| 167 const char* const json_name; | 167 const char* const json_name; |
| 168 int width_um; | 168 int width_um; |
| 169 int height_um; | 169 int height_um; |
| 170 } kMediaDefinitions[] = { | 170 } kMediaDefinitions[] = { |
| 171 {CUSTOM_MEDIA, "CUSTOM", 0, 0}, | 171 {CUSTOM_MEDIA, "CUSTOM", 0, 0}, |
| 172 MAP_CLOUD_PRINT_MEDIA_TYPE(NA_INDEX_3X5, 3, 5, kInchToUm), | 172 MAP_CLOUD_PRINT_MEDIA_TYPE(NA_INDEX_3X5, 3, 5, kInchToUm), |
| 173 MAP_CLOUD_PRINT_MEDIA_TYPE(NA_PERSONAL, 3.625f, 6.5f, kInchToUm), | 173 MAP_CLOUD_PRINT_MEDIA_TYPE(NA_PERSONAL, 3.625f, 6.5f, kInchToUm), |
| 174 MAP_CLOUD_PRINT_MEDIA_TYPE(NA_MONARCH, 3.875f, 7.5f, kInchToUm), | 174 MAP_CLOUD_PRINT_MEDIA_TYPE(NA_MONARCH, 3.875f, 7.5f, kInchToUm), |
| 175 MAP_CLOUD_PRINT_MEDIA_TYPE(NA_NUMBER_9, 3.875f, 8.875f, kInchToUm), | 175 MAP_CLOUD_PRINT_MEDIA_TYPE(NA_NUMBER_9, 3.875f, 8.875f, kInchToUm), |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 328 MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_KAKU2, 240, 332, kMmToUm), | 328 MAP_CLOUD_PRINT_MEDIA_TYPE(JPN_KAKU2, 240, 332, kMmToUm), |
| 329 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_SMALL_PHOTO, 100, 150, kMmToUm), | 329 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_SMALL_PHOTO, 100, 150, kMmToUm), |
| 330 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_ITALIAN, 110, 230, kMmToUm), | 330 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_ITALIAN, 110, 230, kMmToUm), |
| 331 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_POSTFIX, 114, 229, kMmToUm), | 331 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_POSTFIX, 114, 229, kMmToUm), |
| 332 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_LARGE_PHOTO, 200, 300, kMmToUm), | 332 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_LARGE_PHOTO, 200, 300, kMmToUm), |
| 333 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_FOLIO, 210, 330, kMmToUm), | 333 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_FOLIO, 210, 330, kMmToUm), |
| 334 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_FOLIO_SP, 215, 315, kMmToUm), | 334 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_FOLIO_SP, 215, 315, kMmToUm), |
| 335 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_INVITE, 220, 220, kMmToUm)}; | 335 MAP_CLOUD_PRINT_MEDIA_TYPE(OM_INVITE, 220, 220, kMmToUm)}; |
| 336 #undef MAP_CLOUD_PRINT_MEDIA_TYPE | 336 #undef MAP_CLOUD_PRINT_MEDIA_TYPE |
| 337 | 337 |
| 338 const MadiaDefinition* FindMediaBySize(int32 width_um, int32 height_um) { | 338 const MediaDefinition* FindMediaByType(MediaType type) { |
| 339 const MadiaDefinition* result = NULL; | 339 for (size_t i = 0; i < arraysize(kMediaDefinitions); ++i) { |
| 340 if (kMediaDefinitions[i].id == type) | |
| 341 return &kMediaDefinitions[i]; | |
| 342 } | |
| 343 return NULL; | |
|
Vitaly Buka (NO REVIEWS)
2014/05/22 01:11:21
NOTREACHED here
Aleksey Shlyapnikov
2014/05/22 03:51:18
Done.
| |
| 344 } | |
| 345 | |
| 346 const MediaDefinition* FindMediaBySize(int32 width_um, int32 height_um) { | |
| 347 const MediaDefinition* result = NULL; | |
| 340 for (size_t i = 0; i < arraysize(kMediaDefinitions); ++i) { | 348 for (size_t i = 0; i < arraysize(kMediaDefinitions); ++i) { |
| 341 int32 diff = std::max(std::abs(width_um - kMediaDefinitions[i].width_um), | 349 int32 diff = std::max(std::abs(width_um - kMediaDefinitions[i].width_um), |
| 342 std::abs(height_um - kMediaDefinitions[i].height_um)); | 350 std::abs(height_um - kMediaDefinitions[i].height_um)); |
| 343 if (diff < kSizeTrasholdUm) | 351 if (diff < kSizeTrasholdUm) |
| 344 result = &kMediaDefinitions[i]; | 352 result = &kMediaDefinitions[i]; |
| 345 } | 353 } |
| 346 return result; | 354 return result; |
| 347 } | 355 } |
| 348 | 356 |
| 349 template <class T, class IdType> | 357 template <class T, class IdType> |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 425 } | 433 } |
| 426 | 434 |
| 427 bool Dpi::operator==(const Dpi& other) const { | 435 bool Dpi::operator==(const Dpi& other) const { |
| 428 return horizontal == other.horizontal && vertical == other.vertical; | 436 return horizontal == other.horizontal && vertical == other.vertical; |
| 429 } | 437 } |
| 430 | 438 |
| 431 Media::Media() | 439 Media::Media() |
| 432 : type(CUSTOM_MEDIA), width_um(0), height_um(0), is_continuous_feed(false) { | 440 : type(CUSTOM_MEDIA), width_um(0), height_um(0), is_continuous_feed(false) { |
| 433 } | 441 } |
| 434 | 442 |
| 443 Media::Media(MediaType type) | |
| 444 : type(type), | |
| 445 width_um(0), | |
|
Vitaly Buka (NO REVIEWS)
2014/05/22 01:11:21
just call MatchByType() here
Aleksey Shlyapnikov
2014/05/22 03:51:18
Done.
| |
| 446 height_um(0), | |
| 447 is_continuous_feed(false) { | |
| 448 } | |
| 449 | |
| 435 Media::Media(MediaType type, int32 width_um, int32 height_um) | 450 Media::Media(MediaType type, int32 width_um, int32 height_um) |
| 436 : type(type), | 451 : type(type), |
| 437 width_um(width_um), | 452 width_um(width_um), |
| 438 height_um(height_um), | 453 height_um(height_um), |
| 439 is_continuous_feed(width_um <= 0 || height_um <= 0) { | 454 is_continuous_feed(width_um <= 0 || height_um <= 0) { |
| 440 } | 455 } |
| 441 | 456 |
| 442 Media::Media(const std::string& custom_display_name, | 457 Media::Media(const std::string& custom_display_name, |
| 443 int32 width_um, | 458 int32 width_um, |
| 444 int32 height_um) | 459 int32 height_um) |
| 445 : type(CUSTOM_MEDIA), | 460 : type(CUSTOM_MEDIA), |
| 446 width_um(width_um), | 461 width_um(width_um), |
| 447 height_um(height_um), | 462 height_um(height_um), |
| 448 is_continuous_feed(width_um <= 0 || height_um <= 0), | 463 is_continuous_feed(width_um <= 0 || height_um <= 0), |
| 449 custom_display_name(custom_display_name) { | 464 custom_display_name(custom_display_name) { |
| 450 } | 465 } |
| 451 | 466 |
| 467 bool Media::MatchByType() { | |
| 468 const MediaDefinition* media = FindMediaByType(type); | |
| 469 if (!media) | |
| 470 return false; | |
| 471 width_um = media->width_um; | |
| 472 height_um = media->height_um; | |
| 473 is_continuous_feed = width_um <= 0 || height_um <= 0; | |
| 474 custom_display_name.clear(); | |
| 475 return true; | |
| 476 } | |
| 477 | |
| 452 bool Media::MatchBySize() { | 478 bool Media::MatchBySize() { |
| 453 const MadiaDefinition* media = FindMediaBySize(width_um, height_um); | 479 const MediaDefinition* media = FindMediaBySize(width_um, height_um); |
| 454 if (!media) | 480 if (!media) |
| 455 return false; | 481 return false; |
| 456 type = media->id; | 482 type = media->id; |
| 457 custom_display_name.clear(); | 483 custom_display_name.clear(); |
| 458 return true; | 484 return true; |
| 459 } | 485 } |
| 460 | 486 |
| 461 bool Media::IsValid() const { | 487 bool Media::IsValid() const { |
| 462 if (is_continuous_feed) { | 488 if (is_continuous_feed) { |
| 463 if (width_um <= 0 && height_um <= 0) | 489 if (width_um <= 0 && height_um <= 0) |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 808 template class TicketItem<Margins, MarginsTraits>; | 834 template class TicketItem<Margins, MarginsTraits>; |
| 809 template class TicketItem<Dpi, DpiTraits>; | 835 template class TicketItem<Dpi, DpiTraits>; |
| 810 template class TicketItem<FitToPageType, FitToPageTraits>; | 836 template class TicketItem<FitToPageType, FitToPageTraits>; |
| 811 template class TicketItem<Media, MediaTraits>; | 837 template class TicketItem<Media, MediaTraits>; |
| 812 template class TicketItem<int32, CopiesTraits>; | 838 template class TicketItem<int32, CopiesTraits>; |
| 813 template class TicketItem<PageRange, PageRangeTraits>; | 839 template class TicketItem<PageRange, PageRangeTraits>; |
| 814 template class TicketItem<bool, CollateTraits>; | 840 template class TicketItem<bool, CollateTraits>; |
| 815 template class TicketItem<bool, ReverseTraits>; | 841 template class TicketItem<bool, ReverseTraits>; |
| 816 | 842 |
| 817 } // namespace cloud_devices | 843 } // namespace cloud_devices |
| OLD | NEW |