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.
5 #ifndef UI_EVENTS_OZONE_DEVICE_DEVICE_MANAGER_H_
6 #define UI_EVENTS_OZONE_DEVICE_DEVICE_MANAGER_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "ui/events/ozone/events_ozone_export.h"
13 class DeviceEventObserver
;
15 class EVENTS_OZONE_EXPORT DeviceManager
{
17 virtual ~DeviceManager() {}
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
23 virtual void ScanDevices(DeviceEventObserver
* observer
) = 0;
25 // Registers |observer| for device event notifications.
26 virtual void AddObserver(DeviceEventObserver
* observer
) = 0;
28 // Removes |observer| from the list of observers notified.
29 virtual void RemoveObserver(DeviceEventObserver
* observer
) = 0;
32 EVENTS_OZONE_EXPORT scoped_ptr
<DeviceManager
> CreateDeviceManager();
36 #endif // UI_EVENTS_OZONE_DEVICE_DEVICE_MANAGER_H_