diff options
author | tpayne@chromium.org <tpayne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-25 18:35:08 +0000 |
---|---|---|
committer | tpayne@chromium.org <tpayne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-25 18:35:08 +0000 |
commit | b83575d22ecc2937e065c5b53ff6a74447c3f3af (patch) | |
tree | 64c9b763a261b961d6b9bcdef5f13589a836b183 /content/browser/system_message_window_win.cc | |
parent | ad1acb571488dad4b3adc67a8199fe4c6ede96f5 (diff) | |
download | chromium_src-b83575d22ecc2937e065c5b53ff6a74447c3f3af.zip chromium_src-b83575d22ecc2937e065c5b53ff6a74447c3f3af.tar.gz chromium_src-b83575d22ecc2937e065c5b53ff6a74447c3f3af.tar.bz2 |
Moves media device notification code to chrome/browser
BUG=NONE
TEST=NONE
Review URL: http://codereview.chromium.org/10211008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133946 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/system_message_window_win.cc')
-rw-r--r-- | content/browser/system_message_window_win.cc | 63 |
1 files changed, 2 insertions, 61 deletions
diff --git a/content/browser/system_message_window_win.cc b/content/browser/system_message_window_win.cc index 1aca1c1..347e717d 100644 --- a/content/browser/system_message_window_win.cc +++ b/content/browser/system_message_window_win.cc @@ -6,50 +6,15 @@ #include <windows.h> #include <dbt.h> -#include <string> -#include "base/file_path.h" -#include "base/sys_string_conversions.h" +#include "base/logging.h" #include "base/system_monitor/system_monitor.h" #include "base/win/wrapped_window_proc.h" static const wchar_t* const WindowClassName = L"Chrome_SystemMessageWindow"; -namespace { -LRESULT GetVolumeName(LPCWSTR drive, - LPWSTR volume_name, - unsigned int volume_name_len) { - return GetVolumeInformation(drive, volume_name, volume_name_len, NULL, NULL, - NULL, NULL, 0); -} - -// Returns 0 if the devicetype is not volume. -DWORD GetVolumeBitMaskFromBroadcastHeader(DWORD data) { - PDEV_BROADCAST_HDR dev_broadcast_hdr = - reinterpret_cast<PDEV_BROADCAST_HDR>(data); - if (dev_broadcast_hdr->dbch_devicetype == DBT_DEVTYP_VOLUME) { - PDEV_BROADCAST_VOLUME dev_broadcast_volume = - reinterpret_cast<PDEV_BROADCAST_VOLUME>(dev_broadcast_hdr); - return dev_broadcast_volume->dbcv_unitmask; - } - return 0; -} - -} // namespace - - -SystemMessageWindowWin::SystemMessageWindowWin() - : volume_name_func_(&GetVolumeName) { - Init(); -} - -SystemMessageWindowWin::SystemMessageWindowWin(VolumeNameFunc volume_name_func) - : volume_name_func_(volume_name_func) { - Init(); -} - -void SystemMessageWindowWin::Init() { +SystemMessageWindowWin::SystemMessageWindowWin() { HINSTANCE hinst = GetModuleHandle(NULL); WNDCLASSEX wc = {0}; @@ -79,30 +44,6 @@ LRESULT SystemMessageWindowWin::OnDeviceChange(UINT event_type, DWORD data) { case DBT_DEVNODES_CHANGED: monitor->ProcessDevicesChanged(); break; - case DBT_DEVICEARRIVAL: { - DWORD unitmask = GetVolumeBitMaskFromBroadcastHeader(data); - for (int i = 0; unitmask; ++i, unitmask >>= 1) { - if (unitmask & 0x01) { - FilePath::StringType drive(L"_:\\"); - drive[0] = L'A' + i; - WCHAR volume_name[MAX_PATH + 1]; - if ((*volume_name_func_)(drive.c_str(), volume_name, MAX_PATH + 1)) { - monitor->ProcessMediaDeviceAttached( - i, base::SysWideToUTF8(volume_name), FilePath(drive)); - } - } - } - break; - } - case DBT_DEVICEREMOVECOMPLETE: { - DWORD unitmask = GetVolumeBitMaskFromBroadcastHeader(data); - for (int i = 0; unitmask; ++i, unitmask >>= 1) { - if (unitmask & 0x01) { - monitor->ProcessMediaDeviceDetached(i); - } - } - break; - } } return TRUE; } |