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

Unified Diff: webrtc/voice_engine/voe_hardware_impl.cc

Issue 2753753004: Remove VoEHardware interface. (Closed)
Patch Set: rebase Created 3 years, 9 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 | « webrtc/voice_engine/voe_hardware_impl.h ('k') | webrtc/voice_engine/voice_engine_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/voice_engine/voe_hardware_impl.cc
diff --git a/webrtc/voice_engine/voe_hardware_impl.cc b/webrtc/voice_engine/voe_hardware_impl.cc
deleted file mode 100644
index db47c730b69f0572330827f3036c78ccc9bd06df..0000000000000000000000000000000000000000
--- a/webrtc/voice_engine/voe_hardware_impl.cc
+++ /dev/null
@@ -1,502 +0,0 @@
-/*
- * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "webrtc/voice_engine/voe_hardware_impl.h"
-
-#include <assert.h>
-
-#include "webrtc/system_wrappers/include/trace.h"
-#include "webrtc/voice_engine/include/voe_errors.h"
-#include "webrtc/voice_engine/voice_engine_impl.h"
-
-namespace webrtc {
-
-VoEHardware* VoEHardware::GetInterface(VoiceEngine* voiceEngine) {
- if (NULL == voiceEngine) {
- return NULL;
- }
- VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
- s->AddRef();
- return s;
-}
-
-VoEHardwareImpl::VoEHardwareImpl(voe::SharedData* shared) : _shared(shared) {
- WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "VoEHardwareImpl() - ctor");
-}
-
-VoEHardwareImpl::~VoEHardwareImpl() {
- WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "~VoEHardwareImpl() - dtor");
-}
-
-int VoEHardwareImpl::SetAudioDeviceLayer(AudioLayers audioLayer) {
- WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "SetAudioDeviceLayer(audioLayer=%d)", audioLayer);
-
- // Don't allow a change if VoE is initialized
- if (_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_ALREADY_INITED, kTraceError);
- return -1;
- }
-
- // Map to AudioDeviceModule::AudioLayer
- AudioDeviceModule::AudioLayer wantedLayer(
- AudioDeviceModule::kPlatformDefaultAudio);
- switch (audioLayer) {
- case kAudioPlatformDefault:
- // already set above
- break;
- case kAudioWindowsCore:
- wantedLayer = AudioDeviceModule::kWindowsCoreAudio;
- break;
- case kAudioLinuxAlsa:
- wantedLayer = AudioDeviceModule::kLinuxAlsaAudio;
- break;
- case kAudioLinuxPulse:
- wantedLayer = AudioDeviceModule::kLinuxPulseAudio;
- break;
- }
-
- // Save the audio device layer for Init()
- _shared->set_audio_device_layer(wantedLayer);
-
- return 0;
-}
-
-int VoEHardwareImpl::GetAudioDeviceLayer(AudioLayers& audioLayer) {
- // Can always be called regardless of VoE state
-
- AudioDeviceModule::AudioLayer activeLayer(
- AudioDeviceModule::kPlatformDefaultAudio);
-
- if (_shared->audio_device()) {
- // Get active audio layer from ADM
- if (_shared->audio_device()->ActiveAudioLayer(&activeLayer) != 0) {
- _shared->SetLastError(VE_UNDEFINED_SC_ERR, kTraceError,
- " Audio Device error");
- return -1;
- }
- } else {
- // Return VoE's internal layer setting
- activeLayer = _shared->audio_device_layer();
- }
-
- // Map to AudioLayers
- switch (activeLayer) {
- case AudioDeviceModule::kPlatformDefaultAudio:
- audioLayer = kAudioPlatformDefault;
- break;
- case AudioDeviceModule::kWindowsCoreAudio:
- audioLayer = kAudioWindowsCore;
- break;
- case AudioDeviceModule::kLinuxAlsaAudio:
- audioLayer = kAudioLinuxAlsa;
- break;
- case AudioDeviceModule::kLinuxPulseAudio:
- audioLayer = kAudioLinuxPulse;
- break;
- default:
- _shared->SetLastError(VE_UNDEFINED_SC_ERR, kTraceError,
- " unknown audio layer");
- }
-
- return 0;
-}
-int VoEHardwareImpl::GetNumOfRecordingDevices(int& devices) {
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return -1;
- }
-
- devices = static_cast<int>(_shared->audio_device()->RecordingDevices());
-
- return 0;
-}
-
-int VoEHardwareImpl::GetNumOfPlayoutDevices(int& devices) {
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return -1;
- }
-
- devices = static_cast<int>(_shared->audio_device()->PlayoutDevices());
-
- return 0;
-}
-
-int VoEHardwareImpl::GetRecordingDeviceName(int index,
- char strNameUTF8[128],
- char strGuidUTF8[128]) {
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return -1;
- }
- if (strNameUTF8 == NULL) {
- _shared->SetLastError(VE_INVALID_ARGUMENT, kTraceError,
- "GetRecordingDeviceName() invalid argument");
- return -1;
- }
-
- // Note that strGuidUTF8 is allowed to be NULL
-
- // Init len variable to length of supplied vectors
- const uint16_t strLen = 128;
-
- // Check if length has been changed in module
- static_assert(strLen == kAdmMaxDeviceNameSize, "");
- static_assert(strLen == kAdmMaxGuidSize, "");
-
- char name[strLen];
- char guid[strLen];
-
- // Get names from module
- if (_shared->audio_device()->RecordingDeviceName(index, name, guid) != 0) {
- _shared->SetLastError(VE_CANNOT_RETRIEVE_DEVICE_NAME, kTraceError,
- "GetRecordingDeviceName() failed to get device name");
- return -1;
- }
-
- // Copy to vectors supplied by user
- strncpy(strNameUTF8, name, strLen);
-
- if (strGuidUTF8 != NULL) {
- strncpy(strGuidUTF8, guid, strLen);
- }
-
- return 0;
-}
-
-int VoEHardwareImpl::GetPlayoutDeviceName(int index,
- char strNameUTF8[128],
- char strGuidUTF8[128]) {
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return -1;
- }
- if (strNameUTF8 == NULL) {
- _shared->SetLastError(VE_INVALID_ARGUMENT, kTraceError,
- "GetPlayoutDeviceName() invalid argument");
- return -1;
- }
-
- // Note that strGuidUTF8 is allowed to be NULL
-
- // Init len variable to length of supplied vectors
- const uint16_t strLen = 128;
-
- // Check if length has been changed in module
- static_assert(strLen == kAdmMaxDeviceNameSize, "");
- static_assert(strLen == kAdmMaxGuidSize, "");
-
- char name[strLen];
- char guid[strLen];
-
- // Get names from module
- if (_shared->audio_device()->PlayoutDeviceName(index, name, guid) != 0) {
- _shared->SetLastError(VE_CANNOT_RETRIEVE_DEVICE_NAME, kTraceError,
- "GetPlayoutDeviceName() failed to get device name");
- return -1;
- }
-
- // Copy to vectors supplied by user
- strncpy(strNameUTF8, name, strLen);
-
- if (strGuidUTF8 != NULL) {
- strncpy(strGuidUTF8, guid, strLen);
- }
-
- return 0;
-}
-
-int VoEHardwareImpl::SetRecordingDevice(int index,
- StereoChannel recordingChannel) {
- WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "SetRecordingDevice(index=%d, recordingChannel=%d)", index,
- (int)recordingChannel);
- rtc::CritScope cs(_shared->crit_sec());
-
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return -1;
- }
-
- bool isRecording(false);
-
- // Store state about activated recording to be able to restore it after the
- // recording device has been modified.
- if (_shared->audio_device()->Recording()) {
- WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "SetRecordingDevice() device is modified while recording"
- " is active...");
- isRecording = true;
- if (_shared->audio_device()->StopRecording() == -1) {
- _shared->SetLastError(VE_AUDIO_DEVICE_MODULE_ERROR, kTraceError,
- "SetRecordingDevice() unable to stop recording");
- return -1;
- }
- }
-
- // We let the module do the index sanity
-
- // Set recording channel
- AudioDeviceModule::ChannelType recCh = AudioDeviceModule::kChannelBoth;
- switch (recordingChannel) {
- case kStereoLeft:
- recCh = AudioDeviceModule::kChannelLeft;
- break;
- case kStereoRight:
- recCh = AudioDeviceModule::kChannelRight;
- break;
- case kStereoBoth:
- // default setting kChannelBoth (<=> mono)
- break;
- }
-
- if (_shared->audio_device()->SetRecordingChannel(recCh) != 0) {
- _shared->SetLastError(
- VE_AUDIO_DEVICE_MODULE_ERROR, kTraceWarning,
- "SetRecordingChannel() unable to set the recording channel");
- }
-
- // Map indices to unsigned since underlying functions need that
- uint16_t indexU = static_cast<uint16_t>(index);
-
- int32_t res(0);
-
- if (index == -1) {
- res = _shared->audio_device()->SetRecordingDevice(
- AudioDeviceModule::kDefaultCommunicationDevice);
- } else if (index == -2) {
- res = _shared->audio_device()->SetRecordingDevice(
- AudioDeviceModule::kDefaultDevice);
- } else {
- res = _shared->audio_device()->SetRecordingDevice(indexU);
- }
-
- if (res != 0) {
- _shared->SetLastError(
- VE_AUDIO_DEVICE_MODULE_ERROR, kTraceError,
- "SetRecordingDevice() unable to set the recording device");
- return -1;
- }
-
- // Init microphone, so user can do volume settings etc
- if (_shared->audio_device()->InitMicrophone() == -1) {
- _shared->SetLastError(VE_CANNOT_ACCESS_MIC_VOL, kTraceWarning,
- "SetRecordingDevice() cannot access microphone");
- }
-
- // Set number of channels
- bool available = false;
- if (_shared->audio_device()->StereoRecordingIsAvailable(&available) != 0) {
- _shared->SetLastError(
- VE_SOUNDCARD_ERROR, kTraceWarning,
- "StereoRecordingIsAvailable() failed to query stereo recording");
- }
-
- if (_shared->audio_device()->SetStereoRecording(available) != 0) {
- _shared->SetLastError(
- VE_SOUNDCARD_ERROR, kTraceWarning,
- "SetRecordingDevice() failed to set mono recording mode");
- }
-
- // Restore recording if it was enabled already when calling this function.
- if (isRecording) {
- WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "SetRecordingDevice() recording is now being restored...");
- if (_shared->audio_device()->InitRecording() != 0) {
- WEBRTC_TRACE(kTraceError, kTraceVoice,
- VoEId(_shared->instance_id(), -1),
- "SetRecordingDevice() failed to initialize recording");
- return -1;
- }
- if (_shared->audio_device()->StartRecording() != 0) {
- WEBRTC_TRACE(kTraceError, kTraceVoice,
- VoEId(_shared->instance_id(), -1),
- "SetRecordingDevice() failed to start recording");
- return -1;
- }
- }
-
- return 0;
-}
-
-int VoEHardwareImpl::SetPlayoutDevice(int index) {
- WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "SetPlayoutDevice(index=%d)", index);
- rtc::CritScope cs(_shared->crit_sec());
-
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return -1;
- }
-
- bool isPlaying(false);
-
- // Store state about activated playout to be able to restore it after the
- // playout device has been modified.
- if (_shared->audio_device()->Playing()) {
- WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "SetPlayoutDevice() device is modified while playout is "
- "active...");
- isPlaying = true;
- if (_shared->audio_device()->StopPlayout() == -1) {
- _shared->SetLastError(VE_AUDIO_DEVICE_MODULE_ERROR, kTraceError,
- "SetPlayoutDevice() unable to stop playout");
- return -1;
- }
- }
-
- // We let the module do the index sanity
-
- // Map indices to unsigned since underlying functions need that
- uint16_t indexU = static_cast<uint16_t>(index);
-
- int32_t res(0);
-
- if (index == -1) {
- res = _shared->audio_device()->SetPlayoutDevice(
- AudioDeviceModule::kDefaultCommunicationDevice);
- } else if (index == -2) {
- res = _shared->audio_device()->SetPlayoutDevice(
- AudioDeviceModule::kDefaultDevice);
- } else {
- res = _shared->audio_device()->SetPlayoutDevice(indexU);
- }
-
- if (res != 0) {
- _shared->SetLastError(
- VE_SOUNDCARD_ERROR, kTraceError,
- "SetPlayoutDevice() unable to set the playout device");
- return -1;
- }
-
- // Init speaker, so user can do volume settings etc
- if (_shared->audio_device()->InitSpeaker() == -1) {
- _shared->SetLastError(VE_CANNOT_ACCESS_SPEAKER_VOL, kTraceWarning,
- "SetPlayoutDevice() cannot access speaker");
- }
-
- // Set number of channels
- bool available = false;
- _shared->audio_device()->StereoPlayoutIsAvailable(&available);
- if (_shared->audio_device()->SetStereoPlayout(available) != 0) {
- _shared->SetLastError(
- VE_SOUNDCARD_ERROR, kTraceWarning,
- "SetPlayoutDevice() failed to set stereo playout mode");
- }
-
- // Restore playout if it was enabled already when calling this function.
- if (isPlaying) {
- WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "SetPlayoutDevice() playout is now being restored...");
- if (_shared->audio_device()->InitPlayout() != 0) {
- WEBRTC_TRACE(kTraceError, kTraceVoice,
- VoEId(_shared->instance_id(), -1),
- "SetPlayoutDevice() failed to initialize playout");
- return -1;
- }
- if (_shared->audio_device()->StartPlayout() != 0) {
- WEBRTC_TRACE(kTraceError, kTraceVoice,
- VoEId(_shared->instance_id(), -1),
- "SetPlayoutDevice() failed to start playout");
- return -1;
- }
- }
-
- return 0;
-}
-
-int VoEHardwareImpl::SetRecordingSampleRate(unsigned int samples_per_sec) {
- WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "%s", __FUNCTION__);
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return false;
- }
- return _shared->audio_device()->SetRecordingSampleRate(samples_per_sec);
-}
-
-int VoEHardwareImpl::RecordingSampleRate(unsigned int* samples_per_sec) const {
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return false;
- }
- return _shared->audio_device()->RecordingSampleRate(samples_per_sec);
-}
-
-int VoEHardwareImpl::SetPlayoutSampleRate(unsigned int samples_per_sec) {
- WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "%s", __FUNCTION__);
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return false;
- }
- return _shared->audio_device()->SetPlayoutSampleRate(samples_per_sec);
-}
-
-int VoEHardwareImpl::PlayoutSampleRate(unsigned int* samples_per_sec) const {
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return false;
- }
- return _shared->audio_device()->PlayoutSampleRate(samples_per_sec);
-}
-
-bool VoEHardwareImpl::BuiltInAECIsAvailable() const {
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return false;
- }
- return _shared->audio_device()->BuiltInAECIsAvailable();
-}
-
-int VoEHardwareImpl::EnableBuiltInAEC(bool enable) {
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return -1;
- }
- return _shared->audio_device()->EnableBuiltInAEC(enable);
-}
-
-bool VoEHardwareImpl::BuiltInAGCIsAvailable() const {
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return false;
- }
- return _shared->audio_device()->BuiltInAGCIsAvailable();
-}
-
-int VoEHardwareImpl::EnableBuiltInAGC(bool enable) {
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return -1;
- }
- return _shared->audio_device()->EnableBuiltInAGC(enable);
-}
-
-bool VoEHardwareImpl::BuiltInNSIsAvailable() const {
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return false;
- }
- return _shared->audio_device()->BuiltInNSIsAvailable();
-}
-
-int VoEHardwareImpl::EnableBuiltInNS(bool enable) {
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return -1;
- }
- return _shared->audio_device()->EnableBuiltInNS(enable);
-}
-
-} // namespace webrtc
« no previous file with comments | « webrtc/voice_engine/voe_hardware_impl.h ('k') | webrtc/voice_engine/voice_engine_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698