Move ADM Create() method to public interface.

ADMs were previously created by CreateAudioDeviceModule which was
removed in previous refactoring without a replacement added.

BUG=
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1944883002 .

Cr-Commit-Position: refs/heads/master@{#12613}
This commit is contained in:
Peter Boström 2016-05-03 15:51:26 -04:00
parent 9bfa1063d1
commit 4adbbcfe7a
12 changed files with 41 additions and 41 deletions

View File

@ -562,7 +562,7 @@ class AudioDeviceTest : public ::testing::Test {
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDevice(
AudioDeviceModule::AudioLayer audio_layer) {
rtc::scoped_refptr<AudioDeviceModule> module(
AudioDeviceModuleImpl::Create(0, audio_layer));
AudioDeviceModule::Create(0, audio_layer));
return module;
}

View File

@ -156,7 +156,7 @@ class AudioRecordJni {
bool recording_;
// Raw pointer handle provided to us in AttachAudioBuffer(). Owned by the
// AudioDeviceModuleImpl class and called by AudioDeviceModuleImpl::Create().
// AudioDeviceModuleImpl class and called by AudioDeviceModule::Create().
AudioDeviceBuffer* audio_device_buffer_;
};

View File

@ -144,7 +144,7 @@ class AudioTrackJni {
bool playing_;
// Raw pointer handle provided to us in AttachAudioBuffer(). Owned by the
// AudioDeviceModuleImpl class and called by AudioDeviceModuleImpl::Create().
// AudioDeviceModuleImpl class and called by AudioDeviceModule::Create().
// The AudioDeviceBuffer is a member of the AudioDeviceModuleImpl instance
// and therefore outlives this object.
AudioDeviceBuffer* audio_device_buffer_;

View File

@ -132,7 +132,7 @@ class OpenSLESPlayer {
const AudioParameters audio_parameters_;
// Raw pointer handle provided to us in AttachAudioBuffer(). Owned by the
// AudioDeviceModuleImpl class and called by AudioDeviceModuleImpl::Create().
// AudioDeviceModuleImpl class and called by AudioDeviceModule::Create().
AudioDeviceBuffer* audio_device_buffer_;
bool initialized_;

View File

@ -76,12 +76,12 @@ namespace webrtc {
// AudioDeviceModule::Create()
// ----------------------------------------------------------------------------
rtc::scoped_refptr<AudioDeviceModule> AudioDeviceModuleImpl::Create(
rtc::scoped_refptr<AudioDeviceModule> AudioDeviceModule::Create(
const int32_t id,
const AudioLayer audioLayer) {
const AudioLayer audio_layer) {
// Create the generic ref counted (platform independent) implementation.
rtc::scoped_refptr<AudioDeviceModuleImpl> audioDevice(
new rtc::RefCountedObject<AudioDeviceModuleImpl>(id, audioLayer));
new rtc::RefCountedObject<AudioDeviceModuleImpl>(id, audio_layer));
// Ensure that the current platform is supported.
if (audioDevice->CheckPlatform() == -1)

View File

@ -16,7 +16,6 @@
#include <memory>
#include "webrtc/base/checks.h"
#include "webrtc/base/scoped_ref_ptr.h"
#include "webrtc/modules/audio_device/audio_device_buffer.h"
#include "webrtc/modules/audio_device/include/audio_device.h"
@ -48,11 +47,6 @@ class AudioDeviceModuleImpl : public AudioDeviceModule {
int64_t TimeUntilNextProcess() override;
void Process() override;
// Factory methods (resource allocation/deallocation)
static rtc::scoped_refptr<AudioDeviceModule> Create(
const int32_t id,
const AudioLayer audioLayer = kPlatformDefaultAudio);
// Retrieve the currently utilized audio layer
int32_t ActiveAudioLayer(AudioLayer* audioLayer) const override;

View File

@ -11,6 +11,7 @@
#ifndef MODULES_AUDIO_DEVICE_INCLUDE_AUDIO_DEVICE_H_
#define MODULES_AUDIO_DEVICE_INCLUDE_AUDIO_DEVICE_H_
#include "webrtc/base/scoped_ref_ptr.h"
#include "webrtc/modules/audio_device/include/audio_device_defines.h"
#include "webrtc/modules/include/module.h"
@ -51,6 +52,11 @@ class AudioDeviceModule : public RefCountedModule {
};
public:
// Create an ADM.
static rtc::scoped_refptr<AudioDeviceModule> Create(
const int32_t id,
const AudioLayer audio_layer);
// Retrieve the currently utilized audio layer
virtual int32_t ActiveAudioLayer(AudioLayer* audioLayer) const = 0;

View File

@ -217,7 +217,7 @@ class AudioDeviceIOS : public AudioDeviceGeneric,
std::unique_ptr<rtc::AsyncInvoker> async_invoker_;
// Raw pointer handle provided to us in AttachAudioBuffer(). Owned by the
// AudioDeviceModuleImpl class and called by AudioDeviceModuleImpl::Create().
// AudioDeviceModuleImpl class and called by AudioDeviceModule::Create().
// The AudioDeviceBuffer is a member of the AudioDeviceModuleImpl instance
// and therefore outlives this object.
AudioDeviceBuffer* audio_device_buffer_;

View File

@ -537,7 +537,7 @@ class AudioDeviceTest : public ::testing::Test {
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDevice(
AudioDeviceModule::AudioLayer audio_layer) {
rtc::scoped_refptr<AudioDeviceModule> module(
AudioDeviceModuleImpl::Create(0, audio_layer));
AudioDeviceModule::Create(0, audio_layer));
return module;
}

View File

@ -153,75 +153,75 @@ class AudioDeviceAPITest: public testing::Test {
const int32_t kId = 444;
#if defined(_WIN32)
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL);
#if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD)
TEST_LOG("WEBRTC_WINDOWS_CORE_AUDIO_BUILD is defined!\n\n");
// create default implementation (=Core Audio) instance
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
EXPECT_EQ(0, audio_device_.release()->Release());
// create non-default (=Wave Audio) instance
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kWindowsWaveAudio)) != NULL);
EXPECT_EQ(0, audio_device_.release()->Release());
// explicitly specify usage of Core Audio (same as default)
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kWindowsCoreAudio)) != NULL);
#else
TEST_LOG("WEBRTC_WINDOWS_CORE_AUDIO_BUILD is *not* defined!\n");
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kWindowsCoreAudio)) == NULL);
// create default implementation (=Wave Audio) instance
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
EXPECT_EQ(0, audio_device_.release()->Release());
// explicitly specify usage of Wave Audio (same as default)
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kWindowsWaveAudio)) != NULL);
#endif
#endif
#if defined(ANDROID)
// Fails tests
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kWindowsWaveAudio)) == NULL);
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kWindowsCoreAudio)) == NULL);
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL);
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kLinuxPulseAudio)) == NULL);
// Create default implementation instance
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
#elif defined(WEBRTC_LINUX)
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kWindowsWaveAudio)) == NULL);
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kWindowsCoreAudio)) == NULL);
// create default implementation instance
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
EXPECT_EQ(0, audio_device_->Terminate());
EXPECT_EQ(0, audio_device_.release()->Release());
// explicitly specify usage of Pulse Audio (same as default)
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kLinuxPulseAudio)) != NULL);
#endif
#if defined(WEBRTC_MAC)
// Fails tests
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kWindowsWaveAudio)) == NULL);
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kWindowsCoreAudio)) == NULL);
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL);
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kLinuxPulseAudio)) == NULL);
// Create default implementation instance
EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create(
kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
#endif

View File

@ -602,7 +602,7 @@ int32_t FuncTestManager::Init()
_processThread->Start();
// create the Audio Device module
EXPECT_TRUE((_audioDevice = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((_audioDevice = AudioDeviceModule::Create(
555, ADM_AUDIO_LAYER)) != NULL);
if (_audioDevice == NULL)
{
@ -842,12 +842,12 @@ int32_t FuncTestManager::TestAudioLayerSelection()
// create the Audio Device module based on selected audio layer
if (tryWinWave)
{
_audioDevice = AudioDeviceModuleImpl::Create(
_audioDevice = AudioDeviceModule::Create(
555,
AudioDeviceModule::kWindowsWaveAudio);
} else if (tryWinCore)
{
_audioDevice = AudioDeviceModuleImpl::Create(
_audioDevice = AudioDeviceModule::Create(
555,
AudioDeviceModule::kWindowsCoreAudio);
}
@ -856,7 +856,7 @@ int32_t FuncTestManager::TestAudioLayerSelection()
{
TEST_LOG("\nERROR: Switch of audio layer failed!\n");
// restore default audio layer instead
EXPECT_TRUE((_audioDevice = AudioDeviceModuleImpl::Create(
EXPECT_TRUE((_audioDevice = AudioDeviceModule::Create(
555, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
}

View File

@ -229,7 +229,7 @@ int VoEBaseImpl::Init(AudioDeviceModule* external_adm,
return -1;
#else
// Create the internal ADM implementation.
shared_->set_audio_device(AudioDeviceModuleImpl::Create(
shared_->set_audio_device(AudioDeviceModule::Create(
VoEId(shared_->instance_id(), -1), shared_->audio_device_layer()));
if (shared_->audio_device() == nullptr) {