Chromium Code Reviews| 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_; |