blob: 5307e1118315a6dc79ca73db503f704aa7374a92 [file] [log] [blame]
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -07001/*
2 * Copyright (C) 2021 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#include <libradiocompat/RadioResponse.h>
18
19#include "commonStructs.h"
20#include "debug.h"
21#include "structs.h"
22
23#include "collections.h"
24
25#define RADIO_MODULE "VoiceResponse"
26
27namespace android::hardware::radio::compat {
28
29namespace aidl = ::aidl::android::hardware::radio::voice;
30
31void RadioResponse::setResponseFunction(std::shared_ptr<aidl::IRadioVoiceResponse> voiceCb) {
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070032 mVoiceCb = voiceCb;
33}
34
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080035std::shared_ptr<aidl::IRadioVoiceResponse> RadioResponse::voiceCb() {
36 return mVoiceCb.get();
37}
38
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070039Return<void> RadioResponse::acceptCallResponse(const V1_0::RadioResponseInfo& info) {
40 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080041 voiceCb()->acceptCallResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070042 return {};
43}
44
Sarah Chinf746a912022-01-28 15:54:36 -080045Return<void> RadioResponse::cancelPendingUssdResponse(const V1_0::RadioResponseInfo& info) {
46 LOG_CALL << info.serial;
47 voiceCb()->cancelPendingUssdResponse(toAidl(info));
48 return {};
49}
50
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070051Return<void> RadioResponse::conferenceResponse(const V1_0::RadioResponseInfo& info) {
52 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080053 voiceCb()->conferenceResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070054 return {};
55}
56
57Return<void> RadioResponse::dialResponse(const V1_0::RadioResponseInfo& info) {
58 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080059 voiceCb()->dialResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070060 return {};
61}
62
63Return<void> RadioResponse::emergencyDialResponse(const V1_0::RadioResponseInfo& info) {
64 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080065 voiceCb()->emergencyDialResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070066 return {};
67}
68
69Return<void> RadioResponse::exitEmergencyCallbackModeResponse(const V1_0::RadioResponseInfo& info) {
70 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080071 voiceCb()->exitEmergencyCallbackModeResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070072 return {};
73}
74
75Return<void> RadioResponse::explicitCallTransferResponse(const V1_0::RadioResponseInfo& info) {
76 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080077 voiceCb()->explicitCallTransferResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070078 return {};
79}
80
81Return<void> RadioResponse::getCallForwardStatusResponse(
82 const V1_0::RadioResponseInfo& info, const hidl_vec<V1_0::CallForwardInfo>& callFwdInfos) {
83 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080084 voiceCb()->getCallForwardStatusResponse(toAidl(info), toAidl(callFwdInfos));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070085 return {};
86}
87
88Return<void> RadioResponse::getCallWaitingResponse(const V1_0::RadioResponseInfo& info, bool enable,
89 int32_t serviceClass) {
90 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080091 voiceCb()->getCallWaitingResponse(toAidl(info), enable, serviceClass);
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070092 return {};
93}
94
95Return<void> RadioResponse::getClipResponse(const V1_0::RadioResponseInfo& info,
96 V1_0::ClipStatus status) {
97 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080098 voiceCb()->getClipResponse(toAidl(info), aidl::ClipStatus(status));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070099 return {};
100}
101
102Return<void> RadioResponse::getClirResponse(const V1_0::RadioResponseInfo& info, int32_t n,
103 int32_t m) {
104 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800105 voiceCb()->getClirResponse(toAidl(info), n, m);
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700106 return {};
107}
108
109Return<void> RadioResponse::getCurrentCallsResponse(const V1_0::RadioResponseInfo& info,
110 const hidl_vec<V1_0::Call>& calls) {
111 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800112 voiceCb()->getCurrentCallsResponse(toAidl(info), toAidl(calls));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700113 return {};
114}
115
116Return<void> RadioResponse::getCurrentCallsResponse_1_2(const V1_0::RadioResponseInfo& info,
117 const hidl_vec<V1_2::Call>& calls) {
118 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800119 voiceCb()->getCurrentCallsResponse(toAidl(info), toAidl(calls));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700120 return {};
121}
122
123Return<void> RadioResponse::getCurrentCallsResponse_1_6(const V1_6::RadioResponseInfo& info,
124 const hidl_vec<V1_6::Call>& calls) {
125 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800126 voiceCb()->getCurrentCallsResponse(toAidl(info), toAidl(calls));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700127 return {};
128}
129
130Return<void> RadioResponse::getLastCallFailCauseResponse(
131 const V1_0::RadioResponseInfo& info, const V1_0::LastCallFailCauseInfo& failCauseinfo) {
132 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800133 voiceCb()->getLastCallFailCauseResponse(toAidl(info), toAidl(failCauseinfo));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700134 return {};
135}
136
137Return<void> RadioResponse::getMuteResponse(const V1_0::RadioResponseInfo& info, bool enable) {
138 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800139 voiceCb()->getMuteResponse(toAidl(info), enable);
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700140 return {};
141}
142
143Return<void> RadioResponse::getPreferredVoicePrivacyResponse(const V1_0::RadioResponseInfo& info,
144 bool enable) {
145 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800146 voiceCb()->getPreferredVoicePrivacyResponse(toAidl(info), enable);
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700147 return {};
148}
149
150Return<void> RadioResponse::getTTYModeResponse(const V1_0::RadioResponseInfo& info,
151 V1_0::TtyMode mode) {
152 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800153 voiceCb()->getTtyModeResponse(toAidl(info), aidl::TtyMode(mode));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700154 return {};
155}
156
157Return<void> RadioResponse::handleStkCallSetupRequestFromSimResponse(
158 const V1_0::RadioResponseInfo& info) {
159 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800160 voiceCb()->handleStkCallSetupRequestFromSimResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700161 return {};
162}
163
164Return<void> RadioResponse::hangupConnectionResponse(const V1_0::RadioResponseInfo& info) {
165 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800166 voiceCb()->hangupConnectionResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700167 return {};
168}
169
170Return<void> RadioResponse::hangupForegroundResumeBackgroundResponse(
171 const V1_0::RadioResponseInfo& info) {
172 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800173 voiceCb()->hangupForegroundResumeBackgroundResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700174 return {};
175}
176
177Return<void> RadioResponse::hangupWaitingOrBackgroundResponse(const V1_0::RadioResponseInfo& info) {
178 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800179 voiceCb()->hangupWaitingOrBackgroundResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700180 return {};
181}
182
183Return<void> RadioResponse::rejectCallResponse(const V1_0::RadioResponseInfo& info) {
184 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800185 voiceCb()->rejectCallResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700186 return {};
187}
188
189Return<void> RadioResponse::sendBurstDtmfResponse(const V1_0::RadioResponseInfo& info) {
190 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800191 voiceCb()->sendBurstDtmfResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700192 return {};
193}
194
195Return<void> RadioResponse::sendCDMAFeatureCodeResponse(const V1_0::RadioResponseInfo& info) {
196 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800197 voiceCb()->sendCdmaFeatureCodeResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700198 return {};
199}
200
201Return<void> RadioResponse::sendDtmfResponse(const V1_0::RadioResponseInfo& info) {
202 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800203 voiceCb()->sendDtmfResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700204 return {};
205}
206
Sarah Chinf746a912022-01-28 15:54:36 -0800207Return<void> RadioResponse::sendUssdResponse(const V1_0::RadioResponseInfo& info) {
208 LOG_CALL << info.serial;
209 voiceCb()->sendUssdResponse(toAidl(info));
210 return {};
211}
212
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700213Return<void> RadioResponse::separateConnectionResponse(const V1_0::RadioResponseInfo& info) {
214 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800215 voiceCb()->separateConnectionResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700216 return {};
217}
218
219Return<void> RadioResponse::setCallForwardResponse(const V1_0::RadioResponseInfo& info) {
220 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800221 voiceCb()->setCallForwardResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700222 return {};
223}
224
225Return<void> RadioResponse::setCallWaitingResponse(const V1_0::RadioResponseInfo& info) {
226 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800227 voiceCb()->setCallWaitingResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700228 return {};
229}
230
231Return<void> RadioResponse::setClirResponse(const V1_0::RadioResponseInfo& info) {
232 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800233 voiceCb()->setClirResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700234 return {};
235}
236
237Return<void> RadioResponse::setMuteResponse(const V1_0::RadioResponseInfo& info) {
238 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800239 voiceCb()->setMuteResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700240 return {};
241}
242
243Return<void> RadioResponse::setPreferredVoicePrivacyResponse(const V1_0::RadioResponseInfo& info) {
244 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800245 voiceCb()->setPreferredVoicePrivacyResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700246 return {};
247}
248
249Return<void> RadioResponse::setTTYModeResponse(const V1_0::RadioResponseInfo& info) {
250 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800251 voiceCb()->setTtyModeResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700252 return {};
253}
254
255Return<void> RadioResponse::startDtmfResponse(const V1_0::RadioResponseInfo& info) {
256 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800257 voiceCb()->startDtmfResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700258 return {};
259}
260
261Return<void> RadioResponse::stopDtmfResponse(const V1_0::RadioResponseInfo& info) {
262 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800263 voiceCb()->stopDtmfResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700264 return {};
265}
266
267Return<void> RadioResponse::switchWaitingOrHoldingAndActiveResponse(
268 const V1_0::RadioResponseInfo& info) {
269 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800270 voiceCb()->switchWaitingOrHoldingAndActiveResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700271 return {};
272}
273
274} // namespace android::hardware::radio::compat