summaryrefslogtreecommitdiffstats
path: root/ui/events/devices/device_hotplug_event_observer.h
blob: 1e10d28eed88042e0cc293f4890cab7d2422f53b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_EVENTS_DEVICES_DEVICE_HOTPLUG_EVENT_OBSERVER_H_
#define UI_EVENTS_DEVICES_DEVICE_HOTPLUG_EVENT_OBSERVER_H_

#include <vector>

#include "ui/events/devices/events_devices_export.h"

namespace ui {

struct InputDevice;
struct KeyboardDevice;
struct TouchscreenDevice;

// Listener for specific input device hotplug events.
class EVENTS_DEVICES_EXPORT DeviceHotplugEventObserver {
 public:
  virtual ~DeviceHotplugEventObserver() {}

  // On a hotplug event this is called with the list of available touchscreen
  // devices. The set of touchscreen devices may not have changed.
  virtual void OnTouchscreenDevicesUpdated(
      const std::vector<TouchscreenDevice>& devices) = 0;

  // On a hotplug event this is called with the list of available keyboard
  // devices. The set of keyboard devices may not have changed.
  virtual void OnKeyboardDevicesUpdated(
      const std::vector<KeyboardDevice>& devices) = 0;

  // On a hotplug event this is called with the list of available mice. The set
  // of mice may not have changed.
  virtual void OnMouseDevicesUpdated(
      const std::vector<InputDevice>& devices) = 0;

  // On a hotplug event this is called with the list of available touchpads. The
  // set of touchpads may not have changed.
  virtual void OnTouchpadDevicesUpdated(
      const std::vector<InputDevice>& devices) = 0;

  // On completion of the initial startup scan. This means all of the above
  // OnDevicesUpdated() methods have been called with a complete list.
  virtual void OnDeviceListsComplete() = 0;
};

}  // namespace ui

#endif  // UI_EVENTS_DEVICES_DEVICE_HOTPLUG_EVENT_OBSERVER_H_