Make getHwAvSync strongly typed above libaudiohal
This CL lays the foundation and pattern for converting more parameters
to a strongly typed interface.
Test: TBD
Change-Id: I5503da3f68c543e441ede4d381518a8e5601fe8c
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index 5b53331..479906f 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -2493,21 +2493,17 @@
if (dev == nullptr) {
return AUDIO_HW_SYNC_INVALID;
}
- String8 reply;
- AudioParameter param;
- if (dev->getParameters(String8(AudioParameter::keyHwAvSync), &reply) == OK) {
- param = AudioParameter(reply);
- }
- int value;
- if (param.getInt(String8(AudioParameter::keyHwAvSync), value) != NO_ERROR) {
+ error::Result<audio_hw_sync_t> result = dev->getHwAvSync();
+ if (!result.ok()) {
ALOGW("getAudioHwSyncForSession error getting sync for session %d", sessionId);
return AUDIO_HW_SYNC_INVALID;
}
+ audio_hw_sync_t value = VALUE_OR_FATAL(result);
// allow only one session for a given HW A/V sync ID.
for (size_t i = 0; i < mHwAvSyncIds.size(); i++) {
- if (mHwAvSyncIds.valueAt(i) == (audio_hw_sync_t)value) {
+ if (mHwAvSyncIds.valueAt(i) == value) {
ALOGV("getAudioHwSyncForSession removing ID %d for session %d",
value, mHwAvSyncIds.keyAt(i));
mHwAvSyncIds.removeItemsAt(i);