blob: 01e98f1dd6a7be0d6042a72f72ee7c84586add4f [file] [log] [blame]
Sarah Chinb071f8a2019-11-07 10:43:16 -08001/*
2 * Copyright (C) 2019 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.1 (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.1
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 "RadioConfig.h"
18
19namespace android {
20namespace hardware {
21namespace radio {
22namespace config {
23namespace V1_3 {
24namespace implementation {
25
26using namespace ::android::hardware::radio::V1_0;
Sarah Chinb071f8a2019-11-07 10:43:16 -080027
28// Methods from ::android::hardware::radio::config::V1_0::IRadioConfig follow.
29Return<void> RadioConfig::setResponseFunctions(
30 const sp<V1_0::IRadioConfigResponse>& radioConfigResponse,
31 const sp<V1_0::IRadioConfigIndication>& radioConfigIndication) {
32 mRadioConfigResponse = radioConfigResponse;
33 mRadioConfigIndication = radioConfigIndication;
34
35 mRadioConfigResponseV1_3 =
36 V1_3::IRadioConfigResponse::castFrom(mRadioConfigResponse).withDefault(nullptr);
37 mRadioConfigIndicationV1_3 =
38 V1_3::IRadioConfigIndication::castFrom(mRadioConfigIndication).withDefault(nullptr);
39 if (mRadioConfigResponseV1_3 == nullptr || mRadioConfigIndicationV1_3 == nullptr) {
40 mRadioConfigResponseV1_3 = nullptr;
41 mRadioConfigIndicationV1_3 = nullptr;
42 }
43
44 mRadioConfigResponseV1_2 =
45 V1_2::IRadioConfigResponse::castFrom(mRadioConfigResponse).withDefault(nullptr);
46 mRadioConfigIndicationV1_2 =
47 V1_2::IRadioConfigIndication::castFrom(mRadioConfigIndication).withDefault(nullptr);
48 if (mRadioConfigResponseV1_2 == nullptr || mRadioConfigIndicationV1_2 == nullptr) {
49 mRadioConfigResponseV1_2 = nullptr;
50 mRadioConfigIndicationV1_2 = nullptr;
51 }
52
53 mRadioConfigResponseV1_1 =
54 V1_1::IRadioConfigResponse::castFrom(mRadioConfigResponse).withDefault(nullptr);
55 mRadioConfigIndicationV1_1 =
56 V1_1::IRadioConfigIndication::castFrom(mRadioConfigIndication).withDefault(nullptr);
57 if (mRadioConfigResponseV1_1 == nullptr || mRadioConfigIndicationV1_1 == nullptr) {
58 mRadioConfigResponseV1_1 = nullptr;
59 mRadioConfigIndicationV1_1 = nullptr;
60 }
61
62 return Void();
63}
64
65Return<void> RadioConfig::getSimSlotsStatus(int32_t /* serial */) {
66 hidl_vec<V1_0::SimSlotStatus> slotStatus;
67 RadioResponseInfo info;
68 mRadioConfigResponse->getSimSlotsStatusResponse(info, slotStatus);
69 return Void();
70}
71
72Return<void> RadioConfig::setSimSlotsMapping(int32_t /* serial */,
73 const hidl_vec<uint32_t>& /* slotMap */) {
74 RadioResponseInfo info;
75 mRadioConfigResponse->setSimSlotsMappingResponse(info);
76 return Void();
77}
78
79// Methods from ::android::hardware::radio::config::V1_1::IRadioConfig follow.
80Return<void> RadioConfig::getPhoneCapability(int32_t /* serial */) {
81 V1_1::PhoneCapability phoneCapability;
82 RadioResponseInfo info;
83 mRadioConfigResponseV1_1->getPhoneCapabilityResponse(info, phoneCapability);
84 return Void();
85}
86
87Return<void> RadioConfig::setPreferredDataModem(int32_t /* serial */, uint8_t /* modemId */) {
88 RadioResponseInfo info;
89 mRadioConfigResponseV1_1->setPreferredDataModemResponse(info);
90 return Void();
91}
92
93Return<void> RadioConfig::setModemsConfig(int32_t /* serial */,
94 const V1_1::ModemsConfig& /* modemsConfig */) {
95 RadioResponseInfo info;
96 mRadioConfigResponseV1_1->setModemsConfigResponse(info);
97 return Void();
98}
99
100Return<void> RadioConfig::getModemsConfig(int32_t /* serial */) {
101 V1_1::ModemsConfig modemsConfig;
102 RadioResponseInfo info;
103 mRadioConfigResponseV1_1->getModemsConfigResponse(info, modemsConfig);
104 return Void();
105}
106
Sarah Chine1d1b0b2019-11-20 11:25:02 -0800107// Methods from ::android::hardware::radio::config::V1_3::IRadioConfig follow.
108Return<void> RadioConfig::getPhoneCapability_1_3(int32_t /* serial */) {
109 V1_3::PhoneCapability phoneCapability;
110 RadioResponseInfo info;
111 mRadioConfigResponseV1_3->getPhoneCapabilityResponse_1_3(info, phoneCapability);
112 return Void();
113}
114
Sarah Chinb071f8a2019-11-07 10:43:16 -0800115} // namespace implementation
116} // namespace V1_3
117} // namespace config
118} // namespace radio
119} // namespace hardware
120} // namespace android