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 7874575e7ce166259801f1aa34bfe8f603d9ff9d..f26c1b2a0d5c0601e37e122889fda5cebd81e367 100644 |
--- a/webrtc/modules/audio_device/win/audio_device_wave_win.cc |
+++ b/webrtc/modules/audio_device/win/audio_device_wave_win.cc |
@@ -45,85 +45,83 @@ namespace webrtc { |
// AudioDeviceWindowsWave - ctor |
// ---------------------------------------------------------------------------- |
-AudioDeviceWindowsWave::AudioDeviceWindowsWave(const int32_t id) : |
- _ptrAudioBuffer(NULL), |
- _critSect(*CriticalSectionWrapper::CreateCriticalSection()), |
- _timeEvent(*EventTimerWrapper::Create()), |
- _recStartEvent(*EventWrapper::Create()), |
- _playStartEvent(*EventWrapper::Create()), |
- _hGetCaptureVolumeThread(NULL), |
- _hShutdownGetVolumeEvent(NULL), |
- _hSetCaptureVolumeThread(NULL), |
- _hShutdownSetVolumeEvent(NULL), |
- _hSetCaptureVolumeEvent(NULL), |
- _critSectCb(*CriticalSectionWrapper::CreateCriticalSection()), |
- _id(id), |
- _mixerManager(id), |
- _usingInputDeviceIndex(false), |
- _usingOutputDeviceIndex(false), |
- _inputDevice(AudioDeviceModule::kDefaultDevice), |
- _outputDevice(AudioDeviceModule::kDefaultDevice), |
- _inputDeviceIndex(0), |
- _outputDeviceIndex(0), |
- _inputDeviceIsSpecified(false), |
- _outputDeviceIsSpecified(false), |
- _initialized(false), |
- _recIsInitialized(false), |
- _playIsInitialized(false), |
- _recording(false), |
- _playing(false), |
- _startRec(false), |
- _stopRec(false), |
- _startPlay(false), |
- _stopPlay(false), |
- _AGC(false), |
- _hWaveIn(NULL), |
- _hWaveOut(NULL), |
- _recChannels(N_REC_CHANNELS), |
- _playChannels(N_PLAY_CHANNELS), |
- _recBufCount(0), |
- _recPutBackDelay(0), |
- _recDelayCount(0), |
- _playBufCount(0), |
- _prevPlayTime(0), |
- _prevRecTime(0), |
- _prevTimerCheckTime(0), |
- _timesdwBytes(0), |
- _timerFaults(0), |
- _timerRestartAttempts(0), |
- _no_of_msecleft_warnings(0), |
- _MAX_minBuffer(65), |
- _useHeader(0), |
- _dTcheckPlayBufDelay(10), |
- _playBufDelay(80), |
- _playBufDelayFixed(80), |
- _minPlayBufDelay(20), |
- _avgCPULoad(0), |
- _sndCardPlayDelay(0), |
- _sndCardRecDelay(0), |
- _plSampOld(0), |
- _rcSampOld(0), |
- _playBufType(AudioDeviceModule::kAdaptiveBufferSize), |
- _recordedBytes(0), |
- _playWarning(0), |
- _playError(0), |
- _recWarning(0), |
- _recError(0), |
- _newMicLevel(0), |
- _minMicVolume(0), |
- _maxMicVolume(0) |
-{ |
- WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, id, "%s created", __FUNCTION__); |
- |
- // Initialize value, set to 0 if it fails |
- if (!QueryPerformanceFrequency(&_perfFreq)) |
- { |
- _perfFreq.QuadPart = 0; |
- } |
- |
- _hShutdownGetVolumeEvent = CreateEvent(NULL, FALSE, FALSE, NULL); |
- _hShutdownSetVolumeEvent = CreateEvent(NULL, FALSE, FALSE, NULL); |
- _hSetCaptureVolumeEvent = CreateEvent(NULL, FALSE, FALSE, NULL); |
+AudioDeviceWindowsWave::AudioDeviceWindowsWave(const int32_t id) |
+ : _ptrAudioBuffer(nullptr), |
+ _critSect(*CriticalSectionWrapper::CreateCriticalSection()), |
+ _timeEvent(*EventTimerWrapper::Create()), |
+ _recStartEvent(*EventWrapper::Create()), |
+ _playStartEvent(*EventWrapper::Create()), |
+ _hGetCaptureVolumeThread(nullptr), |
+ _hShutdownGetVolumeEvent(nullptr), |
+ _hSetCaptureVolumeThread(nullptr), |
+ _hShutdownSetVolumeEvent(nullptr), |
+ _hSetCaptureVolumeEvent(nullptr), |
+ _critSectCb(*CriticalSectionWrapper::CreateCriticalSection()), |
+ _id(id), |
+ _mixerManager(id), |
+ _usingInputDeviceIndex(false), |
+ _usingOutputDeviceIndex(false), |
+ _inputDevice(AudioDeviceModule::kDefaultDevice), |
+ _outputDevice(AudioDeviceModule::kDefaultDevice), |
+ _inputDeviceIndex(0), |
+ _outputDeviceIndex(0), |
+ _inputDeviceIsSpecified(false), |
+ _outputDeviceIsSpecified(false), |
+ _initialized(false), |
+ _recIsInitialized(false), |
+ _playIsInitialized(false), |
+ _recording(false), |
+ _playing(false), |
+ _startRec(false), |
+ _stopRec(false), |
+ _startPlay(false), |
+ _stopPlay(false), |
+ _AGC(false), |
+ _hWaveIn(nullptr), |
+ _hWaveOut(nullptr), |
+ _recChannels(N_REC_CHANNELS), |
+ _playChannels(N_PLAY_CHANNELS), |
+ _recBufCount(0), |
+ _recPutBackDelay(0), |
+ _recDelayCount(0), |
+ _playBufCount(0), |
+ _prevPlayTime(0), |
+ _prevRecTime(0), |
+ _prevTimerCheckTime(0), |
+ _timesdwBytes(0), |
+ _timerFaults(0), |
+ _timerRestartAttempts(0), |
+ _no_of_msecleft_warnings(0), |
+ _MAX_minBuffer(65), |
+ _useHeader(0), |
+ _dTcheckPlayBufDelay(10), |
+ _playBufDelay(80), |
+ _playBufDelayFixed(80), |
+ _minPlayBufDelay(20), |
+ _avgCPULoad(0), |
+ _sndCardPlayDelay(0), |
+ _sndCardRecDelay(0), |
+ _plSampOld(0), |
+ _rcSampOld(0), |
+ _playBufType(AudioDeviceModule::kAdaptiveBufferSize), |
+ _recordedBytes(0), |
+ _playWarning(0), |
+ _playError(0), |
+ _recWarning(0), |
+ _recError(0), |
+ _newMicLevel(0), |
+ _minMicVolume(0), |
+ _maxMicVolume(0) { |
+ WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, id, "%s created", __FUNCTION__); |
+ |
+ // Initialize value, set to 0 if it fails |
+ if (!QueryPerformanceFrequency(&_perfFreq)) { |
+ _perfFreq.QuadPart = 0; |
+ } |
+ |
+ _hShutdownGetVolumeEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); |
+ _hShutdownSetVolumeEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); |
+ _hSetCaptureVolumeEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); |
} |
// ---------------------------------------------------------------------------- |
@@ -142,22 +140,19 @@ AudioDeviceWindowsWave::~AudioDeviceWindowsWave() |
delete &_critSect; |
delete &_critSectCb; |
- if (NULL != _hShutdownGetVolumeEvent) |
- { |
- CloseHandle(_hShutdownGetVolumeEvent); |
- _hShutdownGetVolumeEvent = NULL; |
+ if (nullptr != _hShutdownGetVolumeEvent) { |
+ CloseHandle(_hShutdownGetVolumeEvent); |
+ _hShutdownGetVolumeEvent = nullptr; |
} |
- if (NULL != _hShutdownSetVolumeEvent) |
- { |
- CloseHandle(_hShutdownSetVolumeEvent); |
- _hShutdownSetVolumeEvent = NULL; |
+ if (nullptr != _hShutdownSetVolumeEvent) { |
+ CloseHandle(_hShutdownSetVolumeEvent); |
+ _hShutdownSetVolumeEvent = nullptr; |
} |
- if (NULL != _hSetCaptureVolumeEvent) |
- { |
- CloseHandle(_hSetCaptureVolumeEvent); |
- _hSetCaptureVolumeEvent = NULL; |
+ if (nullptr != _hSetCaptureVolumeEvent) { |
+ CloseHandle(_hSetCaptureVolumeEvent); |
+ _hSetCaptureVolumeEvent = nullptr; |
} |
} |
@@ -240,8 +235,8 @@ AudioDeviceGeneric::InitStatus AudioDeviceWindowsWave::Init() { |
"periodic timer (dT=%d) is now active", TIMER_PERIOD_MS); |
_hGetCaptureVolumeThread = |
- CreateThread(NULL, 0, GetCaptureVolumeThread, this, 0, NULL); |
- if (_hGetCaptureVolumeThread == NULL) { |
+ CreateThread(nullptr, 0, GetCaptureVolumeThread, this, 0, nullptr); |
+ if (_hGetCaptureVolumeThread == nullptr) { |
LOG(LS_ERROR) << " failed to create the volume getter thread"; |
return InitStatus::OTHER_ERROR; |
} |
@@ -249,8 +244,8 @@ AudioDeviceGeneric::InitStatus AudioDeviceWindowsWave::Init() { |
SetThreadPriority(_hGetCaptureVolumeThread, THREAD_PRIORITY_NORMAL); |
_hSetCaptureVolumeThread = |
- CreateThread(NULL, 0, SetCaptureVolumeThread, this, 0, NULL); |
- if (_hSetCaptureVolumeThread == NULL) { |
+ CreateThread(nullptr, 0, SetCaptureVolumeThread, this, 0, nullptr); |
+ if (_hSetCaptureVolumeThread == nullptr) { |
LOG(LS_ERROR) << " failed to create the volume setter thread"; |
return InitStatus::OTHER_ERROR; |
} |
@@ -303,7 +298,7 @@ int32_t AudioDeviceWindowsWave::Terminate() |
WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, |
" failed to close down volume getter thread"); |
CloseHandle(_hGetCaptureVolumeThread); |
- _hGetCaptureVolumeThread = NULL; |
+ _hGetCaptureVolumeThread = nullptr; |
return -1; |
} |
_critSect.Enter(); |
@@ -319,7 +314,7 @@ int32_t AudioDeviceWindowsWave::Terminate() |
WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, |
" failed to close down volume setter thread"); |
CloseHandle(_hSetCaptureVolumeThread); |
- _hSetCaptureVolumeThread = NULL; |
+ _hSetCaptureVolumeThread = nullptr; |
return -1; |
} |
_critSect.Enter(); |
@@ -327,10 +322,10 @@ int32_t AudioDeviceWindowsWave::Terminate() |
" volume setter thread is now closed"); |
CloseHandle(_hGetCaptureVolumeThread); |
- _hGetCaptureVolumeThread = NULL; |
+ _hGetCaptureVolumeThread = nullptr; |
CloseHandle(_hSetCaptureVolumeThread); |
- _hSetCaptureVolumeThread = NULL; |
+ _hSetCaptureVolumeThread = nullptr; |
_critSect.Leave(); |
@@ -626,9 +621,9 @@ int32_t AudioDeviceWindowsWave::SetWaveOutVolume(uint16_t volumeLeft, uint16_t v |
CriticalSectionScoped lock(&_critSect); |
- if (_hWaveOut == NULL) |
- { |
- WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, "no open playout device exists => using default"); |
+ if (_hWaveOut == nullptr) { |
+ WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, |
+ "no open playout device exists => using default"); |
} |
// To determine whether the device supports volume control on both |
@@ -690,9 +685,9 @@ int32_t AudioDeviceWindowsWave::WaveOutVolume(uint16_t& volumeLeft, uint16_t& vo |
CriticalSectionScoped lock(&_critSect); |
- if (_hWaveOut == NULL) |
- { |
- WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, "no open playout device exists => using default"); |
+ if (_hWaveOut == nullptr) { |
+ WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, |
+ "no open playout device exists => using default"); |
} |
// To determine whether the device supports volume control on both |
@@ -1278,19 +1273,18 @@ int32_t AudioDeviceWindowsWave::PlayoutDeviceName( |
index = 0; |
} |
- if ((index > (nDevices-1)) || (name == NULL)) |
- { |
- return -1; |
+ if ((index > (nDevices - 1)) || (name == nullptr)) { |
+ return -1; |
} |
memset(name, 0, kAdmMaxDeviceNameSize); |
- if (guid != NULL) |
- { |
- memset(guid, 0, kAdmMaxGuidSize); |
+ if (guid != nullptr) { |
+ memset(guid, 0, kAdmMaxGuidSize); |
} |
- WAVEOUTCAPSW caps; // szPname member (product name (NULL terminated) is a WCHAR |
+ WAVEOUTCAPSW |
+ caps; // szPname member (product name (nullptr terminated) is a WCHAR |
MMRESULT res; |
res = waveOutGetDevCapsW(index, &caps, sizeof(WAVEOUTCAPSW)); |
@@ -1299,14 +1293,15 @@ int32_t AudioDeviceWindowsWave::PlayoutDeviceName( |
WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, "waveOutGetDevCapsW() failed (err=%d)", res); |
return -1; |
} |
- if (WideCharToMultiByte(CP_UTF8, 0, caps.szPname, -1, name, kAdmMaxDeviceNameSize, NULL, NULL) == 0) |
- { |
- WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, "WideCharToMultiByte(CP_UTF8) failed with error code %d - 1", GetLastError()); |
+ if (WideCharToMultiByte(CP_UTF8, 0, caps.szPname, -1, name, |
+ kAdmMaxDeviceNameSize, nullptr, nullptr) == 0) { |
+ WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, |
+ "WideCharToMultiByte(CP_UTF8) failed with error code %d - 1", |
+ GetLastError()); |
} |
- if (guid == NULL) |
- { |
- return 0; |
+ if (guid == nullptr) { |
+ return 0; |
} |
// It is possible to get the unique endpoint ID string using the Wave API. |
@@ -1317,7 +1312,7 @@ int32_t AudioDeviceWindowsWave::PlayoutDeviceName( |
// Get the size (including the terminating null) of the endpoint ID string of the waveOut device. |
// Windows Vista supports the DRV_QUERYFUNCTIONINSTANCEIDSIZE and DRV_QUERYFUNCTIONINSTANCEID messages. |
res = waveOutMessage((HWAVEOUT)IntToPtr(index), |
- DRV_QUERYFUNCTIONINSTANCEIDSIZE, |
+ DRV_QUERYFUNCTIONINSTANCEIDSIZE, |
(DWORD_PTR)&cbEndpointId, NULL); |
if (res != MMSYSERR_NOERROR) |
{ |
@@ -1325,16 +1320,19 @@ int32_t AudioDeviceWindowsWave::PlayoutDeviceName( |
WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "waveOutMessage(DRV_QUERYFUNCTIONINSTANCEIDSIZE) failed (err=%d)", res); |
TraceWaveOutError(res); |
// Best we can do is to copy the friendly name and use it as guid |
- if (WideCharToMultiByte(CP_UTF8, 0, caps.szPname, -1, guid, kAdmMaxGuidSize, NULL, NULL) == 0) |
- { |
- WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, "WideCharToMultiByte(CP_UTF8) failed with error code %d - 2", GetLastError()); |
+ if (WideCharToMultiByte(CP_UTF8, 0, caps.szPname, -1, guid, |
+ kAdmMaxGuidSize, nullptr, nullptr) == 0) { |
+ WEBRTC_TRACE( |
+ kTraceError, kTraceAudioDevice, _id, |
+ "WideCharToMultiByte(CP_UTF8) failed with error code %d - 2", |
+ GetLastError()); |
} |
return 0; |
} |
// waveOutMessage(DRV_QUERYFUNCTIONINSTANCEIDSIZE) worked => we are on a Vista or Windows 7 device |
- WCHAR *pstrEndpointId = NULL; |
+ WCHAR* pstrEndpointId = nullptr; |
pstrEndpointId = (WCHAR*)CoTaskMemAlloc(cbEndpointId); |
// Get the endpoint ID string for this waveOut device. |
@@ -1347,17 +1345,22 @@ int32_t AudioDeviceWindowsWave::PlayoutDeviceName( |
WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "waveOutMessage(DRV_QUERYFUNCTIONINSTANCEID) failed (err=%d)", res); |
TraceWaveOutError(res); |
// Best we can do is to copy the friendly name and use it as guid |
- if (WideCharToMultiByte(CP_UTF8, 0, caps.szPname, -1, guid, kAdmMaxGuidSize, NULL, NULL) == 0) |
- { |
- WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, "WideCharToMultiByte(CP_UTF8) failed with error code %d - 3", GetLastError()); |
+ if (WideCharToMultiByte(CP_UTF8, 0, caps.szPname, -1, guid, |
+ kAdmMaxGuidSize, nullptr, nullptr) == 0) { |
+ WEBRTC_TRACE( |
+ kTraceError, kTraceAudioDevice, _id, |
+ "WideCharToMultiByte(CP_UTF8) failed with error code %d - 3", |
+ GetLastError()); |
} |
CoTaskMemFree(pstrEndpointId); |
return 0; |
} |
- if (WideCharToMultiByte(CP_UTF8, 0, pstrEndpointId, -1, guid, kAdmMaxGuidSize, NULL, NULL) == 0) |
- { |
- WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, "WideCharToMultiByte(CP_UTF8) failed with error code %d - 4", GetLastError()); |
+ if (WideCharToMultiByte(CP_UTF8, 0, pstrEndpointId, -1, guid, |
+ kAdmMaxGuidSize, nullptr, nullptr) == 0) { |
+ WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, |
+ "WideCharToMultiByte(CP_UTF8) failed with error code %d - 4", |
+ GetLastError()); |
} |
CoTaskMemFree(pstrEndpointId); |
@@ -1383,19 +1386,18 @@ int32_t AudioDeviceWindowsWave::RecordingDeviceName( |
index = 0; |
} |
- if ((index > (nDevices-1)) || (name == NULL)) |
- { |
- return -1; |
+ if ((index > (nDevices - 1)) || (name == nullptr)) { |
+ return -1; |
} |
memset(name, 0, kAdmMaxDeviceNameSize); |
- if (guid != NULL) |
- { |
- memset(guid, 0, kAdmMaxGuidSize); |
+ if (guid != nullptr) { |
+ memset(guid, 0, kAdmMaxGuidSize); |
} |
- WAVEINCAPSW caps; // szPname member (product name (NULL terminated) is a WCHAR |
+ WAVEINCAPSW |
+ caps; // szPname member (product name (nullptr terminated) is a WCHAR |
MMRESULT res; |
res = waveInGetDevCapsW(index, &caps, sizeof(WAVEINCAPSW)); |
@@ -1404,14 +1406,15 @@ int32_t AudioDeviceWindowsWave::RecordingDeviceName( |
WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, "waveInGetDevCapsW() failed (err=%d)", res); |
return -1; |
} |
- if (WideCharToMultiByte(CP_UTF8, 0, caps.szPname, -1, name, kAdmMaxDeviceNameSize, NULL, NULL) == 0) |
- { |
- WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, "WideCharToMultiByte(CP_UTF8) failed with error code %d - 1", GetLastError()); |
+ if (WideCharToMultiByte(CP_UTF8, 0, caps.szPname, -1, name, |
+ kAdmMaxDeviceNameSize, nullptr, nullptr) == 0) { |
+ WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, |
+ "WideCharToMultiByte(CP_UTF8) failed with error code %d - 1", |
+ GetLastError()); |
} |
- if (guid == NULL) |
- { |
- return 0; |
+ if (guid == nullptr) { |
+ return 0; |
} |
// It is possible to get the unique endpoint ID string using the Wave API. |
@@ -1421,25 +1424,28 @@ int32_t AudioDeviceWindowsWave::RecordingDeviceName( |
// Get the size (including the terminating null) of the endpoint ID string of the waveOut device. |
// Windows Vista supports the DRV_QUERYFUNCTIONINSTANCEIDSIZE and DRV_QUERYFUNCTIONINSTANCEID messages. |
- res = waveInMessage((HWAVEIN)IntToPtr(index), |
- DRV_QUERYFUNCTIONINSTANCEIDSIZE, |
- (DWORD_PTR)&cbEndpointId, NULL); |
+ res = |
+ waveInMessage((HWAVEIN)IntToPtr(index), DRV_QUERYFUNCTIONINSTANCEIDSIZE, |
+ (DWORD_PTR)&cbEndpointId, NULL); |
if (res != MMSYSERR_NOERROR) |
{ |
// DRV_QUERYFUNCTIONINSTANCEIDSIZE is not supported <=> earlier version of Windows than Vista |
WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "waveInMessage(DRV_QUERYFUNCTIONINSTANCEIDSIZE) failed (err=%d)", res); |
TraceWaveInError(res); |
// Best we can do is to copy the friendly name and use it as guid |
- if (WideCharToMultiByte(CP_UTF8, 0, caps.szPname, -1, guid, kAdmMaxGuidSize, NULL, NULL) == 0) |
- { |
- WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, "WideCharToMultiByte(CP_UTF8) failed with error code %d - 2", GetLastError()); |
+ if (WideCharToMultiByte(CP_UTF8, 0, caps.szPname, -1, guid, |
+ kAdmMaxGuidSize, nullptr, nullptr) == 0) { |
+ WEBRTC_TRACE( |
+ kTraceError, kTraceAudioDevice, _id, |
+ "WideCharToMultiByte(CP_UTF8) failed with error code %d - 2", |
+ GetLastError()); |
} |
return 0; |
} |
// waveOutMessage(DRV_QUERYFUNCTIONINSTANCEIDSIZE) worked => we are on a Vista or Windows 7 device |
- WCHAR *pstrEndpointId = NULL; |
+ WCHAR* pstrEndpointId = nullptr; |
pstrEndpointId = (WCHAR*)CoTaskMemAlloc(cbEndpointId); |
// Get the endpoint ID string for this waveOut device. |
@@ -1452,17 +1458,22 @@ int32_t AudioDeviceWindowsWave::RecordingDeviceName( |
WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "waveInMessage(DRV_QUERYFUNCTIONINSTANCEID) failed (err=%d)", res); |
TraceWaveInError(res); |
// Best we can do is to copy the friendly name and use it as guid |
- if (WideCharToMultiByte(CP_UTF8, 0, caps.szPname, -1, guid, kAdmMaxGuidSize, NULL, NULL) == 0) |
- { |
- WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, "WideCharToMultiByte(CP_UTF8) failed with error code %d - 3", GetLastError()); |
+ if (WideCharToMultiByte(CP_UTF8, 0, caps.szPname, -1, guid, |
+ kAdmMaxGuidSize, nullptr, nullptr) == 0) { |
+ WEBRTC_TRACE( |
+ kTraceError, kTraceAudioDevice, _id, |
+ "WideCharToMultiByte(CP_UTF8) failed with error code %d - 3", |
+ GetLastError()); |
} |
CoTaskMemFree(pstrEndpointId); |
return 0; |
} |
- if (WideCharToMultiByte(CP_UTF8, 0, pstrEndpointId, -1, guid, kAdmMaxGuidSize, NULL, NULL) == 0) |
- { |
- WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, "WideCharToMultiByte(CP_UTF8) failed with error code %d - 4", GetLastError()); |
+ if (WideCharToMultiByte(CP_UTF8, 0, pstrEndpointId, -1, guid, |
+ kAdmMaxGuidSize, nullptr, nullptr) == 0) { |
+ WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, |
+ "WideCharToMultiByte(CP_UTF8) failed with error code %d - 4", |
+ GetLastError()); |
} |
CoTaskMemFree(pstrEndpointId); |
@@ -1615,14 +1626,13 @@ int32_t AudioDeviceWindowsWave::InitPlayout() |
// |
MMRESULT res(MMSYSERR_ERROR); |
- if (_hWaveOut != NULL) |
- { |
- res = waveOutClose(_hWaveOut); |
- if (MMSYSERR_NOERROR != res) |
- { |
- WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, "waveOutClose() failed (err=%d)", res); |
- TraceWaveOutError(res); |
- } |
+ if (_hWaveOut != nullptr) { |
+ res = waveOutClose(_hWaveOut); |
+ if (MMSYSERR_NOERROR != res) { |
+ WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, |
+ "waveOutClose() failed (err=%d)", res); |
+ TraceWaveOutError(res); |
+ } |
} |
// Set the output wave format |
@@ -1639,16 +1649,18 @@ int32_t AudioDeviceWindowsWave::InitPlayout() |
// Open the given waveform-audio output device for playout |
// |
- HWAVEOUT hWaveOut(NULL); |
+ HWAVEOUT hWaveOut(nullptr); |
if (IsUsingOutputDeviceIndex()) |
{ |
// verify settings first |
- res = waveOutOpen(NULL, _outputDeviceIndex, &waveFormat, 0, 0, CALLBACK_NULL | WAVE_FORMAT_QUERY); |
+ res = waveOutOpen(nullptr, _outputDeviceIndex, &waveFormat, 0, 0, |
+ CALLBACK_NULL | WAVE_FORMAT_QUERY); |
if (MMSYSERR_NOERROR == res) |
{ |
// open the given waveform-audio output device for recording |
- res = waveOutOpen(&hWaveOut, _outputDeviceIndex, &waveFormat, 0, 0, CALLBACK_NULL); |
+ res = waveOutOpen(&hWaveOut, _outputDeviceIndex, &waveFormat, 0, 0, |
+ CALLBACK_NULL); |
WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "opening output device corresponding to device ID %u", _outputDeviceIndex); |
} |
} |
@@ -1657,28 +1669,37 @@ int32_t AudioDeviceWindowsWave::InitPlayout() |
if (_outputDevice == AudioDeviceModule::kDefaultCommunicationDevice) |
{ |
// check if it is possible to open the default communication device (supported on Windows 7) |
- res = waveOutOpen(NULL, WAVE_MAPPER, &waveFormat, 0, 0, CALLBACK_NULL | WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE | WAVE_FORMAT_QUERY); |
+ res = waveOutOpen(nullptr, WAVE_MAPPER, &waveFormat, 0, 0, |
+ CALLBACK_NULL | |
+ WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE | |
+ WAVE_FORMAT_QUERY); |
if (MMSYSERR_NOERROR == res) |
{ |
// if so, open the default communication device for real |
- res = waveOutOpen(&hWaveOut, WAVE_MAPPER, &waveFormat, 0, 0, CALLBACK_NULL | WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE); |
+ res = waveOutOpen( |
+ &hWaveOut, WAVE_MAPPER, &waveFormat, 0, 0, |
+ CALLBACK_NULL | WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE); |
WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "opening default communication device"); |
} |
else |
{ |
// use default device since default communication device was not avaliable |
- res = waveOutOpen(&hWaveOut, WAVE_MAPPER, &waveFormat, 0, 0, CALLBACK_NULL); |
+ res = waveOutOpen(&hWaveOut, WAVE_MAPPER, &waveFormat, 0, 0, |
+ CALLBACK_NULL); |
WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "unable to open default communication device => using default instead"); |
} |
} |
else if (_outputDevice == AudioDeviceModule::kDefaultDevice) |
{ |
// open default device since it has been requested |
- res = waveOutOpen(NULL, WAVE_MAPPER, &waveFormat, 0, 0, CALLBACK_NULL | WAVE_FORMAT_QUERY); |
+ res = waveOutOpen(nullptr, WAVE_MAPPER, &waveFormat, 0, 0, |
+ CALLBACK_NULL | WAVE_FORMAT_QUERY); |
if (MMSYSERR_NOERROR == res) |
{ |
- res = waveOutOpen(&hWaveOut, WAVE_MAPPER, &waveFormat, 0, 0, CALLBACK_NULL); |
- WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "opening default output device"); |
+ res = waveOutOpen(&hWaveOut, WAVE_MAPPER, &waveFormat, 0, 0, |
+ CALLBACK_NULL); |
+ WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, |
+ "opening default output device"); |
} |
} |
} |
@@ -1814,14 +1835,13 @@ int32_t AudioDeviceWindowsWave::InitRecording() |
// |
MMRESULT res(MMSYSERR_ERROR); |
- if (_hWaveIn != NULL) |
- { |
- res = waveInClose(_hWaveIn); |
- if (MMSYSERR_NOERROR != res) |
- { |
- WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, "waveInClose() failed (err=%d)", res); |
- TraceWaveInError(res); |
- } |
+ if (_hWaveIn != nullptr) { |
+ res = waveInClose(_hWaveIn); |
+ if (MMSYSERR_NOERROR != res) { |
+ WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, |
+ "waveInClose() failed (err=%d)", res); |
+ TraceWaveInError(res); |
+ } |
} |
// Set the input wave format |
@@ -1838,16 +1858,18 @@ int32_t AudioDeviceWindowsWave::InitRecording() |
// Open the given waveform-audio input device for recording |
// |
- HWAVEIN hWaveIn(NULL); |
+ HWAVEIN hWaveIn(nullptr); |
if (IsUsingInputDeviceIndex()) |
{ |
// verify settings first |
- res = waveInOpen(NULL, _inputDeviceIndex, &waveFormat, 0, 0, CALLBACK_NULL | WAVE_FORMAT_QUERY); |
+ res = waveInOpen(nullptr, _inputDeviceIndex, &waveFormat, 0, 0, |
+ CALLBACK_NULL | WAVE_FORMAT_QUERY); |
if (MMSYSERR_NOERROR == res) |
{ |
// open the given waveform-audio input device for recording |
- res = waveInOpen(&hWaveIn, _inputDeviceIndex, &waveFormat, 0, 0, CALLBACK_NULL); |
+ res = waveInOpen(&hWaveIn, _inputDeviceIndex, &waveFormat, 0, 0, |
+ CALLBACK_NULL); |
WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "opening input device corresponding to device ID %u", _inputDeviceIndex); |
} |
} |
@@ -1856,28 +1878,37 @@ int32_t AudioDeviceWindowsWave::InitRecording() |
if (_inputDevice == AudioDeviceModule::kDefaultCommunicationDevice) |
{ |
// check if it is possible to open the default communication device (supported on Windows 7) |
- res = waveInOpen(NULL, WAVE_MAPPER, &waveFormat, 0, 0, CALLBACK_NULL | WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE | WAVE_FORMAT_QUERY); |
+ res = waveInOpen(nullptr, WAVE_MAPPER, &waveFormat, 0, 0, |
+ CALLBACK_NULL | |
+ WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE | |
+ WAVE_FORMAT_QUERY); |
if (MMSYSERR_NOERROR == res) |
{ |
// if so, open the default communication device for real |
- res = waveInOpen(&hWaveIn, WAVE_MAPPER, &waveFormat, 0, 0, CALLBACK_NULL | WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE); |
+ res = waveInOpen( |
+ &hWaveIn, WAVE_MAPPER, &waveFormat, 0, 0, |
+ CALLBACK_NULL | WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE); |
WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "opening default communication device"); |
} |
else |
{ |
// use default device since default communication device was not avaliable |
- res = waveInOpen(&hWaveIn, WAVE_MAPPER, &waveFormat, 0, 0, CALLBACK_NULL); |
+ res = waveInOpen(&hWaveIn, WAVE_MAPPER, &waveFormat, 0, 0, |
+ CALLBACK_NULL); |
WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "unable to open default communication device => using default instead"); |
} |
} |
else if (_inputDevice == AudioDeviceModule::kDefaultDevice) |
{ |
// open default device since it has been requested |
- res = waveInOpen(NULL, WAVE_MAPPER, &waveFormat, 0, 0, CALLBACK_NULL | WAVE_FORMAT_QUERY); |
+ res = waveInOpen(nullptr, WAVE_MAPPER, &waveFormat, 0, 0, |
+ CALLBACK_NULL | WAVE_FORMAT_QUERY); |
if (MMSYSERR_NOERROR == res) |
{ |
- res = waveInOpen(&hWaveIn, WAVE_MAPPER, &waveFormat, 0, 0, CALLBACK_NULL); |
- WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "opening default input device"); |
+ res = waveInOpen(&hWaveIn, WAVE_MAPPER, &waveFormat, 0, 0, |
+ CALLBACK_NULL); |
+ WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, |
+ "opening default input device"); |
} |
} |
} |
@@ -1981,9 +2012,8 @@ int32_t AudioDeviceWindowsWave::StopRecording() |
return 0; |
} |
- if (_hWaveIn == NULL) |
- { |
- return -1; |
+ if (_hWaveIn == nullptr) { |
+ return -1; |
} |
bool wasRecording = _recording; |
@@ -2041,10 +2071,11 @@ int32_t AudioDeviceWindowsWave::StopRecording() |
TraceWaveInError(res); |
} |
- // Set the wave input handle to NULL |
+ // Set the wave input handle to null |
// |
- _hWaveIn = NULL; |
- WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "_hWaveIn is now set to NULL"); |
+ _hWaveIn = nullptr; |
+ WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, |
+ "_hWaveIn is now set to null"); |
return 0; |
} |
@@ -2132,9 +2163,8 @@ int32_t AudioDeviceWindowsWave::StopPlayout() |
return 0; |
} |
- if (_hWaveOut == NULL) |
- { |
- return -1; |
+ if (_hWaveOut == nullptr) { |
+ return -1; |
} |
_playIsInitialized = false; |
@@ -2185,8 +2215,9 @@ int32_t AudioDeviceWindowsWave::StopPlayout() |
TraceWaveOutError(res); |
} |
- _hWaveOut = NULL; |
- WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "_hWaveOut is now set to NULL"); |
+ _hWaveOut = nullptr; |
+ WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, |
+ "_hWaveOut is now set to null"); |
return 0; |
} |
@@ -2350,10 +2381,10 @@ void AudioDeviceWindowsWave::ClearRecordingError() |
int32_t AudioDeviceWindowsWave::InputSanityCheckAfterUnlockedPeriod() const |
{ |
- if (_hWaveIn == NULL) |
- { |
- WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, "input state has been modified during unlocked period"); |
- return -1; |
+ if (_hWaveIn == nullptr) { |
+ WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, |
+ "input state has been modified during unlocked period"); |
+ return -1; |
} |
return 0; |
} |
@@ -2364,10 +2395,10 @@ int32_t AudioDeviceWindowsWave::InputSanityCheckAfterUnlockedPeriod() const |
int32_t AudioDeviceWindowsWave::OutputSanityCheckAfterUnlockedPeriod() const |
{ |
- if (_hWaveOut == NULL) |
- { |
- WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, "output state has been modified during unlocked period"); |
- return -1; |
+ if (_hWaveOut == nullptr) { |
+ WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, |
+ "output state has been modified during unlocked period"); |
+ return -1; |
} |
return 0; |
} |
@@ -2558,9 +2589,8 @@ int32_t AudioDeviceWindowsWave::PrepareStartPlayout() |
CriticalSectionScoped lock(&_critSect); |
- if (_hWaveOut == NULL) |
- { |
- return -1; |
+ if (_hWaveOut == nullptr) { |
+ return -1; |
} |
// A total of 30ms of data is immediately placed in the SC buffer |
@@ -2595,9 +2625,8 @@ int32_t AudioDeviceWindowsWave::PrepareStartRecording() |
CriticalSectionScoped lock(&_critSect); |
- if (_hWaveIn == NULL) |
- { |
- return -1; |
+ if (_hWaveIn == nullptr) { |
+ return -1; |
} |
_playAcc = 0; |
@@ -3518,9 +3547,8 @@ int AudioDeviceWindowsWave::PlayProc(LONGLONG& consumedTime) |
int32_t AudioDeviceWindowsWave::Write(int8_t* data, uint16_t nSamples) |
{ |
- if (_hWaveOut == NULL) |
- { |
- return -1; |
+ if (_hWaveOut == nullptr) { |
+ return -1; |
} |
if (_playIsInitialized) |