| Index: base/system_monitor/system_monitor.h
|
| diff --git a/base/system_monitor/system_monitor.h b/base/system_monitor/system_monitor.h
|
| index 7684523616e0bd787e3a30f5ded9c40e1f7b5371..3f73b15aacd98d1ed5b55f058129a91df15ae01e 100644
|
| --- a/base/system_monitor/system_monitor.h
|
| +++ b/base/system_monitor/system_monitor.h
|
| @@ -1,4 +1,4 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Copyright (c) 2012 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.
|
|
|
| @@ -6,6 +6,8 @@
|
| #define BASE_SYSTEM_MONITOR_SYSTEM_MONITOR_H_
|
| #pragma once
|
|
|
| +#include <string>
|
| +
|
| #include "base/base_export.h"
|
| #include "base/basictypes.h"
|
| #include "build/build_config.h"
|
| @@ -28,6 +30,8 @@
|
| #include <IOKit/IOMessage.h>
|
| #endif // OS_MACOSX
|
|
|
| +class FilePath;
|
| +
|
| namespace base {
|
|
|
| // Class for monitoring various system-related subsystems
|
| @@ -42,6 +46,8 @@ class BASE_EXPORT SystemMonitor {
|
| RESUME_EVENT // The system is being resumed.
|
| };
|
|
|
| + typedef unsigned int DeviceIdType;
|
| +
|
| // Create SystemMonitor. Only one SystemMonitor instance per application
|
| // is allowed.
|
| SystemMonitor();
|
| @@ -93,8 +99,19 @@ class BASE_EXPORT SystemMonitor {
|
| class BASE_EXPORT DevicesChangedObserver {
|
| public:
|
| // Notification that the devices connected to the system have changed.
|
| + // This is only implemented on Windows currently.
|
| virtual void OnDevicesChanged() {}
|
|
|
| + // When a media device is attached or detached, one of these two events
|
| + // is triggered.
|
| + // TODO(vandebo) Pass an appropriate device identifier or way to interact
|
| + // with the devices instead of FilePath.
|
| + virtual void OnMediaDeviceAttached(const DeviceIdType& id,
|
| + const std::string& name,
|
| + const FilePath& path) {}
|
| +
|
| + virtual void OnMediaDeviceDetached(const DeviceIdType& id) {}
|
| +
|
| protected:
|
| virtual ~DevicesChangedObserver() {}
|
| };
|
| @@ -123,6 +140,10 @@ class BASE_EXPORT SystemMonitor {
|
|
|
| // Cross-platform handling of a device change event.
|
| void ProcessDevicesChanged();
|
| + void ProcessMediaDeviceAttached(const DeviceIdType& id,
|
| + const std::string& name,
|
| + const FilePath& path);
|
| + void ProcessMediaDeviceDetached(const DeviceIdType& id);
|
|
|
| private:
|
| #if defined(OS_MACOSX)
|
| @@ -141,6 +162,10 @@ class BASE_EXPORT SystemMonitor {
|
|
|
| // Functions to trigger notifications.
|
| void NotifyDevicesChanged();
|
| + void NotifyMediaDeviceAttached(const DeviceIdType& id,
|
| + const std::string& name,
|
| + const FilePath& path);
|
| + void NotifyMediaDeviceDetached(const DeviceIdType& id);
|
| void NotifyPowerStateChange();
|
| void NotifySuspend();
|
| void NotifyResume();
|
|
|