From 5e2330370f0a699d20d8d168c88ffb1e0958bf72 Mon Sep 17 00:00:00 2001 From: Takumi Hori Date: Wed, 29 Nov 2017 12:23:11 +0900 Subject: [PATCH] Displaying HD audio indicator for GSM/CDMA calls Return audio quality information during a voice call along with call details from RIL. This information is expected to be used to display HD audio indicator when wide band speech codec is notified. This feature is necessary to fulfill some carriers requirement. Test: manual - Checked that HD audio indicator is displayed on UI in GSM/CDMA calls. Bug: 30207043 Change-Id: Ic6518b7b5c37c4b9cfcd83bd0c5b836acd3f60da --- radio/1.2/Android.bp | 2 ++ radio/1.2/IRadioResponse.hal | 16 ++++++++++++++++ radio/1.2/types.hal | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) diff --git a/radio/1.2/Android.bp b/radio/1.2/Android.bp index f4ca1cfea7..552e33d46e 100644 --- a/radio/1.2/Android.bp +++ b/radio/1.2/Android.bp @@ -19,6 +19,8 @@ hidl_interface { "android.hidl.base@1.0", ], types: [ + "AudioQuality", + "Call", "CardStatus", "CellConnectionStatus", "CellIdentityCdma", diff --git a/radio/1.2/IRadioResponse.hal b/radio/1.2/IRadioResponse.hal index c356954cd7..93ec4d7497 100644 --- a/radio/1.2/IRadioResponse.hal +++ b/radio/1.2/IRadioResponse.hal @@ -72,4 +72,20 @@ interface IRadioResponse extends @1.1::IRadioResponse { * RadioError:INTERNAL_ERR */ oneway setLinkCapacityReportingCriteriaResponse(RadioResponseInfo info); + + /** + * @param calls Current call list + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + oneway getCurrentCallsResponse_1_2(RadioResponseInfo info, vec calls); }; diff --git a/radio/1.2/types.hal b/radio/1.2/types.hal index f2f0b69b37..c353645cc7 100644 --- a/radio/1.2/types.hal +++ b/radio/1.2/types.hal @@ -16,6 +16,7 @@ package android.hardware.radio@1.2; +import @1.0::Call; import @1.0::CdmaSignalStrength; import @1.0::CardState; import @1.0::CardStatus; @@ -125,6 +126,33 @@ enum IndicationFilter : int32_t { PHYSICAL_CHANNEL_CONFIG = 1 << 4, }; +/** + * Audio codec which is used on GSM, UMTS, and CDMA. These values must be opaque + * to the Android framework. Only for display. + */ +enum AudioQuality : int32_t { + /** Unspecified audio codec */ + UNSPECIFIED, + /** AMR (Narrowband) audio codec */ + AMR, + /** AMR (Wideband) audio codec */ + AMR_WB, + /** GSM Enhanced Full-Rate audio codec */ + GSM_EFR, + /** GSM Full-Rate audio codec */ + GSM_FR, + /** GSM Half-Rate audio codec */ + GSM_HR, + /** Enhanced Variable rate codec */ + EVRC, + /** Enhanced Variable rate codec revision B */ + EVRC_B, + /** Enhanced Variable rate codec (Wideband) */ + EVRC_WB, + /** Enhanced Variable rate codec (Narrowband) */ + EVRC_NW, +}; + struct NetworkScanRequest { ScanType type; @@ -364,3 +392,8 @@ enum DataRequestReason : int32_t { */ HANDOVER = 0x03, }; + +struct Call { + @1.0::Call base; + AudioQuality audioQuality; +};