Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(237)

Unified Diff: remoting/host/audio_capturer_win.h

Issue 2163473002: [Chromoting] Audio playback won't work after switching default playback device (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Resolve review comments Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | remoting/host/audio_capturer_win.cc » ('j') | remoting/host/audio_capturer_win.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/audio_capturer_win.h
diff --git a/remoting/host/audio_capturer_win.h b/remoting/host/audio_capturer_win.h
index d53920a43d9284f6b4ebd8f7d8f5f626b568a87e..db8c5d7da5e7a0cd14e372dab93444a573f0c83e 100644
--- a/remoting/host/audio_capturer_win.h
+++ b/remoting/host/audio_capturer_win.h
@@ -31,6 +31,16 @@ class AudioCapturerWin : public AudioCapturer {
bool Start(const PacketCapturedCallback& callback) override;
private:
+ // The implementation of IMMNotificationClient, to set
+ // default_audio_device_changed_ in OnDefaultDeviceChanged function.
Sergey Ulanov 2016/07/20 17:28:34 nit: s/default_audio_device_changed_/|default_audi
Hzj_jie 2016/07/20 20:43:14 Since default_audio_device_changed_ has been moved
+ class MMNotificationClient;
+ friend class MMNotificationClient;
Sergey Ulanov 2016/07/20 17:28:34 if you move default_audio_device_changed_ to MMNot
Hzj_jie 2016/07/20 20:43:14 Done.
+
+ // Resets and reinitializes default audio device related components. These
+ // components must be recreated once the default audio device changed. Returns
+ // false if initialization failed.
+ bool ResetAndInitialize();
+
// Receives all packets from the audio capture endpoint buffer and pushes them
// to the network.
void DoCapture();
@@ -55,11 +65,17 @@ class AudioCapturerWin : public AudioCapturer {
AudioSilenceDetector silence_detector_;
base::win::ScopedCoMem<WAVEFORMATEX> wave_format_ex_;
+ base::win::ScopedComPtr<IMMDeviceEnumerator> mm_device_enumerator_;
base::win::ScopedComPtr<IAudioCaptureClient> audio_capture_client_;
base::win::ScopedComPtr<IAudioClient> audio_client_;
base::win::ScopedComPtr<IMMDevice> mm_device_;
base::win::ScopedComPtr<IAudioEndpointVolume> audio_volume_;
+ // Whether the default audio device has been changed recently. If this value
+ // is true, we need to recreate all audio components.
+ bool default_audio_device_changed_ = false;
+ const std::unique_ptr<MMNotificationClient> mm_notification_client_;
+
HRESULT last_capture_error_;
base::ThreadChecker thread_checker_;
« no previous file with comments | « no previous file | remoting/host/audio_capturer_win.cc » ('j') | remoting/host/audio_capturer_win.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698