|  | // Copyright 2015 The Weave Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "src/privet/device_ui_kind.h" | 
|  |  | 
|  | #include <unordered_map> | 
|  |  | 
|  | #include <base/logging.h> | 
|  |  | 
|  | namespace weave { | 
|  | namespace privet { | 
|  |  | 
|  | std::string GetDeviceUiKind(const std::string& manifest_id) { | 
|  | // Map of device short id to ui device kind | 
|  | static const std::unordered_map<std::string, std::string> device_kind_map = { | 
|  | // clang-format off | 
|  | {"AC", "accessPoint"}, | 
|  | {"AK", "aggregator"}, | 
|  | {"AM", "camera"}, | 
|  | {"AB", "developmentBoard"}, | 
|  | {"AH", "acHeating"}, | 
|  | {"AI", "light"}, | 
|  | {"AO", "lock"}, | 
|  | {"AE", "printer"}, | 
|  | {"AF", "scanner"}, | 
|  | {"AD", "speaker"}, | 
|  | {"AL", "storage"}, | 
|  | {"AJ", "toy"}, | 
|  | {"AA", "vendor"}, | 
|  | {"AN", "video"}, | 
|  | // clang-format on | 
|  | }; | 
|  |  | 
|  | CHECK_EQ(5u, manifest_id.size()); | 
|  | std::string short_id = manifest_id.substr(0, 2); | 
|  |  | 
|  | auto iter = device_kind_map.find(short_id); | 
|  | if (iter != device_kind_map.end()) | 
|  | return iter->second; | 
|  |  | 
|  | LOG(FATAL) << "Invalid model id: " << manifest_id; | 
|  | return std::string(); | 
|  | } | 
|  |  | 
|  | }  // namespace privet | 
|  | }  // namespace weave |