Chromium Code Reviews| Index: webrtc/modules/audio_device/include/fake_audio_device.h |
| diff --git a/webrtc/modules/audio_device/include/fake_audio_device.h b/webrtc/modules/audio_device/include/fake_audio_device.h |
| index a28ad8646436eaaec4f2a7bb016c927e5cc3d7ab..1797dd5e8db9b5cc978075a62f907e257324f8d2 100644 |
| --- a/webrtc/modules/audio_device/include/fake_audio_device.h |
| +++ b/webrtc/modules/audio_device/include/fake_audio_device.h |
| @@ -41,8 +41,20 @@ class FakeAudioDeviceModule : public AudioDeviceModule { |
| virtual int32_t SetStereoRecording(bool enable) { return 0; } |
| virtual int32_t SetAGC(bool enable) { return 0; } |
| virtual int32_t StopRecording() { return 0; } |
| - virtual int64_t TimeUntilNextProcess() { return 0; } |
| - virtual void Process() {} |
| + |
| + // If the subclass doesn't override the ProcessThread implementation, |
| + // we'll fall back on an implementation that doesn't eat too much CPU. |
| + virtual int64_t TimeUntilNextProcess() { |
| + if (turn_off_module_callbacks_) |
|
the sun
2017/02/25 20:01:07
return time_until_next_process_;
|
| + return 7 * 24 * 60 * 60 * 1000; // call me next week. |
| + uses_default_module_implementation_ = true; |
| + return 10; |
| + } |
| + |
| + virtual void Process() { |
| + turn_off_module_callbacks_ = uses_default_module_implementation_; |
|
the sun
2017/02/25 20:01:07
// After first call to Process(), we wait a long t
|
| + } |
| + |
| virtual int32_t Terminate() { return 0; } |
| virtual int32_t ActiveAudioLayer(AudioLayer* audioLayer) const { return 0; } |
| @@ -167,6 +179,10 @@ class FakeAudioDeviceModule : public AudioDeviceModule { |
| return -1; |
| } |
| #endif // WEBRTC_IOS |
| + |
| + private: |
| + bool uses_default_module_implementation_ = false; |
|
the sun
2017/02/25 20:01:07
int64_t time_until_next_process_ = 10;
|
| + bool turn_off_module_callbacks_ = false; |
| }; |
| } // namespace webrtc |