Index: media/audio/win/audio_device_listener_win.cc |
diff --git a/media/audio/win/audio_device_listener_win.cc b/media/audio/win/audio_device_listener_win.cc |
index 9312af62cc78b7d3239a10d306c79a6468a74284..66644981c9a8174723e879b9aaee687624a5d5bf 100644 |
--- a/media/audio/win/audio_device_listener_win.cc |
+++ b/media/audio/win/audio_device_listener_win.cc |
@@ -7,6 +7,7 @@ |
#include <Audioclient.h> |
#include "base/logging.h" |
+#include "base/system_monitor/system_monitor.h" |
#include "base/utf_string_conversions.h" |
#include "base/win/scoped_co_mem.h" |
#include "base/win/windows_version.h" |
@@ -101,6 +102,13 @@ STDMETHODIMP AudioDeviceListenerWin::OnDeviceRemoved(LPCWSTR device_id) { |
STDMETHODIMP AudioDeviceListenerWin::OnDeviceStateChanged(LPCWSTR device_id, |
DWORD new_state) { |
+ if (new_state != DEVICE_STATE_ACTIVE && new_state != DEVICE_STATE_NOTPRESENT) |
+ return S_OK; |
+ |
+ base::SystemMonitor* monitor = base::SystemMonitor::Get(); |
+ if (monitor) |
+ monitor->ProcessDevicesChanged(base::SystemMonitor::DEVTYPE_AUDIO_CAPTURE); |
henrika (OOO until Aug 14)
2012/12/17 08:20:17
How do you know that we are dealing with a capture
|
+ |
return S_OK; |
} |