blob: 8acc632517f35e1536cd0d8ae6ec1e55301a5f02 [file] [log] [blame]
Enrico Granata60a818d2019-05-09 09:56:09 -07001// Copyright 2019 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include <base/logging.h>
6#include <base/macros.h>
7
8#include "mems_setup/sensor_kind.h"
9
10namespace mems_setup {
11
12namespace {
13constexpr char kAccelName[] = "accel";
14constexpr char kGyroName[] = "anglvel";
15constexpr char kLightName[] = "illuminance";
Harvey Yangf474de32020-09-11 16:11:30 +080016constexpr char kSyncName[] = "count";
17constexpr char kMagnName[] = "magn";
18constexpr char kBaroName[] = "baro";
Enrico Granata60a818d2019-05-09 09:56:09 -070019} // namespace
20
21std::string SensorKindToString(SensorKind kind) {
22 switch (kind) {
23 case SensorKind::ACCELEROMETER:
24 return kAccelName;
25 case SensorKind::GYROSCOPE:
26 return kGyroName;
27 case SensorKind::LIGHT:
28 return kLightName;
Harvey Yangf474de32020-09-11 16:11:30 +080029 case SensorKind::SYNC:
30 return kSyncName;
31 case SensorKind::MAGNETOMETER:
32 return kAccelName;
33 case SensorKind::BAROMETER:
34 return kBaroName;
Enrico Granata60a818d2019-05-09 09:56:09 -070035 }
36
37 NOTREACHED();
38}
39
40base::Optional<SensorKind> SensorKindFromString(const std::string& name) {
41 if (name == kAccelName)
42 return SensorKind::ACCELEROMETER;
43 if (name == kGyroName)
44 return SensorKind::GYROSCOPE;
45 if (name == kLightName)
46 return SensorKind::LIGHT;
Harvey Yangf474de32020-09-11 16:11:30 +080047 if (name == kSyncName)
48 return SensorKind::SYNC;
49 if (name == kMagnName)
50 return SensorKind::MAGNETOMETER;
51 if (name == kBaroName)
52 return SensorKind::BAROMETER;
Enrico Granata60a818d2019-05-09 09:56:09 -070053
54 return base::nullopt;
55}
56
57} // namespace mems_setup