15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved.
25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be
35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file.
45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "device/hid/hid_usage_and_page.h"
65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace device {
85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool HidUsageAndPage::IsProtected() const {
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  if (usage_page == HidUsageAndPage::kPageKeyboard)
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    return true;
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  if (usage_page != HidUsageAndPage::kPageGenericDesktop)
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    return false;
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  if (usage == HidUsageAndPage::kGenericDesktopPointer ||
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      usage == HidUsageAndPage::kGenericDesktopMouse ||
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      usage == HidUsageAndPage::kGenericDesktopKeyboard ||
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      usage == HidUsageAndPage::kGenericDesktopKeypad) {
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    return true;
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  }
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  if (usage >= HidUsageAndPage::kGenericDesktopSystemControl &&
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      usage <= HidUsageAndPage::kGenericDesktopSystemWarmRestart) {
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    return true;
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  }
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  if (usage >= HidUsageAndPage::kGenericDesktopSystemDock &&
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      usage <= HidUsageAndPage::kGenericDesktopSystemDisplaySwap) {
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    return true;
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  }
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return false;
345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu}
355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu}  // namespace device
37