diff options
author | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-29 23:42:22 +0000 |
---|---|---|
committer | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-29 23:42:22 +0000 |
commit | c2cab5528181d515e195ef5f31768e88cd15fbbd (patch) | |
tree | 3baa3c0f732a655d9e3fc4ad06ef46bdf411ba47 /base/system_monitor/system_monitor.h | |
parent | 95c796556ae6415b71b364c1bfd6257e8ca3a38e (diff) | |
download | chromium_src-c2cab5528181d515e195ef5f31768e88cd15fbbd.zip chromium_src-c2cab5528181d515e195ef5f31768e88cd15fbbd.tar.gz chromium_src-c2cab5528181d515e195ef5f31768e88cd15fbbd.tar.bz2 |
Add Media device notification to SystemMonitor and Mac impl
BUG=110400
TEST=run chrome with -v=1, attach and a mass storage media device and observe the log entries for the attach and detach events.
Review URL: https://chromiumcodereview.appspot.com/9363008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124288 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/system_monitor/system_monitor.h')
-rw-r--r-- | base/system_monitor/system_monitor.h | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/base/system_monitor/system_monitor.h b/base/system_monitor/system_monitor.h index 7684523..3f73b15 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(); |