Home | History | Annotate | Download | only in default
      1 /*
      2  * Copyright (C) 2018 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 #ifndef ANDROID_HARDWARE_RADIO_V1_2_RADIO_H
     17 #define ANDROID_HARDWARE_RADIO_V1_2_RADIO_H
     18 
     19 #include <android/hardware/radio/1.2/IRadio.h>
     20 #include <android/hardware/radio/1.2/IRadioIndication.h>
     21 #include <android/hardware/radio/1.2/IRadioResponse.h>
     22 #include <hidl/MQDescriptor.h>
     23 #include <hidl/Status.h>
     24 #include <log/log.h>
     25 
     26 namespace android {
     27 namespace hardware {
     28 namespace radio {
     29 namespace V1_2 {
     30 namespace implementation {
     31 
     32 using ::android::hardware::hidl_array;
     33 using ::android::hardware::hidl_memory;
     34 using ::android::hardware::hidl_string;
     35 using ::android::hardware::hidl_vec;
     36 using ::android::hardware::Return;
     37 using ::android::hardware::Void;
     38 using ::android::sp;
     39 
     40 struct Radio : public IRadio {
     41     sp<::android::hardware::radio::V1_0::IRadioResponse> mRadioResponse;
     42     sp<::android::hardware::radio::V1_0::IRadioIndication> mRadioIndication;
     43     sp<::android::hardware::radio::V1_1::IRadioResponse> mRadioResponseV1_1;
     44     sp<::android::hardware::radio::V1_1::IRadioIndication> mRadioIndicationV1_1;
     45     sp<::android::hardware::radio::V1_2::IRadioResponse> mRadioResponseV1_2;
     46     sp<::android::hardware::radio::V1_2::IRadioIndication> mRadioIndicationV1_2;
     47 
     48     // Methods from ::android::hardware::radio::V1_0::IRadio follow.
     49     Return<void> setResponseFunctions(
     50         const sp<::android::hardware::radio::V1_0::IRadioResponse>& radioResponse,
     51         const sp<::android::hardware::radio::V1_0::IRadioIndication>& radioIndication) override;
     52     Return<void> getIccCardStatus(int32_t serial) override;
     53     Return<void> supplyIccPinForApp(int32_t serial, const hidl_string& pin,
     54                                     const hidl_string& aid) override;
     55     Return<void> supplyIccPukForApp(int32_t serial, const hidl_string& puk, const hidl_string& pin,
     56                                     const hidl_string& aid) override;
     57     Return<void> supplyIccPin2ForApp(int32_t serial, const hidl_string& pin2,
     58                                      const hidl_string& aid) override;
     59     Return<void> supplyIccPuk2ForApp(int32_t serial, const hidl_string& puk2,
     60                                      const hidl_string& pin2, const hidl_string& aid) override;
     61     Return<void> changeIccPinForApp(int32_t serial, const hidl_string& oldPin,
     62                                     const hidl_string& newPin, const hidl_string& aid) override;
     63     Return<void> changeIccPin2ForApp(int32_t serial, const hidl_string& oldPin2,
     64                                      const hidl_string& newPin2, const hidl_string& aid) override;
     65     Return<void> supplyNetworkDepersonalization(int32_t serial, const hidl_string& netPin) override;
     66     Return<void> getCurrentCalls(int32_t serial) override;
     67     Return<void> dial(int32_t serial,
     68                       const ::android::hardware::radio::V1_0::Dial& dialInfo) override;
     69     Return<void> getImsiForApp(int32_t serial, const hidl_string& aid) override;
     70     Return<void> hangup(int32_t serial, int32_t gsmIndex) override;
     71     Return<void> hangupWaitingOrBackground(int32_t serial) override;
     72     Return<void> hangupForegroundResumeBackground(int32_t serial) override;
     73     Return<void> switchWaitingOrHoldingAndActive(int32_t serial) override;
     74     Return<void> conference(int32_t serial) override;
     75     Return<void> rejectCall(int32_t serial) override;
     76     Return<void> getLastCallFailCause(int32_t serial) override;
     77     Return<void> getSignalStrength(int32_t serial) override;
     78     Return<void> getVoiceRegistrationState(int32_t serial) override;
     79     Return<void> getDataRegistrationState(int32_t serial) override;
     80     Return<void> getOperator(int32_t serial) override;
     81     Return<void> setRadioPower(int32_t serial, bool on) override;
     82     Return<void> sendDtmf(int32_t serial, const hidl_string& s) override;
     83     Return<void> sendSms(int32_t serial,
     84                          const ::android::hardware::radio::V1_0::GsmSmsMessage& message) override;
     85     Return<void> sendSMSExpectMore(
     86         int32_t serial, const ::android::hardware::radio::V1_0::GsmSmsMessage& message) override;
     87     Return<void> setupDataCall(
     88         int32_t serial, ::android::hardware::radio::V1_0::RadioTechnology radioTechnology,
     89         const ::android::hardware::radio::V1_0::DataProfileInfo& dataProfileInfo,
     90         bool modemCognitive, bool roamingAllowed, bool isRoaming) override;
     91     Return<void> iccIOForApp(int32_t serial,
     92                              const ::android::hardware::radio::V1_0::IccIo& iccIo) override;
     93     Return<void> sendUssd(int32_t serial, const hidl_string& ussd) override;
     94     Return<void> cancelPendingUssd(int32_t serial) override;
     95     Return<void> getClir(int32_t serial) override;
     96     Return<void> setClir(int32_t serial, int32_t status) override;
     97     Return<void> getCallForwardStatus(
     98         int32_t serial, const ::android::hardware::radio::V1_0::CallForwardInfo& callInfo) override;
     99     Return<void> setCallForward(
    100         int32_t serial, const ::android::hardware::radio::V1_0::CallForwardInfo& callInfo) override;
    101     Return<void> getCallWaiting(int32_t serial, int32_t serviceClass) override;
    102     Return<void> setCallWaiting(int32_t serial, bool enable, int32_t serviceClass) override;
    103     Return<void> acknowledgeLastIncomingGsmSms(
    104         int32_t serial, bool success,
    105         ::android::hardware::radio::V1_0::SmsAcknowledgeFailCause cause) override;
    106     Return<void> acceptCall(int32_t serial) override;
    107     Return<void> deactivateDataCall(int32_t serial, int32_t cid, bool reasonRadioShutDown) override;
    108     Return<void> getFacilityLockForApp(int32_t serial, const hidl_string& facility,
    109                                        const hidl_string& password, int32_t serviceClass,
    110                                        const hidl_string& appId) override;
    111     Return<void> setFacilityLockForApp(int32_t serial, const hidl_string& facility, bool lockState,
    112                                        const hidl_string& password, int32_t serviceClass,
    113                                        const hidl_string& appId) override;
    114     Return<void> setBarringPassword(int32_t serial, const hidl_string& facility,
    115                                     const hidl_string& oldPassword,
    116                                     const hidl_string& newPassword) override;
    117     Return<void> getNetworkSelectionMode(int32_t serial) override;
    118     Return<void> setNetworkSelectionModeAutomatic(int32_t serial) override;
    119     Return<void> setNetworkSelectionModeManual(int32_t serial,
    120                                                const hidl_string& operatorNumeric) override;
    121     Return<void> getAvailableNetworks(int32_t serial) override;
    122     Return<void> startDtmf(int32_t serial, const hidl_string& s) override;
    123     Return<void> stopDtmf(int32_t serial) override;
    124     Return<void> getBasebandVersion(int32_t serial) override;
    125     Return<void> separateConnection(int32_t serial, int32_t gsmIndex) override;
    126     Return<void> setMute(int32_t serial, bool enable) override;
    127     Return<void> getMute(int32_t serial) override;
    128     Return<void> getClip(int32_t serial) override;
    129     Return<void> getDataCallList(int32_t serial) override;
    130     Return<void> setSuppServiceNotifications(int32_t serial, bool enable) override;
    131     Return<void> writeSmsToSim(
    132         int32_t serial,
    133         const ::android::hardware::radio::V1_0::SmsWriteArgs& smsWriteArgs) override;
    134     Return<void> deleteSmsOnSim(int32_t serial, int32_t index) override;
    135     Return<void> setBandMode(int32_t serial,
    136                              ::android::hardware::radio::V1_0::RadioBandMode mode) override;
    137     Return<void> getAvailableBandModes(int32_t serial) override;
    138     Return<void> sendEnvelope(int32_t serial, const hidl_string& command) override;
    139     Return<void> sendTerminalResponseToSim(int32_t serial,
    140                                            const hidl_string& commandResponse) override;
    141     Return<void> handleStkCallSetupRequestFromSim(int32_t serial, bool accept) override;
    142     Return<void> explicitCallTransfer(int32_t serial) override;
    143     Return<void> setPreferredNetworkType(
    144         int32_t serial, ::android::hardware::radio::V1_0::PreferredNetworkType nwType) override;
    145     Return<void> getPreferredNetworkType(int32_t serial) override;
    146     Return<void> getNeighboringCids(int32_t serial) override;
    147     Return<void> setLocationUpdates(int32_t serial, bool enable) override;
    148     Return<void> setCdmaSubscriptionSource(
    149         int32_t serial, ::android::hardware::radio::V1_0::CdmaSubscriptionSource cdmaSub) override;
    150     Return<void> setCdmaRoamingPreference(
    151         int32_t serial, ::android::hardware::radio::V1_0::CdmaRoamingType type) override;
    152     Return<void> getCdmaRoamingPreference(int32_t serial) override;
    153     Return<void> setTTYMode(int32_t serial,
    154                             ::android::hardware::radio::V1_0::TtyMode mode) override;
    155     Return<void> getTTYMode(int32_t serial) override;
    156     Return<void> setPreferredVoicePrivacy(int32_t serial, bool enable) override;
    157     Return<void> getPreferredVoicePrivacy(int32_t serial) override;
    158     Return<void> sendCDMAFeatureCode(int32_t serial, const hidl_string& featureCode) override;
    159     Return<void> sendBurstDtmf(int32_t serial, const hidl_string& dtmf, int32_t on,
    160                                int32_t off) override;
    161     Return<void> sendCdmaSms(int32_t serial,
    162                              const ::android::hardware::radio::V1_0::CdmaSmsMessage& sms) override;
    163     Return<void> acknowledgeLastIncomingCdmaSms(
    164         int32_t serial, const ::android::hardware::radio::V1_0::CdmaSmsAck& smsAck) override;
    165     Return<void> getGsmBroadcastConfig(int32_t serial) override;
    166     Return<void> setGsmBroadcastConfig(
    167         int32_t serial,
    168         const hidl_vec<::android::hardware::radio::V1_0::GsmBroadcastSmsConfigInfo>& configInfo)
    169         override;
    170     Return<void> setGsmBroadcastActivation(int32_t serial, bool activate) override;
    171     Return<void> getCdmaBroadcastConfig(int32_t serial) override;
    172     Return<void> setCdmaBroadcastConfig(
    173         int32_t serial,
    174         const hidl_vec<::android::hardware::radio::V1_0::CdmaBroadcastSmsConfigInfo>& configInfo)
    175         override;
    176     Return<void> setCdmaBroadcastActivation(int32_t serial, bool activate) override;
    177     Return<void> getCDMASubscription(int32_t serial) override;
    178     Return<void> writeSmsToRuim(
    179         int32_t serial, const ::android::hardware::radio::V1_0::CdmaSmsWriteArgs& cdmaSms) override;
    180     Return<void> deleteSmsOnRuim(int32_t serial, int32_t index) override;
    181     Return<void> getDeviceIdentity(int32_t serial) override;
    182     Return<void> exitEmergencyCallbackMode(int32_t serial) override;
    183     Return<void> getSmscAddress(int32_t serial) override;
    184     Return<void> setSmscAddress(int32_t serial, const hidl_string& smsc) override;
    185     Return<void> reportSmsMemoryStatus(int32_t serial, bool available) override;
    186     Return<void> reportStkServiceIsRunning(int32_t serial) override;
    187     Return<void> getCdmaSubscriptionSource(int32_t serial) override;
    188     Return<void> requestIsimAuthentication(int32_t serial, const hidl_string& challenge) override;
    189     Return<void> acknowledgeIncomingGsmSmsWithPdu(int32_t serial, bool success,
    190                                                   const hidl_string& ackPdu) override;
    191     Return<void> sendEnvelopeWithStatus(int32_t serial, const hidl_string& contents) override;
    192     Return<void> getVoiceRadioTechnology(int32_t serial) override;
    193     Return<void> getCellInfoList(int32_t serial) override;
    194     Return<void> setCellInfoListRate(int32_t serial, int32_t rate) override;
    195     Return<void> setInitialAttachApn(
    196         int32_t serial, const ::android::hardware::radio::V1_0::DataProfileInfo& dataProfileInfo,
    197         bool modemCognitive, bool isRoaming) override;
    198     Return<void> getImsRegistrationState(int32_t serial) override;
    199     Return<void> sendImsSms(
    200         int32_t serial, const ::android::hardware::radio::V1_0::ImsSmsMessage& message) override;
    201     Return<void> iccTransmitApduBasicChannel(
    202         int32_t serial, const ::android::hardware::radio::V1_0::SimApdu& message) override;
    203     Return<void> iccOpenLogicalChannel(int32_t serial, const hidl_string& aid, int32_t p2) override;
    204     Return<void> iccCloseLogicalChannel(int32_t serial, int32_t channelId) override;
    205     Return<void> iccTransmitApduLogicalChannel(
    206         int32_t serial, const ::android::hardware::radio::V1_0::SimApdu& message) override;
    207     Return<void> nvReadItem(int32_t serial,
    208                             ::android::hardware::radio::V1_0::NvItem itemId) override;
    209     Return<void> nvWriteItem(int32_t serial,
    210                              const ::android::hardware::radio::V1_0::NvWriteItem& item) override;
    211     Return<void> nvWriteCdmaPrl(int32_t serial, const hidl_vec<uint8_t>& prl) override;
    212     Return<void> nvResetConfig(int32_t serial,
    213                                ::android::hardware::radio::V1_0::ResetNvType resetType) override;
    214     Return<void> setUiccSubscription(
    215         int32_t serial, const ::android::hardware::radio::V1_0::SelectUiccSub& uiccSub) override;
    216     Return<void> setDataAllowed(int32_t serial, bool allow) override;
    217     Return<void> getHardwareConfig(int32_t serial) override;
    218     Return<void> requestIccSimAuthentication(int32_t serial, int32_t authContext,
    219                                              const hidl_string& authData,
    220                                              const hidl_string& aid) override;
    221     Return<void> setDataProfile(
    222         int32_t serial, const hidl_vec<::android::hardware::radio::V1_0::DataProfileInfo>& profiles,
    223         bool isRoaming) override;
    224     Return<void> requestShutdown(int32_t serial) override;
    225     Return<void> getRadioCapability(int32_t serial) override;
    226     Return<void> setRadioCapability(
    227         int32_t serial, const ::android::hardware::radio::V1_0::RadioCapability& rc) override;
    228     Return<void> startLceService(int32_t serial, int32_t reportInterval, bool pullMode) override;
    229     Return<void> stopLceService(int32_t serial) override;
    230     Return<void> pullLceData(int32_t serial) override;
    231     Return<void> getModemActivityInfo(int32_t serial) override;
    232     Return<void> setAllowedCarriers(
    233         int32_t serial, bool allAllowed,
    234         const ::android::hardware::radio::V1_0::CarrierRestrictions& carriers) override;
    235     Return<void> getAllowedCarriers(int32_t serial) override;
    236     Return<void> sendDeviceState(int32_t serial,
    237                                  ::android::hardware::radio::V1_0::DeviceStateType deviceStateType,
    238                                  bool state) override;
    239     Return<void> setIndicationFilter(int32_t serial,
    240                                      hidl_bitfield<IndicationFilter> indicationFilter) override;
    241     Return<void> setSimCardPower(int32_t serial, bool powerUp) override;
    242     Return<void> responseAcknowledgement() override;
    243 
    244     // Methods from ::android::hardware::radio::V1_1::IRadio follow.
    245     Return<void> setCarrierInfoForImsiEncryption(
    246         int32_t serial,
    247         const ::android::hardware::radio::V1_1::ImsiEncryptionInfo& imsiEncryptionInfo) override;
    248     Return<void> setSimCardPower_1_1(
    249         int32_t serial, ::android::hardware::radio::V1_1::CardPowerState powerUp) override;
    250     Return<void> startNetworkScan(
    251         int32_t serial,
    252         const ::android::hardware::radio::V1_1::NetworkScanRequest& request) override;
    253     Return<void> stopNetworkScan(int32_t serial) override;
    254     Return<void> startKeepalive(
    255         int32_t serial,
    256         const ::android::hardware::radio::V1_1::KeepaliveRequest& keepalive) override;
    257     Return<void> stopKeepalive(int32_t serial, int32_t sessionHandle) override;
    258 
    259     // Methods from ::android::hardware::radio::V1_2::IRadio follow.
    260     Return<void> startNetworkScan_1_2(
    261         int32_t serial,
    262         const ::android::hardware::radio::V1_2::NetworkScanRequest& request) override;
    263     Return<void> setIndicationFilter_1_2(int32_t serial,
    264                                          hidl_bitfield<IndicationFilter> indicationFilter) override;
    265     Return<void> setSignalStrengthReportingCriteria(
    266         int32_t serial, int32_t hysteresisMs, int32_t hysteresisDb,
    267         const hidl_vec<int32_t>& thresholdsDbm,
    268         ::android::hardware::radio::V1_2::AccessNetwork accessNetwork) override;
    269     Return<void> setLinkCapacityReportingCriteria(
    270         int32_t serial, int32_t hysteresisMs, int32_t hysteresisDlKbps, int32_t hysteresisUlKbps,
    271         const hidl_vec<int32_t>& thresholdsDownlinkKbps,
    272         const hidl_vec<int32_t>& thresholdsUplinkKbps,
    273         ::android::hardware::radio::V1_2::AccessNetwork accessNetwork) override;
    274     Return<void> setupDataCall_1_2(
    275         int32_t serial, ::android::hardware::radio::V1_2::AccessNetwork accessNetwork,
    276         const ::android::hardware::radio::V1_0::DataProfileInfo& dataProfileInfo,
    277         bool modemCognitive, bool roamingAllowed, bool isRoaming,
    278         ::android::hardware::radio::V1_2::DataRequestReason reason,
    279         const hidl_vec<hidl_string>& addresses, const hidl_vec<hidl_string>& dnses) override;
    280     Return<void> deactivateDataCall_1_2(
    281         int32_t serial, int32_t cid,
    282         ::android::hardware::radio::V1_2::DataRequestReason reason) override;
    283 };
    284 
    285 }  // namespace implementation
    286 }  // namespace V1_2
    287 }  // namespace radio
    288 }  // namespace hardware
    289 }  // namespace android
    290 
    291 #endif  // ANDROID_HARDWARE_RADIO_V1_2_RADIO_H
    292