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