Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd2f7847 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "libaudiohal: Align use of get_audio_port_v7 with default wrapper" am: a926d95e

Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1660800

Change-Id: Ifbd65efc0fea0f35f94ffebc837cfa9e5e74cc40
parents ae6ff951 a926d95e
Loading
Loading
Loading
Loading
+26 −1
Original line number Diff line number Diff line
@@ -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);
@@ -370,6 +371,30 @@ 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 MAJOR_VERSION >= 7
    return getAudioPortImpl(port);
#else
    struct audio_port 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
}

status_t DeviceHalHidl::setAudioPortConfig(const struct audio_port_config *config) {
    if (mDevice == 0) return NO_INIT;
    AudioPortConfig hidlConfig;
+5 −0
Original line number Diff line number Diff line
@@ -107,6 +107,9 @@ class DeviceHalHidl : public DeviceHalInterface, public ConversionHelperHidl
    // Fills the list of supported attributes for a given audio port.
    virtual status_t getAudioPort(struct audio_port *port);

    // Fills the list of supported attributes for a given audio port.
    virtual status_t getAudioPort(struct audio_port_v7 *port);

    // Set audio port configuration.
    virtual status_t setAudioPortConfig(const struct audio_port_config *config);

@@ -128,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
+16 −0
Original line number Diff line number Diff line
@@ -180,6 +180,22 @@ status_t DeviceHalLocal::getAudioPort(struct audio_port *port) {
    return mDev->get_audio_port(mDev, 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);
    if (status == NO_ERROR) {
        audio_populate_audio_port_v7(&audioPort, port);
    }
    return status;
}

status_t DeviceHalLocal::setAudioPortConfig(const struct audio_port_config *config) {
    if (version() >= AUDIO_DEVICE_API_VERSION_3_0)
        return mDev->set_audio_port_config(mDev, config);
+3 −0
Original line number Diff line number Diff line
@@ -100,6 +100,9 @@ class DeviceHalLocal : public DeviceHalInterface
    // Fills the list of supported attributes for a given audio port.
    virtual status_t getAudioPort(struct audio_port *port);

    // Fills the list of supported attributes for a given audio port.
    virtual status_t getAudioPort(struct audio_port_v7 *port);

    // Set audio port configuration.
    virtual status_t setAudioPortConfig(const struct audio_port_config *config);

+3 −0
Original line number Diff line number Diff line
@@ -106,6 +106,9 @@ class DeviceHalInterface : public RefBase
    // Fills the list of supported attributes for a given audio port.
    virtual status_t getAudioPort(struct audio_port *port) = 0;

    // Fills the list of supported attributes for a given audio port.
    virtual status_t getAudioPort(struct audio_port_v7 *port) = 0;

    // Set audio port configuration.
    virtual status_t setAudioPortConfig(const struct audio_port_config *config) = 0;