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#ifndef UI_EVENTS_OZONE_DEVICE_DEVICE_MANAGER_H_
6#define UI_EVENTS_OZONE_DEVICE_DEVICE_MANAGER_H_
7
8#include "base/memory/scoped_ptr.h"
9#include "ui/events/ozone/events_ozone_export.h"
10
11namespace ui {
12
13class DeviceEventObserver;
14
15class EVENTS_OZONE_EXPORT DeviceManager {
16 public:
17  virtual ~DeviceManager() {}
18
19  // Scans the currently available devices and notifies |observer| for each
20  // device found. If also registering for notifications through AddObserver(),
21  // the scan should happen after the registration otherwise the observer may
22  // miss events.
23  virtual void ScanDevices(DeviceEventObserver* observer) = 0;
24
25  // Registers |observer| for device event notifications.
26  virtual void AddObserver(DeviceEventObserver* observer) = 0;
27
28  // Removes |observer| from the list of observers notified.
29  virtual void RemoveObserver(DeviceEventObserver* observer) = 0;
30};
31
32EVENTS_OZONE_EXPORT scoped_ptr<DeviceManager> CreateDeviceManager();
33
34}  // namespace ui
35
36#endif  // UI_EVENTS_OZONE_DEVICE_DEVICE_MANAGER_H_
37