audio: Generalize stream implementations

This allows for more code reuse and composability when
implementing streams for a particular audio "backend."

The existing "stub" code has been moved to StreamStub* files.

Bug: 264712385
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I97fd41f87eb6d01e1d57f0d70a86d3b2b3555837
This commit is contained in:
Mikhail Naganov
2023-01-07 00:24:50 +00:00
parent 8651b364b8
commit f429c03d49
6 changed files with 475 additions and 169 deletions

View File

@@ -28,6 +28,7 @@
#include "core-impl/Bluetooth.h"
#include "core-impl/Module.h"
#include "core-impl/SoundDose.h"
#include "core-impl/StreamStub.h"
#include "core-impl/Telephony.h"
#include "core-impl/utils.h"
@@ -552,8 +553,9 @@ ndk::ScopedAStatus Module::openInputStream(const OpenInputStreamArguments& in_ar
}
context.fillDescriptor(&_aidl_return->desc);
std::shared_ptr<StreamIn> stream;
if (auto status = StreamIn::createInstance(in_args.sinkMetadata, std::move(context),
mConfig->microphones, &stream);
// TODO: Add a mapping from module instance names to a corresponding 'createInstance'.
if (auto status = StreamInStub::createInstance(in_args.sinkMetadata, std::move(context),
mConfig->microphones, &stream);
!status.isOk()) {
return status;
}
@@ -606,8 +608,9 @@ ndk::ScopedAStatus Module::openOutputStream(const OpenOutputStreamArguments& in_
}
context.fillDescriptor(&_aidl_return->desc);
std::shared_ptr<StreamOut> stream;
if (auto status = StreamOut::createInstance(in_args.sourceMetadata, std::move(context),
in_args.offloadInfo, &stream);
// TODO: Add a mapping from module instance names to a corresponding 'createInstance'.
if (auto status = StreamOutStub::createInstance(in_args.sourceMetadata, std::move(context),
in_args.offloadInfo, &stream);
!status.isOk()) {
return status;
}