blob: d233548233915f4c3f760e80a0bc5ecbe6e45b2e [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
45Return<void> RadioResponse::conferenceResponse(const V1_0::RadioResponseInfo& info) {
46 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080047 voiceCb()->conferenceResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070048 return {};
49}
50
51Return<void> RadioResponse::dialResponse(const V1_0::RadioResponseInfo& info) {
52 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080053 voiceCb()->dialResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070054 return {};
55}
56
57Return<void> RadioResponse::emergencyDialResponse(const V1_0::RadioResponseInfo& info) {
58 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080059 voiceCb()->emergencyDialResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070060 return {};
61}
62
63Return<void> RadioResponse::exitEmergencyCallbackModeResponse(const V1_0::RadioResponseInfo& info) {
64 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080065 voiceCb()->exitEmergencyCallbackModeResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070066 return {};
67}
68
69Return<void> RadioResponse::explicitCallTransferResponse(const V1_0::RadioResponseInfo& info) {
70 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080071 voiceCb()->explicitCallTransferResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070072 return {};
73}
74
75Return<void> RadioResponse::getCallForwardStatusResponse(
76 const V1_0::RadioResponseInfo& info, const hidl_vec<V1_0::CallForwardInfo>& callFwdInfos) {
77 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080078 voiceCb()->getCallForwardStatusResponse(toAidl(info), toAidl(callFwdInfos));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070079 return {};
80}
81
82Return<void> RadioResponse::getCallWaitingResponse(const V1_0::RadioResponseInfo& info, bool enable,
83 int32_t serviceClass) {
84 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080085 voiceCb()->getCallWaitingResponse(toAidl(info), enable, serviceClass);
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070086 return {};
87}
88
89Return<void> RadioResponse::getClipResponse(const V1_0::RadioResponseInfo& info,
90 V1_0::ClipStatus status) {
91 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080092 voiceCb()->getClipResponse(toAidl(info), aidl::ClipStatus(status));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -070093 return {};
94}
95
96Return<void> RadioResponse::getClirResponse(const V1_0::RadioResponseInfo& info, int32_t n,
97 int32_t m) {
98 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080099 voiceCb()->getClirResponse(toAidl(info), n, m);
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700100 return {};
101}
102
103Return<void> RadioResponse::getCurrentCallsResponse(const V1_0::RadioResponseInfo& info,
104 const hidl_vec<V1_0::Call>& calls) {
105 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800106 voiceCb()->getCurrentCallsResponse(toAidl(info), toAidl(calls));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700107 return {};
108}
109
110Return<void> RadioResponse::getCurrentCallsResponse_1_2(const V1_0::RadioResponseInfo& info,
111 const hidl_vec<V1_2::Call>& calls) {
112 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800113 voiceCb()->getCurrentCallsResponse(toAidl(info), toAidl(calls));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700114 return {};
115}
116
117Return<void> RadioResponse::getCurrentCallsResponse_1_6(const V1_6::RadioResponseInfo& info,
118 const hidl_vec<V1_6::Call>& calls) {
119 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800120 voiceCb()->getCurrentCallsResponse(toAidl(info), toAidl(calls));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700121 return {};
122}
123
124Return<void> RadioResponse::getLastCallFailCauseResponse(
125 const V1_0::RadioResponseInfo& info, const V1_0::LastCallFailCauseInfo& failCauseinfo) {
126 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800127 voiceCb()->getLastCallFailCauseResponse(toAidl(info), toAidl(failCauseinfo));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700128 return {};
129}
130
131Return<void> RadioResponse::getMuteResponse(const V1_0::RadioResponseInfo& info, bool enable) {
132 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800133 voiceCb()->getMuteResponse(toAidl(info), enable);
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700134 return {};
135}
136
137Return<void> RadioResponse::getPreferredVoicePrivacyResponse(const V1_0::RadioResponseInfo& info,
138 bool enable) {
139 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800140 voiceCb()->getPreferredVoicePrivacyResponse(toAidl(info), enable);
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700141 return {};
142}
143
144Return<void> RadioResponse::getTTYModeResponse(const V1_0::RadioResponseInfo& info,
145 V1_0::TtyMode mode) {
146 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800147 voiceCb()->getTtyModeResponse(toAidl(info), aidl::TtyMode(mode));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700148 return {};
149}
150
151Return<void> RadioResponse::handleStkCallSetupRequestFromSimResponse(
152 const V1_0::RadioResponseInfo& info) {
153 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800154 voiceCb()->handleStkCallSetupRequestFromSimResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700155 return {};
156}
157
158Return<void> RadioResponse::hangupConnectionResponse(const V1_0::RadioResponseInfo& info) {
159 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800160 voiceCb()->hangupConnectionResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700161 return {};
162}
163
164Return<void> RadioResponse::hangupForegroundResumeBackgroundResponse(
165 const V1_0::RadioResponseInfo& info) {
166 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800167 voiceCb()->hangupForegroundResumeBackgroundResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700168 return {};
169}
170
171Return<void> RadioResponse::hangupWaitingOrBackgroundResponse(const V1_0::RadioResponseInfo& info) {
172 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800173 voiceCb()->hangupWaitingOrBackgroundResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700174 return {};
175}
176
177Return<void> RadioResponse::rejectCallResponse(const V1_0::RadioResponseInfo& info) {
178 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800179 voiceCb()->rejectCallResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700180 return {};
181}
182
183Return<void> RadioResponse::sendBurstDtmfResponse(const V1_0::RadioResponseInfo& info) {
184 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800185 voiceCb()->sendBurstDtmfResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700186 return {};
187}
188
189Return<void> RadioResponse::sendCDMAFeatureCodeResponse(const V1_0::RadioResponseInfo& info) {
190 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800191 voiceCb()->sendCdmaFeatureCodeResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700192 return {};
193}
194
195Return<void> RadioResponse::sendDtmfResponse(const V1_0::RadioResponseInfo& info) {
196 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800197 voiceCb()->sendDtmfResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700198 return {};
199}
200
201Return<void> RadioResponse::separateConnectionResponse(const V1_0::RadioResponseInfo& info) {
202 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800203 voiceCb()->separateConnectionResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700204 return {};
205}
206
207Return<void> RadioResponse::setCallForwardResponse(const V1_0::RadioResponseInfo& info) {
208 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800209 voiceCb()->setCallForwardResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700210 return {};
211}
212
213Return<void> RadioResponse::setCallWaitingResponse(const V1_0::RadioResponseInfo& info) {
214 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800215 voiceCb()->setCallWaitingResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700216 return {};
217}
218
219Return<void> RadioResponse::setClirResponse(const V1_0::RadioResponseInfo& info) {
220 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800221 voiceCb()->setClirResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700222 return {};
223}
224
225Return<void> RadioResponse::setMuteResponse(const V1_0::RadioResponseInfo& info) {
226 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800227 voiceCb()->setMuteResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700228 return {};
229}
230
231Return<void> RadioResponse::setPreferredVoicePrivacyResponse(const V1_0::RadioResponseInfo& info) {
232 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800233 voiceCb()->setPreferredVoicePrivacyResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700234 return {};
235}
236
237Return<void> RadioResponse::setTTYModeResponse(const V1_0::RadioResponseInfo& info) {
238 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800239 voiceCb()->setTtyModeResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700240 return {};
241}
242
243Return<void> RadioResponse::startDtmfResponse(const V1_0::RadioResponseInfo& info) {
244 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800245 voiceCb()->startDtmfResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700246 return {};
247}
248
249Return<void> RadioResponse::stopDtmfResponse(const V1_0::RadioResponseInfo& info) {
250 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800251 voiceCb()->stopDtmfResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700252 return {};
253}
254
255Return<void> RadioResponse::switchWaitingOrHoldingAndActiveResponse(
256 const V1_0::RadioResponseInfo& info) {
257 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800258 voiceCb()->switchWaitingOrHoldingAndActiveResponse(toAidl(info));
Tomasz Wasilczyk6e084182021-11-05 10:53:55 -0700259 return {};
260}
261
262} // namespace android::hardware::radio::compat