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 16 #include "napi_inner_scan.h" 17 #include "scan_log.h" 18 19 using namespace OHOS::Scan; 20 21 static constexpr const char *FUNCTION_INIT_SCAN = "initScan"; 22 static constexpr const char *FUNCTION_EXIT_SCAN = "exitScan"; 23 static constexpr const char *FUNCTION_GET_SCANNER_LIST = "getScannerList"; 24 static constexpr const char *FUNCTION_STOP_DISCOVER = "stopDiscover"; 25 static constexpr const char *FUNCTION_OPEN_SCANNER = "openScanner"; 26 static constexpr const char *FUNCTION_CLOSE_SCANNER = "closeScanner"; 27 static constexpr const char *FUNCTION_GET_SCAN_OPTION_DESC = "getScanOptionDesc"; 28 static constexpr const char *FUNCTION_SET_SCAN_OPTION = "setScanOption"; 29 static constexpr const char *FUNCTION_SET_SCAN_AUTO_OPTION = "setScanAutoOption"; 30 static constexpr const char *FUNCTION_GET_SCAN_OPTION = "getScanOption"; 31 static constexpr const char *FUNCTION_GET_SCAN_PARAMETERS = "getScanParameters"; 32 static constexpr const char *FUNCTION_START_SCAN = "startScan"; 33 static constexpr const char *FUNCTION_GET_SINGLE_FRAME_FD = "getSingleFrameFD"; 34 static constexpr const char *FUNCTION_CANCEL_SCAN = "cancelScan"; 35 static constexpr const char *FUNCTION_SET_SCAN_IO_MODE = "setScanIOMode"; 36 static constexpr const char *FUNCTION_GET_SCAN_SELECT_FD = "getScanSelectFd"; 37 static constexpr const char *FUNCTION_GET_SCANNER_STATE = "getScannerState"; 38 static constexpr const char *FUNCTION_GET_SCAN_PROGRESS = "getScanProgress"; 39 static constexpr const char *FUNCTION_ADD_SCANNER = "addScanner"; 40 static constexpr const char *FUNCTION_DELETE_SCANNER = "deleteScanner"; 41 static constexpr const char *FUNCTION_GET_ADDED_SCANNER = "getAddedScanner"; 42 static constexpr const char *FUNCTION_UPDATE_SCANNER_NAME = "updateScannerName"; 43 44 static constexpr const char *FUNCTION_REGISTER_EVENT = "on"; 45 static constexpr const char *FUNCTION_UNREGISTER_EVENT = "off"; 46 47 48 #define SCAN_NAPI_METHOD(name, func) \ 49 { \ 50 name, 0, func, 0, 0, 0, napi_default, 0 \ 51 } 52 53 #define SCAN_NAPI_PROPERTY(name, val) \ 54 { \ 55 (name), nullptr, nullptr, nullptr, nullptr, val, napi_static, nullptr \ 56 } 57 58 Init(napi_env env,napi_value exports)59 static napi_value Init(napi_env env, napi_value exports) 60 { 61 napi_property_descriptor desc[] = { 62 SCAN_NAPI_METHOD(FUNCTION_INIT_SCAN, NapiInnerScan::InitScan), 63 SCAN_NAPI_METHOD(FUNCTION_EXIT_SCAN, NapiInnerScan::ExitScan), 64 SCAN_NAPI_METHOD(FUNCTION_GET_SCANNER_LIST, NapiInnerScan::GetScannerList), 65 SCAN_NAPI_METHOD(FUNCTION_STOP_DISCOVER, NapiInnerScan::StopDiscover), 66 SCAN_NAPI_METHOD(FUNCTION_OPEN_SCANNER, NapiInnerScan::OpenScanner), 67 SCAN_NAPI_METHOD(FUNCTION_CLOSE_SCANNER, NapiInnerScan::CloseScanner), 68 SCAN_NAPI_METHOD(FUNCTION_GET_SCAN_OPTION_DESC, NapiInnerScan::GetScanOptionDesc), 69 SCAN_NAPI_METHOD(FUNCTION_SET_SCAN_OPTION, NapiInnerScan::SetScanOption), 70 SCAN_NAPI_METHOD(FUNCTION_SET_SCAN_AUTO_OPTION, NapiInnerScan::SetScanAutoOption), 71 SCAN_NAPI_METHOD(FUNCTION_GET_SCAN_OPTION, NapiInnerScan::GetScanOption), 72 SCAN_NAPI_METHOD(FUNCTION_GET_SCAN_PARAMETERS, NapiInnerScan::GetScanParameters), 73 SCAN_NAPI_METHOD(FUNCTION_START_SCAN, NapiInnerScan::StartScan), 74 SCAN_NAPI_METHOD(FUNCTION_GET_SINGLE_FRAME_FD, NapiInnerScan::GetSingleFrameFD), 75 SCAN_NAPI_METHOD(FUNCTION_CANCEL_SCAN, NapiInnerScan::CancelScan), 76 SCAN_NAPI_METHOD(FUNCTION_SET_SCAN_IO_MODE, NapiInnerScan::SetScanIOMode), 77 SCAN_NAPI_METHOD(FUNCTION_GET_SCAN_SELECT_FD, NapiInnerScan::GetScanSelectFd), 78 SCAN_NAPI_METHOD(FUNCTION_GET_SCANNER_STATE, NapiInnerScan::GetScannerState), 79 SCAN_NAPI_METHOD(FUNCTION_GET_SCAN_PROGRESS, NapiInnerScan::GetScanProgress), 80 SCAN_NAPI_METHOD(FUNCTION_ADD_SCANNER, NapiInnerScan::AddScanner), 81 SCAN_NAPI_METHOD(FUNCTION_DELETE_SCANNER, NapiInnerScan::DeleteScanner), 82 SCAN_NAPI_METHOD(FUNCTION_GET_ADDED_SCANNER, NapiInnerScan::GetAddedScanner), 83 SCAN_NAPI_METHOD(FUNCTION_UPDATE_SCANNER_NAME, NapiInnerScan::UpdateScannerName), 84 85 SCAN_NAPI_METHOD(FUNCTION_REGISTER_EVENT, NapiInnerScan::On), 86 SCAN_NAPI_METHOD(FUNCTION_UNREGISTER_EVENT, NapiInnerScan::Off), 87 }; 88 89 napi_status status = napi_define_properties(env, exports, sizeof(desc) / sizeof(napi_property_descriptor), desc); 90 SCAN_HILOGD("init scan module %{public}d", status); 91 return exports; 92 } 93 RegisterModule()94 static __attribute__((constructor)) void RegisterModule() 95 { 96 static napi_module module = { .nm_version = 1, 97 .nm_flags = 0, 98 .nm_filename = nullptr, 99 .nm_register_func = Init, 100 .nm_modname = "scan", 101 .nm_priv = ((void *)0), 102 .reserved = { 0 } }; 103 napi_module_register(&module); 104 SCAN_HILOGD("module register scan"); 105 } 106