• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 static constexpr const char *FUNCTION_ADD_PRINTER = "addPrinter";
44 
45 static constexpr const char *FUNCTION_REGISTER_EVENT = "on";
46 static constexpr const char *FUNCTION_UNREGISTER_EVENT = "off";
47 
48 
49 #define SCAN_NAPI_METHOD(name, func)           \
50     {                                           \
51         name, 0, func, 0, 0, 0, napi_default, 0 \
52     }
53 
54 #define SCAN_NAPI_PROPERTY(name, val)                                          \
55     {                                                                           \
56         (name), nullptr, nullptr, nullptr, nullptr, val, napi_static, nullptr   \
57     }
58 
59 
Init(napi_env env,napi_value exports)60 static napi_value Init(napi_env env, napi_value exports)
61 {
62     napi_property_descriptor desc[] = {
63         SCAN_NAPI_METHOD(FUNCTION_INIT_SCAN, NapiInnerScan::InitScan),
64         SCAN_NAPI_METHOD(FUNCTION_EXIT_SCAN, NapiInnerScan::ExitScan),
65         SCAN_NAPI_METHOD(FUNCTION_GET_SCANNER_LIST, NapiInnerScan::GetScannerList),
66         SCAN_NAPI_METHOD(FUNCTION_STOP_DISCOVER, NapiInnerScan::StopDiscover),
67         SCAN_NAPI_METHOD(FUNCTION_OPEN_SCANNER, NapiInnerScan::OpenScanner),
68         SCAN_NAPI_METHOD(FUNCTION_CLOSE_SCANNER, NapiInnerScan::CloseScanner),
69         SCAN_NAPI_METHOD(FUNCTION_GET_SCAN_OPTION_DESC, NapiInnerScan::GetScanOptionDesc),
70         SCAN_NAPI_METHOD(FUNCTION_SET_SCAN_OPTION, NapiInnerScan::SetScanOption),
71         SCAN_NAPI_METHOD(FUNCTION_SET_SCAN_AUTO_OPTION, NapiInnerScan::SetScanAutoOption),
72         SCAN_NAPI_METHOD(FUNCTION_GET_SCAN_OPTION, NapiInnerScan::GetScanOption),
73         SCAN_NAPI_METHOD(FUNCTION_GET_SCAN_PARAMETERS, NapiInnerScan::GetScanParameters),
74         SCAN_NAPI_METHOD(FUNCTION_START_SCAN, NapiInnerScan::StartScan),
75         SCAN_NAPI_METHOD(FUNCTION_GET_SINGLE_FRAME_FD, NapiInnerScan::GetSingleFrameFD),
76         SCAN_NAPI_METHOD(FUNCTION_CANCEL_SCAN, NapiInnerScan::CancelScan),
77         SCAN_NAPI_METHOD(FUNCTION_SET_SCAN_IO_MODE, NapiInnerScan::SetScanIOMode),
78         SCAN_NAPI_METHOD(FUNCTION_GET_SCAN_SELECT_FD, NapiInnerScan::GetScanSelectFd),
79         SCAN_NAPI_METHOD(FUNCTION_GET_SCANNER_STATE, NapiInnerScan::GetScannerState),
80         SCAN_NAPI_METHOD(FUNCTION_GET_SCAN_PROGRESS, NapiInnerScan::GetScanProgress),
81         SCAN_NAPI_METHOD(FUNCTION_ADD_SCANNER, NapiInnerScan::AddScanner),
82         SCAN_NAPI_METHOD(FUNCTION_DELETE_SCANNER, NapiInnerScan::DeleteScanner),
83         SCAN_NAPI_METHOD(FUNCTION_GET_ADDED_SCANNER, NapiInnerScan::GetAddedScanner),
84         SCAN_NAPI_METHOD(FUNCTION_UPDATE_SCANNER_NAME, NapiInnerScan::UpdateScannerName),
85         SCAN_NAPI_METHOD(FUNCTION_ADD_PRINTER, NapiInnerScan::AddPrinter),
86 
87         SCAN_NAPI_METHOD(FUNCTION_REGISTER_EVENT, NapiInnerScan::On),
88         SCAN_NAPI_METHOD(FUNCTION_UNREGISTER_EVENT, NapiInnerScan::Off),
89     };
90 
91     napi_status status = napi_define_properties(env, exports, sizeof(desc) / sizeof(napi_property_descriptor), desc);
92     SCAN_HILOGD("init scan module %{public}d", status);
93     return exports;
94 }
95 
RegisterModule()96 static __attribute__((constructor)) void RegisterModule()
97 {
98     static napi_module module = { .nm_version = 1,
99         .nm_flags = 0,
100         .nm_filename = nullptr,
101         .nm_register_func = Init,
102         .nm_modname = "scan",
103         .nm_priv = ((void *)0),
104         .reserved = { 0 } };
105     napi_module_register(&module);
106     SCAN_HILOGD("module register scan");
107 }
108