mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 22:04:26 +00:00
Use audio containers from libaudiofoundation.
It is suggested to do so according to Vector.h and SortedVector.h. At framework side, there are audio containers such as FormatVector, ChannelMaskSet, SampleRateSet to replace the usage of Vector SortedVector for audio stuff. In default hal implementation, we can use these audio containers to replace Vector and SortedVector. Bug: 135621476 Test: play/record audio Change-Id: I4d985327fb76cd06afe241860d8b592abcbfe4f2
This commit is contained in:
@@ -19,6 +19,7 @@ cc_defaults {
|
||||
export_include_dirs: ["include"],
|
||||
|
||||
shared_libs: [
|
||||
"libaudiofoundation",
|
||||
"libbase",
|
||||
"libcutils",
|
||||
"libfmq",
|
||||
|
||||
@@ -26,9 +26,8 @@
|
||||
#include <android/log.h>
|
||||
#include <hardware/audio.h>
|
||||
#include <hardware/audio_effect.h>
|
||||
#include <media/AudioContainers.h>
|
||||
#include <media/TypeConverter.h>
|
||||
#include <utils/SortedVector.h>
|
||||
#include <utils/Vector.h>
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
@@ -100,11 +99,11 @@ Return<void> Stream::getSupportedSampleRates(AudioFormat format,
|
||||
Result result =
|
||||
getParam(AudioParameter::keyStreamSupportedSamplingRates, &halListValue, context);
|
||||
hidl_vec<uint32_t> sampleRates;
|
||||
SortedVector<uint32_t> halSampleRates;
|
||||
SampleRateSet halSampleRates;
|
||||
if (result == Result::OK) {
|
||||
halSampleRates =
|
||||
samplingRatesFromString(halListValue.string(), AudioParameter::valueListSeparator);
|
||||
sampleRates.setToExternal(halSampleRates.editArray(), halSampleRates.size());
|
||||
sampleRates = hidl_vec<uint32_t>(halSampleRates.begin(), halSampleRates.end());
|
||||
// Legacy get_parameter does not return a status_t, thus can not advertise of failure.
|
||||
// Note that this method must succeed (non empty list) if the format is supported.
|
||||
if (sampleRates.size() == 0) {
|
||||
@@ -126,13 +125,14 @@ Return<void> Stream::getSupportedChannelMasks(AudioFormat format,
|
||||
String8 halListValue;
|
||||
Result result = getParam(AudioParameter::keyStreamSupportedChannels, &halListValue, context);
|
||||
hidl_vec<AudioChannelBitfield> channelMasks;
|
||||
SortedVector<audio_channel_mask_t> halChannelMasks;
|
||||
ChannelMaskSet halChannelMasks;
|
||||
if (result == Result::OK) {
|
||||
halChannelMasks =
|
||||
channelMasksFromString(halListValue.string(), AudioParameter::valueListSeparator);
|
||||
channelMasks.resize(halChannelMasks.size());
|
||||
for (size_t i = 0; i < halChannelMasks.size(); ++i) {
|
||||
channelMasks[i] = AudioChannelBitfield(halChannelMasks[i]);
|
||||
size_t i = 0;
|
||||
for (auto channelMask : halChannelMasks) {
|
||||
channelMasks[i++] = AudioChannelBitfield(channelMask);
|
||||
}
|
||||
// Legacy get_parameter does not return a status_t, thus can not advertise of failure.
|
||||
// Note that this method must succeed (non empty list) if the format is supported.
|
||||
@@ -168,7 +168,7 @@ Return<void> Stream::getSupportedFormats(getSupportedFormats_cb _hidl_cb) {
|
||||
String8 halListValue;
|
||||
Result result = getParam(AudioParameter::keyStreamSupportedFormats, &halListValue);
|
||||
hidl_vec<AudioFormat> formats;
|
||||
Vector<audio_format_t> halFormats;
|
||||
FormatVector halFormats;
|
||||
if (result == Result::OK) {
|
||||
halFormats = formatsFromString(halListValue.string(), AudioParameter::valueListSeparator);
|
||||
formats.resize(halFormats.size());
|
||||
|
||||
Reference in New Issue
Block a user