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