|
|
|
@ -44,13 +44,23 @@ using ::android::hardware::Return;
|
|
|
|
|
using ::android::hardware::Void;
|
|
|
|
|
using ReadCommand = ::android::hardware::audio::CPP_VERSION::IStreamIn::ReadCommand;
|
|
|
|
|
|
|
|
|
|
#if MAJOR_VERSION == 4
|
|
|
|
|
#if MAJOR_VERSION >= 4
|
|
|
|
|
using ::android::hardware::audio::common::CPP_VERSION::AudioContentType;
|
|
|
|
|
using ::android::hardware::audio::common::CPP_VERSION::AudioSource;
|
|
|
|
|
using ::android::hardware::audio::common::CPP_VERSION::AudioUsage;
|
|
|
|
|
using ::android::hardware::audio::CPP_VERSION::MicrophoneInfo;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if MAJOR_VERSION == 4
|
|
|
|
|
using ::android::hardware::audio::CPP_VERSION::PlaybackTrackMetadata;
|
|
|
|
|
using ::android::hardware::audio::CPP_VERSION::RecordTrackMetadata;
|
|
|
|
|
using HalSinkMetadata = ::android::hardware::audio::CPP_VERSION::SinkMetadata;
|
|
|
|
|
using HalSourceMetadata = ::android::hardware::audio::CPP_VERSION::SourceMetadata;
|
|
|
|
|
#elif MAJOR_VERSION == 5
|
|
|
|
|
using ::android::hardware::audio::common::CPP_VERSION::PlaybackTrackMetadata;
|
|
|
|
|
using ::android::hardware::audio::common::CPP_VERSION::RecordTrackMetadata;
|
|
|
|
|
using HalSinkMetadata = ::android::hardware::audio::common::CPP_VERSION::SinkMetadata;
|
|
|
|
|
using HalSourceMetadata = ::android::hardware::audio::common::CPP_VERSION::SourceMetadata;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
namespace android {
|
|
|
|
@ -192,7 +202,7 @@ status_t StreamHalHidl::createMmapBuffer(int32_t minSizeFrames,
|
|
|
|
|
const native_handle *handle = hidlInfo.sharedMemory.handle();
|
|
|
|
|
if (handle->numFds > 0) {
|
|
|
|
|
info->shared_memory_fd = handle->data[0];
|
|
|
|
|
#if MAJOR_VERSION == 4
|
|
|
|
|
#if MAJOR_VERSION >= 4
|
|
|
|
|
info->flags = audio_mmap_buffer_flag(hidlInfo.flags);
|
|
|
|
|
#endif
|
|
|
|
|
info->buffer_size_frames = hidlInfo.bufferSizeFrames;
|
|
|
|
@ -357,7 +367,7 @@ status_t StreamOutHalHidl::selectPresentation(int presentationId, int programId)
|
|
|
|
|
parametersToHal(hidl_vec<ParameterValue>(parameters), &halParameters);
|
|
|
|
|
return setParameters(halParameters);
|
|
|
|
|
}
|
|
|
|
|
#elif MAJOR_VERSION == 4
|
|
|
|
|
#elif MAJOR_VERSION >= 4
|
|
|
|
|
status_t StreamOutHalHidl::selectPresentation(int presentationId, int programId) {
|
|
|
|
|
if (mStream == 0) return NO_INIT;
|
|
|
|
|
return processReturn("selectPresentation",
|
|
|
|
@ -603,7 +613,7 @@ status_t StreamOutHalHidl::updateSourceMetadata(const SourceMetadata& /* sourceM
|
|
|
|
|
// Audio HAL V2.0 does not support propagating source metadata
|
|
|
|
|
return INVALID_OPERATION;
|
|
|
|
|
}
|
|
|
|
|
#elif MAJOR_VERSION == 4
|
|
|
|
|
#elif MAJOR_VERSION >= 4
|
|
|
|
|
/** Transform a standard collection to an HIDL vector. */
|
|
|
|
|
template <class Values, class ElementConverter>
|
|
|
|
|
static auto transformToHidlVec(const Values& values, ElementConverter converter) {
|
|
|
|
@ -614,7 +624,7 @@ static auto transformToHidlVec(const Values& values, ElementConverter converter)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
status_t StreamOutHalHidl::updateSourceMetadata(const SourceMetadata& sourceMetadata) {
|
|
|
|
|
hardware::audio::CPP_VERSION::SourceMetadata halMetadata = {
|
|
|
|
|
HalSourceMetadata halMetadata = {
|
|
|
|
|
.tracks = transformToHidlVec(sourceMetadata.tracks,
|
|
|
|
|
[](const playback_track_metadata& metadata) -> PlaybackTrackMetadata {
|
|
|
|
|
return {
|
|
|
|
@ -833,7 +843,7 @@ status_t StreamInHalHidl::updateSinkMetadata(const SinkMetadata& /* sinkMetadata
|
|
|
|
|
return INVALID_OPERATION;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#elif MAJOR_VERSION == 4
|
|
|
|
|
#elif MAJOR_VERSION >= 4
|
|
|
|
|
status_t StreamInHalHidl::getActiveMicrophones(
|
|
|
|
|
std::vector<media::MicrophoneInfo> *microphonesInfo) {
|
|
|
|
|
if (!mStream) return NO_INIT;
|
|
|
|
@ -853,7 +863,7 @@ status_t StreamInHalHidl::getActiveMicrophones(
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
status_t StreamInHalHidl::updateSinkMetadata(const SinkMetadata& sinkMetadata) {
|
|
|
|
|
hardware::audio::CPP_VERSION::SinkMetadata halMetadata = {
|
|
|
|
|
HalSinkMetadata halMetadata = {
|
|
|
|
|
.tracks = transformToHidlVec(sinkMetadata.tracks,
|
|
|
|
|
[](const record_track_metadata& metadata) -> RecordTrackMetadata {
|
|
|
|
|
return {
|
|
|
|
|