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(); |