1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_CHROMEOS_DEVICE_HIERARCHY_OBSERVER_H_ 6 #define CHROME_BROWSER_CHROMEOS_DEVICE_HIERARCHY_OBSERVER_H_ 7 8 namespace chromeos { 9 10 // Observers receive notifications when a device has been added/removed. 11 class DeviceHierarchyObserver { 12 public: 13 virtual void DeviceHierarchyChanged() = 0; 14 15 // Called when a new device (e.g. an external USB keyboard) is attached or 16 // detached. 17 virtual void DeviceAdded(int device_id) = 0; 18 virtual void DeviceRemoved(int device_id) = 0; 19 20 // Called when a key on either a built-in keyboard or an external one is 21 // pressed. |device_id| is the source of the key event which will be sent to 22 // the Chrome window shortly. 23 virtual void DeviceKeyPressedOrReleased(int device_id) = 0; 24 25 protected: ~DeviceHierarchyObserver()26 virtual ~DeviceHierarchyObserver() {} 27 }; 28 29 } // namespace chromeos 30 31 #endif // CHROME_BROWSER_CHROMEOS_DEVICE_HIERARCHY_OBSERVER_H_ 32