blob: 0a2347d5bad1a243f657c75b98ad8ea041e0c0a9 [file] [log] [blame]
/*
* Copyright (c) 2013 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.
*/
// This utility will portably force the volume of the default microphone to max.
#include <stdio.h>
#include "webrtc/modules/audio_device/include/audio_device.h"
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;
}
// 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;
}
if (adm->SetMicrophoneVolume(max_vol) != 0) {
fprintf(stderr, "Failed to set mic volume.\n");
return 1;
}
return 0;
}