Change the AudioDeiviceDataObserver to be passed as a unique_ptr.
Bug: webrtc:11356 Change-Id: If89305f257fd966d83f37dbd03922c4d030b6d8f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168771 Commit-Queue: Fabian Bergmark <fabianbergmark@google.com> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30575}
This commit is contained in:

committed by
Commit Bot

parent
74c5b0ac23
commit
9a4eb32477
@ -23,15 +23,20 @@ namespace {
|
|||||||
class ADMWrapper : public AudioDeviceModule, public AudioTransport {
|
class ADMWrapper : public AudioDeviceModule, public AudioTransport {
|
||||||
public:
|
public:
|
||||||
ADMWrapper(rtc::scoped_refptr<AudioDeviceModule> impl,
|
ADMWrapper(rtc::scoped_refptr<AudioDeviceModule> impl,
|
||||||
AudioDeviceDataObserver* observer)
|
AudioDeviceDataObserver* legacy_observer,
|
||||||
: impl_(impl), observer_(observer) {
|
std::unique_ptr<AudioDeviceDataObserver> observer)
|
||||||
|
: impl_(impl),
|
||||||
|
legacy_observer_(legacy_observer),
|
||||||
|
observer_(std::move(observer)) {
|
||||||
is_valid_ = impl_.get() != nullptr;
|
is_valid_ = impl_.get() != nullptr;
|
||||||
}
|
}
|
||||||
ADMWrapper(AudioLayer audio_layer,
|
ADMWrapper(AudioLayer audio_layer,
|
||||||
TaskQueueFactory* task_queue_factory,
|
TaskQueueFactory* task_queue_factory,
|
||||||
AudioDeviceDataObserver* observer)
|
AudioDeviceDataObserver* legacy_observer,
|
||||||
|
std::unique_ptr<AudioDeviceDataObserver> observer)
|
||||||
: ADMWrapper(AudioDeviceModule::Create(audio_layer, task_queue_factory),
|
: ADMWrapper(AudioDeviceModule::Create(audio_layer, task_queue_factory),
|
||||||
observer) {}
|
legacy_observer,
|
||||||
|
std::move(observer)) {}
|
||||||
~ADMWrapper() override {
|
~ADMWrapper() override {
|
||||||
audio_transport_ = nullptr;
|
audio_transport_ = nullptr;
|
||||||
observer_ = nullptr;
|
observer_ = nullptr;
|
||||||
@ -285,7 +290,8 @@ class ADMWrapper : public AudioDeviceModule, public AudioTransport {
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
rtc::scoped_refptr<AudioDeviceModule> impl_;
|
rtc::scoped_refptr<AudioDeviceModule> impl_;
|
||||||
AudioDeviceDataObserver* observer_ = nullptr;
|
AudioDeviceDataObserver* legacy_observer_ = nullptr;
|
||||||
|
std::unique_ptr<AudioDeviceDataObserver> observer_;
|
||||||
AudioTransport* audio_transport_ = nullptr;
|
AudioTransport* audio_transport_ = nullptr;
|
||||||
bool is_valid_ = false;
|
bool is_valid_ = false;
|
||||||
};
|
};
|
||||||
@ -294,9 +300,23 @@ class ADMWrapper : public AudioDeviceModule, public AudioTransport {
|
|||||||
|
|
||||||
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceWithDataObserver(
|
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceWithDataObserver(
|
||||||
rtc::scoped_refptr<AudioDeviceModule> impl,
|
rtc::scoped_refptr<AudioDeviceModule> impl,
|
||||||
AudioDeviceDataObserver* observer) {
|
std::unique_ptr<AudioDeviceDataObserver> observer) {
|
||||||
rtc::scoped_refptr<ADMWrapper> audio_device(
|
rtc::scoped_refptr<ADMWrapper> audio_device(
|
||||||
new rtc::RefCountedObject<ADMWrapper>(impl, observer));
|
new rtc::RefCountedObject<ADMWrapper>(impl, observer.get(),
|
||||||
|
std::move(observer)));
|
||||||
|
|
||||||
|
if (!audio_device->IsValid()) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return audio_device;
|
||||||
|
}
|
||||||
|
|
||||||
|
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceWithDataObserver(
|
||||||
|
rtc::scoped_refptr<AudioDeviceModule> impl,
|
||||||
|
AudioDeviceDataObserver* legacy_observer) {
|
||||||
|
rtc::scoped_refptr<ADMWrapper> audio_device(
|
||||||
|
new rtc::RefCountedObject<ADMWrapper>(impl, legacy_observer, nullptr));
|
||||||
|
|
||||||
if (!audio_device->IsValid()) {
|
if (!audio_device->IsValid()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
@ -308,10 +328,26 @@ rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceWithDataObserver(
|
|||||||
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceWithDataObserver(
|
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceWithDataObserver(
|
||||||
AudioDeviceModule::AudioLayer audio_layer,
|
AudioDeviceModule::AudioLayer audio_layer,
|
||||||
TaskQueueFactory* task_queue_factory,
|
TaskQueueFactory* task_queue_factory,
|
||||||
AudioDeviceDataObserver* observer) {
|
std::unique_ptr<AudioDeviceDataObserver> observer) {
|
||||||
rtc::scoped_refptr<ADMWrapper> audio_device(
|
rtc::scoped_refptr<ADMWrapper> audio_device(
|
||||||
new rtc::RefCountedObject<ADMWrapper>(audio_layer, task_queue_factory,
|
new rtc::RefCountedObject<ADMWrapper>(audio_layer, task_queue_factory,
|
||||||
observer));
|
observer.get(),
|
||||||
|
std::move(observer)));
|
||||||
|
|
||||||
|
if (!audio_device->IsValid()) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return audio_device;
|
||||||
|
}
|
||||||
|
|
||||||
|
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceWithDataObserver(
|
||||||
|
AudioDeviceModule::AudioLayer audio_layer,
|
||||||
|
TaskQueueFactory* task_queue_factory,
|
||||||
|
AudioDeviceDataObserver* legacy_observer) {
|
||||||
|
rtc::scoped_refptr<ADMWrapper> audio_device(
|
||||||
|
new rtc::RefCountedObject<ADMWrapper>(audio_layer, task_queue_factory,
|
||||||
|
legacy_observer, nullptr));
|
||||||
|
|
||||||
if (!audio_device->IsValid()) {
|
if (!audio_device->IsValid()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
@ -42,11 +42,25 @@ class AudioDeviceDataObserver {
|
|||||||
|
|
||||||
// Creates an ADMWrapper around an ADM instance that registers
|
// Creates an ADMWrapper around an ADM instance that registers
|
||||||
// the provided AudioDeviceDataObserver.
|
// the provided AudioDeviceDataObserver.
|
||||||
|
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceWithDataObserver(
|
||||||
|
rtc::scoped_refptr<AudioDeviceModule> impl,
|
||||||
|
std::unique_ptr<AudioDeviceDataObserver> observer);
|
||||||
|
|
||||||
|
// Creates an ADMWrapper around an ADM instance that registers
|
||||||
|
// the provided AudioDeviceDataObserver.
|
||||||
|
RTC_DEPRECATED
|
||||||
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceWithDataObserver(
|
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceWithDataObserver(
|
||||||
rtc::scoped_refptr<AudioDeviceModule> impl,
|
rtc::scoped_refptr<AudioDeviceModule> impl,
|
||||||
AudioDeviceDataObserver* observer);
|
AudioDeviceDataObserver* observer);
|
||||||
|
|
||||||
// Creates an ADM instance with AudioDeviceDataObserver registered.
|
// Creates an ADM instance with AudioDeviceDataObserver registered.
|
||||||
|
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceWithDataObserver(
|
||||||
|
const AudioDeviceModule::AudioLayer audio_layer,
|
||||||
|
TaskQueueFactory* task_queue_factory,
|
||||||
|
std::unique_ptr<AudioDeviceDataObserver> observer);
|
||||||
|
|
||||||
|
// Creates an ADM instance with AudioDeviceDataObserver registered.
|
||||||
|
RTC_DEPRECATED
|
||||||
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceWithDataObserver(
|
rtc::scoped_refptr<AudioDeviceModule> CreateAudioDeviceWithDataObserver(
|
||||||
const AudioDeviceModule::AudioLayer audio_layer,
|
const AudioDeviceModule::AudioLayer audio_layer,
|
||||||
TaskQueueFactory* task_queue_factory,
|
TaskQueueFactory* task_queue_factory,
|
||||||
|
Reference in New Issue
Block a user