| Index: webrtc/modules/audio_device/win/audio_device_wave_win.cc
|
| diff --git a/webrtc/modules/audio_device/win/audio_device_wave_win.cc b/webrtc/modules/audio_device/win/audio_device_wave_win.cc
|
| index c14970899262ea2a61926946cad5663792603138..7874575e7ce166259801f1aa34bfe8f603d9ff9d 100644
|
| --- a/webrtc/modules/audio_device/win/audio_device_wave_win.cc
|
| +++ b/webrtc/modules/audio_device/win/audio_device_wave_win.cc
|
| @@ -8,6 +8,7 @@
|
| * be found in the AUTHORS file in the root of the source tree.
|
| */
|
|
|
| +#include "webrtc/base/logging.h"
|
| #include "webrtc/base/timeutils.h"
|
| #include "webrtc/modules/audio_device/audio_device_config.h"
|
| #include "webrtc/modules/audio_device/win/audio_device_wave_win.h"
|
| @@ -196,79 +197,69 @@ int32_t AudioDeviceWindowsWave::ActiveAudioLayer(AudioDeviceModule::AudioLayer&
|
| // Init
|
| // ----------------------------------------------------------------------------
|
|
|
| -int32_t AudioDeviceWindowsWave::Init()
|
| -{
|
| -
|
| - CriticalSectionScoped lock(&_critSect);
|
| +AudioDeviceGeneric::InitStatus AudioDeviceWindowsWave::Init() {
|
| + CriticalSectionScoped lock(&_critSect);
|
|
|
| - if (_initialized)
|
| - {
|
| - return 0;
|
| - }
|
| -
|
| - const uint32_t nowTime(rtc::TimeMillis());
|
| -
|
| - _recordedBytes = 0;
|
| - _prevRecByteCheckTime = nowTime;
|
| - _prevRecTime = nowTime;
|
| - _prevPlayTime = nowTime;
|
| - _prevTimerCheckTime = nowTime;
|
| + if (_initialized) {
|
| + return InitStatus::OK;
|
| + }
|
|
|
| - _playWarning = 0;
|
| - _playError = 0;
|
| - _recWarning = 0;
|
| - _recError = 0;
|
| + const uint32_t nowTime(rtc::TimeMillis());
|
|
|
| - _mixerManager.EnumerateAll();
|
| + _recordedBytes = 0;
|
| + _prevRecByteCheckTime = nowTime;
|
| + _prevRecTime = nowTime;
|
| + _prevPlayTime = nowTime;
|
| + _prevTimerCheckTime = nowTime;
|
|
|
| - if (_ptrThread)
|
| - {
|
| - // thread is already created and active
|
| - return 0;
|
| - }
|
| + _playWarning = 0;
|
| + _playError = 0;
|
| + _recWarning = 0;
|
| + _recError = 0;
|
|
|
| - const char* threadName = "webrtc_audio_module_thread";
|
| - _ptrThread.reset(new rtc::PlatformThread(ThreadFunc, this, threadName));
|
| - _ptrThread->Start();
|
| - _ptrThread->SetPriority(rtc::kRealtimePriority);
|
| + _mixerManager.EnumerateAll();
|
|
|
| - const bool periodic(true);
|
| - if (!_timeEvent.StartTimer(periodic, TIMER_PERIOD_MS))
|
| - {
|
| - WEBRTC_TRACE(kTraceCritical, kTraceAudioDevice, _id,
|
| - "failed to start the timer event");
|
| - _ptrThread->Stop();
|
| - _ptrThread.reset();
|
| - return -1;
|
| - }
|
| - WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
|
| - "periodic timer (dT=%d) is now active", TIMER_PERIOD_MS);
|
| + if (_ptrThread) {
|
| + // thread is already created and active
|
| + return InitStatus::OK;
|
| + }
|
|
|
| - _hGetCaptureVolumeThread =
|
| - CreateThread(NULL, 0, GetCaptureVolumeThread, this, 0, NULL);
|
| - if (_hGetCaptureVolumeThread == NULL)
|
| - {
|
| - WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id,
|
| - " failed to create the volume getter thread");
|
| - return -1;
|
| - }
|
| + const char* threadName = "webrtc_audio_module_thread";
|
| + _ptrThread.reset(new rtc::PlatformThread(ThreadFunc, this, threadName));
|
| + _ptrThread->Start();
|
| + _ptrThread->SetPriority(rtc::kRealtimePriority);
|
| +
|
| + const bool periodic(true);
|
| + if (!_timeEvent.StartTimer(periodic, TIMER_PERIOD_MS)) {
|
| + LOG(LS_ERROR) << "failed to start the timer event";
|
| + _ptrThread->Stop();
|
| + _ptrThread.reset();
|
| + return InitStatus::OTHER_ERROR;
|
| + }
|
| + WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
|
| + "periodic timer (dT=%d) is now active", TIMER_PERIOD_MS);
|
| +
|
| + _hGetCaptureVolumeThread =
|
| + CreateThread(NULL, 0, GetCaptureVolumeThread, this, 0, NULL);
|
| + if (_hGetCaptureVolumeThread == NULL) {
|
| + LOG(LS_ERROR) << " failed to create the volume getter thread";
|
| + return InitStatus::OTHER_ERROR;
|
| + }
|
|
|
| - SetThreadPriority(_hGetCaptureVolumeThread, THREAD_PRIORITY_NORMAL);
|
| + SetThreadPriority(_hGetCaptureVolumeThread, THREAD_PRIORITY_NORMAL);
|
|
|
| - _hSetCaptureVolumeThread =
|
| - CreateThread(NULL, 0, SetCaptureVolumeThread, this, 0, NULL);
|
| - if (_hSetCaptureVolumeThread == NULL)
|
| - {
|
| - WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id,
|
| - " failed to create the volume setter thread");
|
| - return -1;
|
| - }
|
| + _hSetCaptureVolumeThread =
|
| + CreateThread(NULL, 0, SetCaptureVolumeThread, this, 0, NULL);
|
| + if (_hSetCaptureVolumeThread == NULL) {
|
| + LOG(LS_ERROR) << " failed to create the volume setter thread";
|
| + return InitStatus::OTHER_ERROR;
|
| + }
|
|
|
| - SetThreadPriority(_hSetCaptureVolumeThread, THREAD_PRIORITY_NORMAL);
|
| + SetThreadPriority(_hSetCaptureVolumeThread, THREAD_PRIORITY_NORMAL);
|
|
|
| - _initialized = true;
|
| + _initialized = true;
|
|
|
| - return 0;
|
| + return InitStatus::OK;
|
| }
|
|
|
| // ----------------------------------------------------------------------------
|
|
|