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:
parent
9bfa1063d1
commit
4adbbcfe7a
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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_;
|
||||
};
|
||||
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user