Don't use VoE legacy APIs in force_mic_volume_max tool.

BUG=webrtc:4690

Committed: https://crrev.com/ae9f2bdcef7f3a338ece6f57744c8c8f74d15483
Review-Url: https://codereview.webrtc.org/2268183007
Cr-Original-Commit-Position: refs/heads/master@{#14135}
Cr-Commit-Position: refs/heads/master@{#14169}
This commit is contained in:
solenberg 2016-09-09 11:04:53 -07:00 committed by Commit bot
parent fac0ff022b
commit fc433e6546
4 changed files with 52 additions and 36 deletions

View File

@ -117,22 +117,25 @@ rtc_executable("frame_editor") {
]
}
rtc_executable("force_mic_volume_max") {
sources = [
"force_mic_volume_max/force_mic_volume_max.cc",
]
# It doesn't make sense to build this tool without the ADM enabled.
if (rtc_include_internal_audio_device) {
rtc_executable("force_mic_volume_max") {
sources = [
"force_mic_volume_max/force_mic_volume_max.cc",
]
if (is_clang) {
# Suppress warnings from the Chromium Clang plugin.
# See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
if (is_clang) {
# Suppress warnings from the Chromium Clang plugin.
# See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
deps = [
"../modules/audio_device:audio_device",
"../system_wrappers:system_wrappers_default",
"//build/win:default_exe_manifest",
]
}
deps = [
"../system_wrappers:system_wrappers_default",
"../voice_engine",
"//build/win:default_exe_manifest",
]
}
if (rtc_enable_protobuf) {

View File

@ -2,6 +2,7 @@ include_rules = [
"+webrtc/base",
"+webrtc/call",
"+webrtc/common_video",
"+webrtc/modules/audio_device",
"+webrtc/modules/audio_processing",
"+webrtc/modules/congestion_controller",
"+webrtc/modules/rtp_rtcp",

View File

@ -12,33 +12,45 @@
#include <stdio.h>
#include "webrtc/test/channel_transport/channel_transport.h"
#include "webrtc/voice_engine/include/voe_audio_processing.h"
#include "webrtc/voice_engine/include/voe_base.h"
#include "webrtc/voice_engine/include/voe_volume_control.h"
#include "webrtc/modules/audio_device/include/audio_device.h"
int main(int argc, char** argv) {
webrtc::VoiceEngine* voe = webrtc::VoiceEngine::Create();
if (voe == NULL) {
fprintf(stderr, "Failed to initialize voice engine.\n");
using webrtc::AudioDeviceModule;
#if defined(_WIN32)
#define DEFAULT_INPUT_DEVICE (AudioDeviceModule::kDefaultCommunicationDevice)
#else
#define DEFAULT_INPUT_DEVICE (0)
#endif
int main(int /*argc*/, char** /*argv*/) {
// Create and initialize the ADM.
rtc::scoped_refptr<AudioDeviceModule> adm(
AudioDeviceModule::Create(1, AudioDeviceModule::kPlatformDefaultAudio));
if (!adm.get()) {
fprintf(stderr, "Failed to create Audio Device Module.\n");
return 1;
}
if (adm->Init() != 0) {
fprintf(stderr, "Failed to initialize Audio Device Module.\n");
return 1;
}
if (adm->SetRecordingDevice(DEFAULT_INPUT_DEVICE) != 0) {
fprintf(stderr, "Failed to set the default input device.\n");
return 1;
}
if (adm->InitMicrophone() != 0) {
fprintf(stderr, "Failed to to initialize the microphone.\n");
return 1;
}
webrtc::VoEBase* base = webrtc::VoEBase::GetInterface(voe);
webrtc::VoEVolumeControl* volume_control =
webrtc::VoEVolumeControl::GetInterface(voe);
if (base->Init() != 0) {
fprintf(stderr, "Failed to initialize voice engine base.\n");
// Set mic volume to max.
uint32_t max_vol = 0;
if (adm->MaxMicrophoneVolume(&max_vol) != 0) {
fprintf(stderr, "Failed to get max volume.\n");
return 1;
}
// Set to 0 first in case the mic is above 100%.
if (volume_control->SetMicVolume(0) != 0) {
fprintf(stderr, "Failed set volume to 0.\n");
return 1;
}
if (volume_control->SetMicVolume(255) != 0) {
fprintf(stderr, "Failed set volume to 255.\n");
if (adm->SetMicrophoneVolume(max_vol) != 0) {
fprintf(stderr, "Failed to set mic volume.\n");
return 1;
}

View File

@ -90,7 +90,7 @@
'target_name': 'force_mic_volume_max',
'type': 'executable',
'dependencies': [
'<(webrtc_root)/voice_engine/voice_engine.gyp:voice_engine',
'<(webrtc_root)/modules/modules.gyp:audio_device',
'<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers_default',
],
'sources': [