1 /* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 #ifndef NCI_ADAPTATIONS_H 16 #define NCI_ADAPTATIONS_H 17 18 #include "infc_nci.h" 19 20 namespace OHOS { 21 namespace NFC { 22 namespace NCI { 23 class NciAdaptations : public INfcNci { 24 public: 25 explicit NciAdaptations(); 26 ~NciAdaptations() override; 27 void NfaInit(tHAL_NFC_ENTRY* halEntryTbl) override; 28 tNFA_STATUS NfaEnable(tNFA_DM_CBACK* dmCback, tNFA_CONN_CBACK* connCback) override; 29 tNFA_STATUS NfaDisable(bool graceful) override; 30 tNFA_STATUS NfaEnablePolling(tNFA_TECHNOLOGY_MASK pollMask) override; 31 tNFA_STATUS NfaDisablePolling(void) override; 32 tNFA_STATUS NfaEnableListening(void) override; 33 tNFA_STATUS NfaDisableListening(void) override; 34 tNFA_STATUS NfaStartRfDiscovery(void) override; 35 tNFA_STATUS NfaStopRfDiscovery(void) override; 36 tNFA_STATUS NfaSetRfDiscoveryDuration(uint16_t discoveryPeriodMs) override; 37 tNFA_STATUS NfaSelect(uint8_t rfDiscId, tNFA_NFC_PROTOCOL protocol, tNFA_INTF_TYPE rfInterface) override; 38 tNFA_STATUS NfaDeactivate(bool sleepMode) override; 39 tNFA_STATUS NfaSendRawFrame(uint8_t* rawData, uint16_t dataLen, uint16_t presenceCheckStartDelay) override; 40 tNFA_STATUS NfaRegisterNDefTypeHandler(bool handleWholeMessage, 41 tNFA_TNF tnf, 42 uint8_t* typeName, 43 uint8_t typeNameLen, 44 tNFA_NDEF_CBACK* ndefCback) override; 45 tNFA_STATUS NfaRwDetectNdef(void) override; 46 tNFA_STATUS NfaRwReadNdef(void) override; 47 tNFA_STATUS NfaRwWriteNdef(uint8_t* data, uint32_t len) override; 48 tNFA_STATUS NfaRwPresenceCheck(tNFA_RW_PRES_CHK_OPTION option) override; 49 tNFA_STATUS NfaRwFormatTag(void) override; 50 tNFA_STATUS NfaRwSetTagReadOnly(bool hardLock) override; 51 void NdefMsgInit(uint8_t* msg, uint32_t maxSize, uint32_t* curSize) override; 52 tNDEF_STATUS NdefMsgAddRec(uint8_t* msg, 53 uint32_t maxSize, 54 uint32_t* curSize, 55 uint8_t tnf, 56 uint8_t* type, 57 uint8_t typeLen, 58 uint8_t* id, 59 uint8_t idLen, 60 uint8_t* payload, 61 uint32_t payloadLen) override; 62 uint8_t NfcGetNciVersion() override; 63 void NfcAdaptationInitialize() override; 64 void NfcAdaptationFinalize() override; 65 tHAL_NFC_ENTRY* NfcAdaptationGetHalEntryFuncs() override; 66 void NfcAdaptationDownloadFirmware() override; 67 void NfcAdaptationDump(int fd) override; 68 void NfcAdaptationFactoryReset() override; 69 void NfcAdaptationDeviceShutdown() override; 70 tNFA_STATUS NfcHciRegister(char* appName, tNFA_HCI_CBACK* cback, bool sendConnEvts) override; 71 tNFA_STATUS NfcEeGetInfo(uint8_t* numNfcee, tNFA_EE_INFO* info) override; 72 tNFA_STATUS NfcEeRegister(tNFA_EE_CBACK* cback) override; 73 tNFA_STATUS NfcEeDeregister(tNFA_EE_CBACK* cback) override; 74 tNFA_STATUS NfcEeSetDefaultTechRouting(tNFA_HANDLE eeHandle, 75 tNFA_TECHNOLOGY_MASK technologiesSwitchOn, 76 tNFA_TECHNOLOGY_MASK technologiesSwitchOff, 77 tNFA_TECHNOLOGY_MASK technologiesBatteryOff, 78 tNFA_TECHNOLOGY_MASK technologiesScreenLock, 79 tNFA_TECHNOLOGY_MASK technologiesScreenOff, 80 tNFA_TECHNOLOGY_MASK technologiesScreenOffLock) override; 81 tNFA_STATUS NfcEeClearDefaultTechRouting(tNFA_HANDLE eeHandle, 82 tNFA_TECHNOLOGY_MASK clearTechnology) override; 83 tNFA_STATUS NfcEeSetDefaultProtoRouting(tNFA_HANDLE eeHandle, 84 tNFA_PROTOCOL_MASK protocolsSwitchOn, 85 tNFA_PROTOCOL_MASK protocolsSwitchOff, 86 tNFA_PROTOCOL_MASK protocolsBatteryOff, 87 tNFA_PROTOCOL_MASK technologiesScreenLock, 88 tNFA_PROTOCOL_MASK technologiesScreenOff, 89 tNFA_PROTOCOL_MASK technologiesScreenOffLock) override; 90 tNFA_STATUS NfcEeClearDefaultProtoRouting(tNFA_HANDLE eeHandle, tNFA_PROTOCOL_MASK clearProtocol) override; 91 tNFA_STATUS NfcEeAddAidRouting( 92 tNFA_HANDLE eeHandle, uint8_t aidLen, uint8_t* aid, tNFA_EE_PWR_STATE powerState, uint8_t aidInfo) override; 93 tNFA_STATUS NfcEeRemoveAidRouting(uint8_t aidLen, uint8_t* aid) override; 94 tNFA_STATUS NfcEeUpdateNow(void) override; 95 tNFA_STATUS NfcEeModeSet(tNFA_HANDLE eeHandle, tNFA_EE_MD mode) override; 96 uint16_t NfcGetAidTableSize() override; 97 tNFA_STATUS NfcCeSetIsoDepListenTech(tNFA_TECHNOLOGY_MASK techMask) override; 98 tNFA_STATUS NfcCeRegisterAidOnDH(uint8_t aid[NFC_MAX_AID_LEN], 99 uint8_t aidLen, 100 tNFA_CONN_CBACK* connCback) override; 101 tNFA_STATUS NfcSetPowerSubStateForScreenState(uint8_t screenState) override; 102 tNFA_STATUS NfcSetConfig(tNFA_PMID paramId, uint8_t length, uint8_t* data) override; 103 104 private: 105 }; 106 } // namespace NCI 107 } // namespace NFC 108 } // namespace OHOS 109 #endif // NCI_ADAPTATIONS_H 110