1// Copyright 2014 The Chromium 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 "device/hid/hid_usage_and_page.h"
6
7namespace device {
8
9bool HidUsageAndPage::IsProtected() const {
10  if (usage_page == HidUsageAndPage::kPageKeyboard)
11    return true;
12
13  if (usage_page != HidUsageAndPage::kPageGenericDesktop)
14    return false;
15
16  if (usage == HidUsageAndPage::kGenericDesktopPointer ||
17      usage == HidUsageAndPage::kGenericDesktopMouse ||
18      usage == HidUsageAndPage::kGenericDesktopKeyboard ||
19      usage == HidUsageAndPage::kGenericDesktopKeypad) {
20    return true;
21  }
22
23  if (usage >= HidUsageAndPage::kGenericDesktopSystemControl &&
24      usage <= HidUsageAndPage::kGenericDesktopSystemWarmRestart) {
25    return true;
26  }
27
28  if (usage >= HidUsageAndPage::kGenericDesktopSystemDock &&
29      usage <= HidUsageAndPage::kGenericDesktopSystemDisplaySwap) {
30    return true;
31  }
32
33  return false;
34}
35
36}  // namespace device
37