Loading media/libaudiohal/impl/DeviceHalHidl.cpp +16 −18 Original line number Diff line number Diff line Loading @@ -354,7 +354,8 @@ status_t DeviceHalHidl::releaseAudioPatch(audio_patch_handle_t patch) { return processReturn("releaseAudioPatch", mDevice->releaseAudioPatch(patch)); } status_t DeviceHalHidl::getAudioPort(struct audio_port *port) { template <typename HalPort> status_t DeviceHalHidl::getAudioPortImpl(HalPort *port) { if (mDevice == 0) return NO_INIT; AudioPort hidlPort; HidlUtils::audioPortFromHal(*port, &hidlPort); Loading @@ -370,31 +371,28 @@ status_t DeviceHalHidl::getAudioPort(struct audio_port *port) { return processReturn("getAudioPort", ret, retval); } status_t DeviceHalHidl::getAudioPort(struct audio_port *port) { return getAudioPortImpl(port); } status_t DeviceHalHidl::getAudioPort(struct audio_port_v7 *port) { if (mDevice == 0) return NO_INIT; status_t status = NO_ERROR; #if MAJOR_VERSION >= 7 AudioPort hidlPort; HidlUtils::audioPortFromHal(*port, &hidlPort); Result retval; Return<void> ret = mDevice->getAudioPort( hidlPort, [&](Result r, const AudioPort& p) { retval = r; if (retval == Result::OK) { HidlUtils::audioPortToHal(p, port); } }); status = processReturn("getAudioPort", ret, retval); return getAudioPortImpl(port); #else struct audio_port audioPort = {}; audio_populate_audio_port(port, &audioPort); status = getAudioPort(&audioPort); status_t result = NO_ERROR; if (!audio_populate_audio_port(port, &audioPort)) { ALOGE("Failed to populate legacy audio port from audio_port_v7"); result = BAD_VALUE; } status_t status = getAudioPort(&audioPort); if (status == NO_ERROR) { audio_populate_audio_port_v7(&audioPort, port); } else { result = status; } return result; #endif return status; } status_t DeviceHalHidl::setAudioPortConfig(const struct audio_port_config *config) { Loading media/libaudiohal/impl/DeviceHalHidl.h +2 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,8 @@ class DeviceHalHidl : public DeviceHalInterface, public ConversionHelperHidl // The destructor automatically closes the device. virtual ~DeviceHalHidl(); template <typename HalPort> status_t getAudioPortImpl(HalPort *port); }; } // namespace CPP_VERSION Loading media/libaudiohal/impl/DeviceHalLocal.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,12 @@ status_t DeviceHalLocal::getAudioPort(struct audio_port *port) { } status_t DeviceHalLocal::getAudioPort(struct audio_port_v7 *port) { #if MAJOR_VERSION >= 7 if (version() >= AUDIO_DEVICE_API_VERSION_3_2) { // get_audio_port_v7 is mandatory if legacy HAL support this API version. return mDev->get_audio_port_v7(mDev, port); } #endif struct audio_port audioPort = {}; audio_populate_audio_port(port, &audioPort); status_t status = getAudioPort(&audioPort); Loading Loading
media/libaudiohal/impl/DeviceHalHidl.cpp +16 −18 Original line number Diff line number Diff line Loading @@ -354,7 +354,8 @@ status_t DeviceHalHidl::releaseAudioPatch(audio_patch_handle_t patch) { return processReturn("releaseAudioPatch", mDevice->releaseAudioPatch(patch)); } status_t DeviceHalHidl::getAudioPort(struct audio_port *port) { template <typename HalPort> status_t DeviceHalHidl::getAudioPortImpl(HalPort *port) { if (mDevice == 0) return NO_INIT; AudioPort hidlPort; HidlUtils::audioPortFromHal(*port, &hidlPort); Loading @@ -370,31 +371,28 @@ status_t DeviceHalHidl::getAudioPort(struct audio_port *port) { return processReturn("getAudioPort", ret, retval); } status_t DeviceHalHidl::getAudioPort(struct audio_port *port) { return getAudioPortImpl(port); } status_t DeviceHalHidl::getAudioPort(struct audio_port_v7 *port) { if (mDevice == 0) return NO_INIT; status_t status = NO_ERROR; #if MAJOR_VERSION >= 7 AudioPort hidlPort; HidlUtils::audioPortFromHal(*port, &hidlPort); Result retval; Return<void> ret = mDevice->getAudioPort( hidlPort, [&](Result r, const AudioPort& p) { retval = r; if (retval == Result::OK) { HidlUtils::audioPortToHal(p, port); } }); status = processReturn("getAudioPort", ret, retval); return getAudioPortImpl(port); #else struct audio_port audioPort = {}; audio_populate_audio_port(port, &audioPort); status = getAudioPort(&audioPort); status_t result = NO_ERROR; if (!audio_populate_audio_port(port, &audioPort)) { ALOGE("Failed to populate legacy audio port from audio_port_v7"); result = BAD_VALUE; } status_t status = getAudioPort(&audioPort); if (status == NO_ERROR) { audio_populate_audio_port_v7(&audioPort, port); } else { result = status; } return result; #endif return status; } status_t DeviceHalHidl::setAudioPortConfig(const struct audio_port_config *config) { Loading
media/libaudiohal/impl/DeviceHalHidl.h +2 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,8 @@ class DeviceHalHidl : public DeviceHalInterface, public ConversionHelperHidl // The destructor automatically closes the device. virtual ~DeviceHalHidl(); template <typename HalPort> status_t getAudioPortImpl(HalPort *port); }; } // namespace CPP_VERSION Loading
media/libaudiohal/impl/DeviceHalLocal.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,12 @@ status_t DeviceHalLocal::getAudioPort(struct audio_port *port) { } status_t DeviceHalLocal::getAudioPort(struct audio_port_v7 *port) { #if MAJOR_VERSION >= 7 if (version() >= AUDIO_DEVICE_API_VERSION_3_2) { // get_audio_port_v7 is mandatory if legacy HAL support this API version. return mDev->get_audio_port_v7(mDev, port); } #endif struct audio_port audioPort = {}; audio_populate_audio_port(port, &audioPort); status_t status = getAudioPort(&audioPort); Loading