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

Commit 527924ae authored by Martijn Coenen's avatar Martijn Coenen
Browse files

Update GNSS/EVS HALs to use elided interface return values.

Test: mma
Bug: 31830743
Change-Id: Id57944c69de37b20409215ef600b553ce5e2526e
parent ddfd2b83
Loading
Loading
Loading
Loading
+7 −12
Original line number Diff line number Diff line
@@ -62,8 +62,7 @@ Return<void> EvsEnumerator::getCameraList(getCameraList_cb _hidl_cb) {
    return Void();
}

Return<void> EvsEnumerator::openCamera(const hidl_string& cameraId,
                                             openCamera_cb callback) {
Return<sp<IEvsCamera>> EvsEnumerator::openCamera(const hidl_string& cameraId) {
    ALOGD("openCamera");

    // Find the named camera
@@ -78,20 +77,18 @@ Return<void> EvsEnumerator::openCamera(const hidl_string& cameraId,

    if (!pRecord) {
        ALOGE("Requested camera %s not found", cameraId.c_str());
        callback(nullptr);
        return nullptr;
    }
    else if (pRecord->inUse) {
        ALOGE("Cannot open camera %s which is already in use", cameraId.c_str());
        callback(nullptr);
        return nullptr;
    }
    else {
        /* TODO(b/33492405):  Do this, When HIDL can give us back a recognizable pointer
        pRecord->inUse = true;
         */
        callback(pRecord->pCamera);
        return(pRecord->pCamera);
    }

    return Void();
}

Return<void> EvsEnumerator::closeCamera(const ::android::sp<IEvsCamera>& camera) {
@@ -112,22 +109,20 @@ Return<void> EvsEnumerator::closeCamera(const ::android::sp<IEvsCamera>& camera)
    return Void();
}

Return<void> EvsEnumerator::openDisplay(openDisplay_cb callback) {
Return<sp<IEvsDisplay>> EvsEnumerator::openDisplay() {
    ALOGD("openDisplay");

    // If we already have a display active, then this request must be denied
    if (mActiveDisplay != nullptr) {
        ALOGW("Rejecting openDisplay request the display is already in use.");
        callback(nullptr);
        return nullptr;
    }
    else {
        // Create a new display interface and return it
        mActiveDisplay = new EvsDisplay();
        ALOGD("Returning new EvsDisplay object %p", mActiveDisplay.get());
        callback(mActiveDisplay);
        return mActiveDisplay;
    }

    return Void();
}

Return<void> EvsEnumerator::closeDisplay(const ::android::sp<IEvsDisplay>& display) {
+2 −2
Original line number Diff line number Diff line
@@ -34,9 +34,9 @@ class EvsEnumerator : public IEvsEnumerator {
public:
    // Methods from ::android::hardware::evs::V1_0::IEvsEnumerator follow.
    Return<void> getCameraList(getCameraList_cb _hidl_cb)  override;
    Return<void> openCamera(const hidl_string& cameraId, openCamera_cb callback)  override;
    Return<sp<IEvsCamera>> openCamera(const hidl_string& cameraId) override;
    Return<void> closeCamera(const ::android::sp<IEvsCamera>& carCamera)  override;
    Return<void> openDisplay(openDisplay_cb callback)  override;
    Return<sp<IEvsDisplay>> openDisplay()  override;
    Return<void> closeDisplay(const ::android::sp<IEvsDisplay>& display)  override;

    // Implementation details
+18 −28
Original line number Diff line number Diff line
@@ -385,7 +385,7 @@ Return<bool> Gnss::setPositionMode(IGnss::GnssPositionMode mode,
                                          preferredTimeMs) == 0);
}

Return<void> Gnss::getExtensionAGnssRil(getExtensionAGnssRil_cb _hidl_cb)  {
Return<sp<IAGnssRil>> Gnss::getExtensionAGnssRil()  {
    if (mGnssIface == nullptr) {
        ALOGE("%s: Gnss interface is unavailable", __func__);
    } else {
@@ -397,11 +397,10 @@ Return<void> Gnss::getExtensionAGnssRil(getExtensionAGnssRil_cb _hidl_cb) {
            mGnssRil = new AGnssRil(agpsRilIface);
        }
    }
    _hidl_cb(mGnssRil);
    return Void();
    return mGnssRil;
}

Return<void> Gnss::getExtensionGnssConfiguration(getExtensionGnssConfiguration_cb _hidl_cb)  {
Return<sp<IGnssConfiguration>> Gnss::getExtensionGnssConfiguration()  {
    if (mGnssIface == nullptr) {
        ALOGE("%s: Gnss interface is unavailable", __func__);
    } else {
@@ -415,10 +414,9 @@ Return<void> Gnss::getExtensionGnssConfiguration(getExtensionGnssConfiguration_c
            mGnssConfig = new GnssConfiguration(gnssConfigIface);
        }
    }
    _hidl_cb(mGnssConfig);
    return Void();
    return mGnssConfig;
}
Return<void> Gnss::getExtensionGnssGeofencing(getExtensionGnssGeofencing_cb _hidl_cb)  {
Return<sp<IGnssGeofencing>> Gnss::getExtensionGnssGeofencing()  {
    if (mGnssIface == nullptr) {
        ALOGE("%s: Gnss interface is unavailable", __func__);
    } else {
@@ -433,11 +431,10 @@ Return<void> Gnss::getExtensionGnssGeofencing(getExtensionGnssGeofencing_cb _hid
        }
    }

    _hidl_cb(mGnssGeofencingIface);
    return Void();
    return mGnssGeofencingIface;
}

Return<void> Gnss::getExtensionAGnss(getExtensionAGnss_cb _hidl_cb)  {
Return<sp<IAGnss>> Gnss::getExtensionAGnss()  {
    if (mGnssIface == nullptr) {
        ALOGE("%s: Gnss interface is unavailable", __func__);
    } else {
@@ -449,11 +446,10 @@ Return<void> Gnss::getExtensionAGnss(getExtensionAGnss_cb _hidl_cb) {
            mAGnssIface = new AGnss(agpsIface);
        }
    }
    _hidl_cb(mAGnssIface);
    return Void();
    return mAGnssIface;
}

Return<void> Gnss::getExtensionGnssNi(getExtensionGnssNi_cb _hidl_cb)  {
Return<sp<IGnssNi>> Gnss::getExtensionGnssNi()  {
    if (mGnssIface == nullptr) {
        ALOGE("%s: Gnss interface is unavailable", __func__);
    } else {
@@ -465,11 +461,10 @@ Return<void> Gnss::getExtensionGnssNi(getExtensionGnssNi_cb _hidl_cb) {
            mGnssNi = new GnssNi(gpsNiIface);
        }
    }
    _hidl_cb(mGnssNi);
    return Void();
    return mGnssNi;
}

Return<void> Gnss::getExtensionGnssMeasurement(getExtensionGnssMeasurement_cb _hidl_cb) {
Return<sp<IGnssMeasurement>> Gnss::getExtensionGnssMeasurement() {
    if (mGnssIface == nullptr) {
        ALOGE("%s: Gnss interface is unavailable", __func__);
    } else {
@@ -483,12 +478,10 @@ Return<void> Gnss::getExtensionGnssMeasurement(getExtensionGnssMeasurement_cb _h
            mGnssMeasurement = new GnssMeasurement(gpsMeasurementIface);
        }
    }
    _hidl_cb(mGnssMeasurement);
    return Void();
    return mGnssMeasurement;
}

Return<void> Gnss::getExtensionGnssNavigationMessage(
        getExtensionGnssNavigationMessage_cb _hidl_cb) {
Return<sp<IGnssNavigationMessage>> Gnss::getExtensionGnssNavigationMessage() {
    if (mGnssIface == nullptr) {
        ALOGE("%s: Gnss interface is unavailable", __func__);
    } else {
@@ -504,11 +497,10 @@ Return<void> Gnss::getExtensionGnssNavigationMessage(
        }
    }

    _hidl_cb(mGnssNavigationMessage);
    return Void();
    return mGnssNavigationMessage;
}

Return<void> Gnss::getExtensionXtra(getExtensionXtra_cb _hidl_cb)  {
Return<sp<IGnssXtra>> Gnss::getExtensionXtra()  {
    if (mGnssIface == nullptr) {
        ALOGE("%s: Gnss interface is unavailable", __func__);
    } else {
@@ -522,11 +514,10 @@ Return<void> Gnss::getExtensionXtra(getExtensionXtra_cb _hidl_cb) {
        }
    }

    _hidl_cb(mGnssXtraIface);
    return Void();
    return mGnssXtraIface;
}

Return<void> Gnss::getExtensionGnssDebug(getExtensionGnssDebug_cb _hidl_cb)  {
Return<sp<IGnssDebug>> Gnss::getExtensionGnssDebug()  {
    if (mGnssIface == nullptr) {
        ALOGE("%s: Gnss interface is unavailable", __func__);
    } else {
@@ -540,8 +531,7 @@ Return<void> Gnss::getExtensionGnssDebug(getExtensionGnssDebug_cb _hidl_cb) {
        }
    }

    _hidl_cb(mGnssDebug);
    return Void();
    return mGnssDebug;
}

IGnss* HIDL_FETCH_IGnss(const char* hal) {
+9 −10
Original line number Diff line number Diff line
@@ -74,16 +74,15 @@ struct Gnss : public IGnss {
                                 uint32_t minIntervalMs,
                                 uint32_t preferredAccuracyMeters,
                                 uint32_t preferredTimeMs)  override;
    Return<void> getExtensionAGnssRil(getExtensionAGnssRil_cb _hidl_cb) override;
    Return<void> getExtensionGnssGeofencing(getExtensionGnssGeofencing_cb _hidl_cb)  override;
    Return<void> getExtensionAGnss(getExtensionAGnss_cb _hidl_cb)  override;
    Return<void> getExtensionGnssNi(getExtensionGnssNi_cb _hidl_cb)  override;
    Return<void> getExtensionGnssMeasurement(getExtensionGnssMeasurement_cb _hidl_cb)  override;
    Return<void> getExtensionGnssNavigationMessage(
        getExtensionGnssNavigationMessage_cb _hidl_cb)  override;
    Return<void> getExtensionXtra(getExtensionXtra_cb _hidl_cb)  override;
    Return<void> getExtensionGnssDebug(getExtensionGnssDebug_cb _hidl_cb)  override;
    Return<void> getExtensionGnssConfiguration(getExtensionGnssConfiguration_cb _hidl_cb) override;
    Return<sp<IAGnssRil>> getExtensionAGnssRil() override;
    Return<sp<IGnssGeofencing>> getExtensionGnssGeofencing() override;
    Return<sp<IAGnss>> getExtensionAGnss() override;
    Return<sp<IGnssNi>> getExtensionGnssNi() override;
    Return<sp<IGnssMeasurement>> getExtensionGnssMeasurement() override;
    Return<sp<IGnssNavigationMessage>> getExtensionGnssNavigationMessage() override;
    Return<sp<IGnssXtra>> getExtensionXtra() override;
    Return<sp<IGnssConfiguration>> getExtensionGnssConfiguration() override;
    Return<sp<IGnssDebug>> getExtensionGnssDebug() override;

    /*
     * Callback methods to be passed into the conventional GNSS HAL by the default