// 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 SERVICES_DEVICE_PUBLIC_CPP_HID_HID_REPORT_UTILS_H_ #define SERVICES_DEVICE_PUBLIC_CPP_HID_HID_REPORT_UTILS_H_ #include "services/device/public/cpp/hid/hid_report_type.h" #include "services/device/public/mojom/hid.mojom.h" namespace device { // Indicates whether reports of type `report_type` that appear in a top-level // collection with usage `hid_usage_and_page` should be blocked. bool IsAlwaysProtected(const mojom::HidUsageAndPage& hid_usage_and_page, HidReportType report_type); // Returns true if `collection` contains any unprotected reports, or false if // all its reports are always protected. bool CollectionHasUnprotectedReports( const mojom::HidCollectionInfo& collection); // Returns the collection in `device` containing a report with ID `report_id` // and type `report_type`, or nullptr if there is no matching report. const mojom::HidCollectionInfo* FindCollectionWithReport( const mojom::HidDeviceInfo& device, uint8_t report_id, HidReportType report_type); } // namespace device #endif // SERVICES_DEVICE_PUBLIC_CPP_HID_HID_REPORT_UTILS_H_