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

Test: mma
Bug: 31830743
Change-Id: Id57944c69de37b20409215ef600b553ce5e2526e
This commit is contained in:
Martijn Coenen
2017-01-04 12:59:48 +01:00
parent ddfd2b832d
commit 527924aeea
4 changed files with 36 additions and 52 deletions

View File

@@ -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) {

View File

@@ -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

View File

@@ -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) {

View File

@@ -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