1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
|
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_EVENTS_EVENTS_API_CONVERTERS_H_
#define CHROME_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_EVENTS_EVENTS_API_CONVERTERS_H_
#include <cstdint>
#include <optional>
#include <type_traits>
#include <utility>
#include "chrome/common/chromeos/extensions/api/events.h"
#include "chromeos/crosapi/mojom/nullable_primitives.mojom.h"
#include "chromeos/crosapi/mojom/probe_service.mojom.h"
#include "chromeos/crosapi/mojom/telemetry_event_service.mojom.h"
#include "chromeos/crosapi/mojom/telemetry_keyboard_event.mojom.h"
namespace chromeos::converters::events {
namespace unchecked {
api::os_events::AudioJackEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryAudioJackEventInfoPtr ptr);
api::os_events::KeyboardInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryKeyboardInfoPtr ptr);
api::os_events::KeyboardDiagnosticEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryKeyboardDiagnosticEventInfoPtr ptr);
api::os_events::LidEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryLidEventInfoPtr ptr);
api::os_events::UsbEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryUsbEventInfoPtr ptr);
api::os_events::ExternalDisplayEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryExternalDisplayEventInfoPtr ptr);
api::os_events::ExternalDisplayInfo UncheckedConvertPtr(
crosapi::mojom::ProbeExternalDisplayInfoPtr input);
api::os_events::SdCardEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetrySdCardEventInfoPtr ptr);
api::os_events::PowerEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryPowerEventInfoPtr ptr);
api::os_events::StylusGarageEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryStylusGarageEventInfoPtr ptr);
std::optional<uint32_t> UncheckedConvertPtr(crosapi::mojom::UInt32ValuePtr ptr);
api::os_events::TouchpadButtonEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryTouchpadButtonEventInfoPtr ptr);
api::os_events::TouchpadTouchEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryTouchpadTouchEventInfoPtr ptr);
api::os_events::TouchpadConnectedEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryTouchpadConnectedEventInfoPtr ptr);
api::os_events::TouchscreenTouchEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryTouchscreenTouchEventInfoPtr ptr);
api::os_events::TouchscreenConnectedEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryTouchscreenConnectedEventInfoPtr ptr);
api::os_events::TouchPointInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryTouchPointInfoPtr ptr);
api::os_events::StylusTouchPointInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryStylusTouchPointInfoPtr ptr);
api::os_events::StylusTouchEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryStylusTouchEventInfoPtr ptr);
api::os_events::StylusConnectedEventInfo UncheckedConvertPtr(
crosapi::mojom::TelemetryStylusConnectedEventInfoPtr ptr);
} // namespace unchecked
api::os_events::AudioJackEvent Convert(
crosapi::mojom::TelemetryAudioJackEventInfo::State state);
api::os_events::AudioJackDeviceType Convert(
crosapi::mojom::TelemetryAudioJackEventInfo::DeviceType device_type);
api::os_events::KeyboardConnectionType Convert(
crosapi::mojom::TelemetryKeyboardConnectionType input);
api::os_events::PhysicalKeyboardLayout Convert(
crosapi::mojom::TelemetryKeyboardPhysicalLayout input);
api::os_events::MechanicalKeyboardLayout Convert(
crosapi::mojom::TelemetryKeyboardMechanicalLayout input);
api::os_events::KeyboardNumberPadPresence Convert(
crosapi::mojom::TelemetryKeyboardNumberPadPresence input);
api::os_events::KeyboardTopRowKey Convert(
crosapi::mojom::TelemetryKeyboardTopRowKey input);
api::os_events::KeyboardTopRightKey Convert(
crosapi::mojom::TelemetryKeyboardTopRightKey input);
api::os_events::LidEvent Convert(
crosapi::mojom::TelemetryLidEventInfo::State state);
api::os_events::UsbEvent Convert(
crosapi::mojom::TelemetryUsbEventInfo::State state);
api::os_events::ExternalDisplayEvent Convert(
crosapi::mojom::TelemetryExternalDisplayEventInfo::State state);
api::os_events::SdCardEvent Convert(
crosapi::mojom::TelemetrySdCardEventInfo::State state);
api::os_events::PowerEvent Convert(
crosapi::mojom::TelemetryPowerEventInfo::State state);
api::os_events::StylusGarageEvent Convert(
crosapi::mojom::TelemetryStylusGarageEventInfo::State state);
api::os_events::InputTouchButton Convert(
crosapi::mojom::TelemetryInputTouchButton button);
api::os_events::InputTouchButtonState Convert(
crosapi::mojom::TelemetryTouchpadButtonEventInfo::State state);
api::os_events::DisplayInputType Convert(
crosapi::mojom::ProbeDisplayInputType input);
crosapi::mojom::TelemetryEventCategoryEnum Convert(
api::os_events::EventCategory input);
int Convert(uint32_t input);
template <class InputT,
class OutputT = decltype(Convert(std::declval<InputT>()))>
requires(std::is_enum_v<InputT> || std::is_integral_v<InputT>)
std::vector<OutputT> ConvertVector(std::vector<InputT> input) {
std::vector<OutputT> output;
for (auto elem : input) {
output.push_back(Convert(std::move(elem)));
}
return output;
}
template <class InputT,
class OutputT =
decltype(unchecked::UncheckedConvertPtr(std::declval<InputT>()))>
requires(std::is_default_constructible_v<OutputT>)
OutputT ConvertStructPtr(InputT input) {
return (!input.is_null()) ? unchecked::UncheckedConvertPtr(std::move(input))
: OutputT();
}
template <class OutputT, class InputT>
std::vector<OutputT> ConvertStructPtrVector(std::vector<InputT> input) {
std::vector<OutputT> output;
for (auto&& element : input) {
DCHECK(!element.is_null());
output.push_back(unchecked::UncheckedConvertPtr(std::move(element)));
}
return output;
}
} // namespace chromeos::converters::events
#endif // CHROME_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_EVENTS_EVENTS_API_CONVERTERS_H_
|