blob: 223e351a90672ee60323fbf0b660d80df7a11e7c [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_HID_HID_REPORT_ITEM_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_HID_HID_REPORT_ITEM_H_
#include "services/device/public/mojom/hid.mojom-blink-forward.h"
#include "third_party/blink/renderer/modules/modules_export.h"
#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
#include "third_party/blink/renderer/platform/heap/heap_allocator.h"
#include "third_party/blink/renderer/platform/heap/member.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
#include "third_party/blink/renderer/platform/wtf/vector.h"
namespace blink {
class MODULES_EXPORT HIDReportItem : public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
explicit HIDReportItem(const device::mojom::blink::HidReportItem& item);
~HIDReportItem() override;
bool isAbsolute() const { return is_absolute_; }
bool isArray() const { return is_array_; }
bool isRange() const { return is_range_; }
bool hasNull() const { return has_null_; }
const Vector<uint32_t>& usages() const { return usages_; }
uint32_t usageMinimum() const { return usage_minimum_; }
uint32_t usageMaximum() const { return usage_maximum_; }
const Vector<String>& strings() const { return strings_; }
uint16_t reportSize() const { return report_size_; }
uint16_t reportCount() const { return report_count_; }
int8_t unitExponent() const { return unit_exponent_; }
String unitSystem() const { return unit_system_; }
int8_t unitFactorLengthExponent() const {
return unit_factor_length_exponent_;
}
int8_t unitFactorMassExponent() const { return unit_factor_mass_exponent_; }
int8_t unitFactorTimeExponent() const { return unit_factor_time_exponent_; }
int8_t unitFactorTemperatureExponent() const {
return unit_factor_temperature_exponent_;
}
int8_t unitFactorCurrentExponent() const {
return unit_factor_current_exponent_;
}
int8_t unitFactorLuminousIntensityExponent() const {
return unit_factor_luminous_intensity_exponent_;
}
int32_t logicalMinimum() const { return logical_minimum_; }
int32_t logicalMaximum() const { return logical_maximum_; }
int32_t physicalMinimum() const { return physical_minimum_; }
int32_t physicalMaximum() const { return physical_maximum_; }
private:
bool is_absolute_;
bool is_array_;
bool is_range_;
bool has_null_;
Vector<uint32_t> usages_;
Vector<String> strings_;
uint32_t usage_minimum_;
uint32_t usage_maximum_;
uint16_t report_size_;
uint16_t report_count_;
int8_t unit_exponent_;
String unit_system_;
int8_t unit_factor_length_exponent_;
int8_t unit_factor_mass_exponent_;
int8_t unit_factor_time_exponent_;
int8_t unit_factor_temperature_exponent_;
int8_t unit_factor_current_exponent_;
int8_t unit_factor_luminous_intensity_exponent_;
int32_t logical_minimum_;
int32_t logical_maximum_;
int32_t physical_minimum_;
int32_t physical_maximum_;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_HID_HID_REPORT_ITEM_H_