• 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 #ifndef NAPI_INNER_SCAN_H
17 #define NAPI_INNER_SCAN_H
18 #define TDD_ENABLE 1
19 
20 #include <string>
21 #include <vector>
22 
23 #include "napi/native_api.h"
24 #include "scan_async_call.h"
25 #include "iscan_callback.h"
26 #include "scan_callback.h"
27 #include "scan_constant.h"
28 #include "scan_option_descriptor.h"
29 #include "scan_option_descriptor_helper.h"
30 #include "scan_option_value.h"
31 #include "scan_option_value_helper.h"
32 #include "scan_parameters.h"
33 #include "scanner_info.h"
34 #include "scanner_info_helper.h"
35 #include "scan_progress.h"
36 #include "scan_progress_helper.h"
37 
38 namespace OHOS::Scan {
39 
40 class NapiInnerScan {
41 public:
42     static napi_value InitScan(napi_env env, napi_callback_info info);
43     static napi_value ExitScan(napi_env env, napi_callback_info info);
44     static napi_value GetScannerList(napi_env env, napi_callback_info info);
45     static napi_value OpenScanner(napi_env env, napi_callback_info info);
46     static napi_value CloseScanner(napi_env env, napi_callback_info info);
47     static napi_value GetScanOptionDesc(napi_env env, napi_callback_info info);
48     static napi_value SetScanOption(napi_env env, napi_callback_info info);
49     static napi_value SetScanAutoOption(napi_env env, napi_callback_info info);
50     static napi_value GetScanOption(napi_env env, napi_callback_info info);
51     static napi_value GetScanParameters(napi_env env, napi_callback_info info);
52     static napi_value StartScan(napi_env env, napi_callback_info info);
53     static napi_value CancelScan(napi_env env, napi_callback_info info);
54     static napi_value GetScanProgress(napi_env env, napi_callback_info info);
55     static napi_value AddScanner(napi_env env, napi_callback_info info);
56     static napi_value DeleteScanner(napi_env env, napi_callback_info info);
57     static napi_value GetAddedScanner(napi_env env, napi_callback_info info);
58     static napi_value On(napi_env env, napi_callback_info info);
59     static napi_value Off(napi_env env, napi_callback_info info);
60 
61 private:
62     static uint32_t IsSupportType(const std::string& type);
63 
64 private:
65     struct NapiScanContext : public ScanAsyncCall::Context {
66         bool result = false;
67         bool batchMode = false;
68         int32_t optionIndex = 0;
69         std::string scannerId;
70         std::string uniqueId;
71         std::string discoverMode;
72         std::vector<ScanOptionDescriptor> allDesc;
73         std::vector<ScanDeviceInfo> allAddedScanner;
74         ScanProgress prog;
75         ScanOptionValue optionValue;
NapiScanContextNapiScanContext76         NapiScanContext() : Context(nullptr, nullptr) {};
NapiScanContextNapiScanContext77         NapiScanContext(InputAction input, OutputAction output) : Context(std::move(input), std::move(output)) {};
~NapiScanContextNapiScanContext78         virtual ~NapiScanContext() {};
79     };
80 };
81 } // namespace OHOS::Scan
82 #endif // NAPI_INNER_SCAN_H
83