• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2025 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 
16 #include "ohos.nfc.controller.nfcController.proj.hpp"
17 #include "ohos.nfc.controller.nfcController.impl.hpp"
18 #include "taihe/runtime.hpp"
19 
20 #include "loghelper.h"
21 #include "nfc_controller.h"
22 #include "nfc_taihe_controller_event.h"
23 
24 using namespace taihe;
25 using namespace ohos::nfc::controller::nfcController;
26 
27 namespace {
isNfcAvailable()28 bool isNfcAvailable()
29 {
30     InfoLog("isNfcAvailable, enter");
31     return OHOS::NFC::KITS::NfcController::GetInstance().IsNfcAvailable();
32 }
33 
onNfcStateChange(callback_view<void (NfcState)> callback)34 void onNfcStateChange(callback_view<void(NfcState)> callback)
35 {
36     InfoLog("onNfcStateChange, enter");
37     OHOS::NFC::KITS::NfcStateEventRegister::GetInstance().Register(callback);
38 }
39 
offNfcStateChange(optional_view<callback<void (NfcState)>> callback)40 void offNfcStateChange(optional_view<callback<void(NfcState)>> callback)
41 {
42     InfoLog("offNfcStateChange, enter");
43     OHOS::NFC::KITS::NfcStateEventRegister::GetInstance().Unregister();
44 }
45 
openNfc()46 bool openNfc()
47 {
48     InfoLog("openNfc, enter");
49     int status = OHOS::NFC::KITS::NfcController::GetInstance().TurnOn();
50     return (status == OHOS::NFC::KITS::ERR_NONE);
51 }
52 
enableNfc()53 void enableNfc()
54 {
55     InfoLog("enableNfc, enter");
56     OHOS::NFC::KITS::NfcController::GetInstance().TurnOn();
57 }
58 
closeNfc()59 bool closeNfc()
60 {
61     InfoLog("closeNfc, enter");
62     int status = OHOS::NFC::KITS::NfcController::GetInstance().TurnOff();
63     return (status == OHOS::NFC::KITS::ERR_NONE);
64 }
65 
disableNfc()66 void disableNfc()
67 {
68     InfoLog("disableNfc, enter");
69     OHOS::NFC::KITS::NfcController::GetInstance().TurnOff();
70 }
71 
isNfcOpen()72 bool isNfcOpen()
73 {
74     InfoLog("isNfcOpen, enter");
75     bool isOpen = false;
76     int statusCode = OHOS::NFC::KITS::NfcController::GetInstance().IsNfcOpen(isOpen);
77     if (statusCode != OHOS::NFC::KITS::ERR_NONE) {
78         ErrorLog("isNfcOpen, statusCode = %{public}d", statusCode);
79     }
80     return isOpen;
81 }
82 
getNfcState()83 NfcState getNfcState()
84 {
85     InfoLog("getNfcState, enter");
86     int nfcState = OHOS::NFC::KITS::NfcController::GetInstance().GetNfcState();
87     return  NfcState::from_value(nfcState);
88 }
89 }  // namespace
90 
91 // Since these macros are auto-generate, lint will cause false positive.
92 // NOLINTBEGIN
93 TH_EXPORT_CPP_API_isNfcAvailable(isNfcAvailable);
94 TH_EXPORT_CPP_API_onNfcStateChange(onNfcStateChange);
95 TH_EXPORT_CPP_API_offNfcStateChange(offNfcStateChange);
96 TH_EXPORT_CPP_API_openNfc(openNfc);
97 TH_EXPORT_CPP_API_enableNfc(enableNfc);
98 TH_EXPORT_CPP_API_closeNfc(closeNfc);
99 TH_EXPORT_CPP_API_disableNfc(disableNfc);
100 TH_EXPORT_CPP_API_isNfcOpen(isNfcOpen);
101 TH_EXPORT_CPP_API_getNfcState(getNfcState);
102 // NOLINTEND
103