print_print_fwk/utils/include/scan_constant.h
张凯 566ffe5789 sync scan code
Signed-off-by: 张凯 <zhangkai357@huawei.com>
2024-07-05 11:28:16 +08:00

187 lines
6.5 KiB
C++

/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef SCAN_CONSTANT_H
#define SCAN_CONSTANT_H
#include <string>
namespace OHOS::Scan {
#define SCAN_RET_NONE
#define SCAN_MAX_COUNT 1000
#define SCAN_ASSERT_BASE(env, assertion, message, retVal) \
do { \
if (!(assertion)) { \
SCAN_HILOGE(message); \
return retVal; \
} \
} while (0)
#define SCAN_ASSERT(env, assertion, message) SCAN_ASSERT_BASE(env, assertion, message, nullptr)
#define SCAN_ASSERT_RETURN_VOID(env, assertion, message) SCAN_ASSERT_BASE(env, assertion, message, SCAN_RET_NONE)
#define SCAN_CALL_BASE(env, theCall, retVal) \
do { \
if ((theCall) != napi_ok) { \
return retVal; \
} \
} while (0)
#define SCAN_CALL(env, theCall) SCAN_CALL_BASE(env, theCall, nullptr)
#define SCAN_CALL_RETURN_VOID(env, theCall) SCAN_CALL_BASE(env, theCall, SCAN_RET_NONE)
#define DELETE_AND_NULLIFY(ptr) \
if ((ptr) != nullptr) { \
delete (ptr); \
(ptr) = nullptr; \
}
#define DELETE_ARRAY_AND_NULLIFY(ptr) \
if ((ptr) != nullptr) { \
delete[] (ptr); \
(ptr) = nullptr; \
}
#define FREE_AND_NULLPTR(ptr) \
if ((ptr) != nullptr) { \
free (ptr); \
(ptr) = nullptr; \
}
#define INIT_CALLBACK_PARAMS \
uv_loop_s *loop = nullptr; \
bool flag = true; \
napi_get_uv_event_loop(env_, &loop); \
CHECK_AND_CREATE(loop, "Failed to get uv event loop", flag); \
uv_work_t *work = nullptr; \
CallbackParam *param = nullptr; \
CallbackContext *context = nullptr; \
CreateCallbackParam(work, param, context, flag) \
#define CHECK_AND_CREATE(pointer, error_message, flag) \
if ((pointer) == nullptr) { \
SCAN_HILOGE(error_message); \
(flag) = false; \
}
#define CREATE_PRC_MESSAGE \
MessageParcel data; \
MessageParcel reply; \
MessageOption option; \
data.WriteInterfaceToken(GetDescriptor()) \
#define CHECK_IS_EXCEED_SCAN_RANGE_BASE(count, retVal) \
do { \
if ((count) > SCAN_MAX_COUNT) { \
SCAN_HILOGW("input val is exceed scan max range:%{public}d", SCAN_MAX_COUNT); \
return retVal; \
} \
} while (0)
#define CHECK_IS_EXCEED_SCAN_RANGE(count) CHECK_IS_EXCEED_SCAN_RANGE_BASE(count, nullptr)
#define CHECK_IS_EXCEED_SCAN_RANGE_BOOL(count) CHECK_IS_EXCEED_SCAN_RANGE_BASE(count, false)
#define CHECK_IS_EXCEED_SCAN_RANGE_VOID(count) CHECK_IS_EXCEED_SCAN_RANGE_BASE(count, E_SCAN_NONE)
#define CHECK_IS_EXCEED_SCAN_RANGE_INT(count) CHECK_IS_EXCEED_SCAN_RANGE_BASE(count, E_SCAN_INVALID_PARAMETER)
enum ScanErrorCode {
// FWK ERROR
E_SCAN_NONE = 0, // no error
E_SCAN_NO_PERMISSION = 201, // no permission
E_SCAN_INVALID_PARAMETER = 401, // invalid parameter
E_SCAN_GENERIC_FAILURE = 13100001, // generic failure of scan
E_SCAN_RPC_FAILURE = 13100002, // RPC failure
E_SCAN_SERVER_FAILURE = 13100003, // failure of scan service
// DEVICE ERROR
E_SCAN_GOOD = 13200000, /* everything A-OK */
E_SCAN_UNSUPPORTED = 13200001, /* operation is not supported */
E_SCAN_CANCELLED = 13200002, /* operation was cancelled */
E_SCAN_DEVICE_BUSY = 13200003, /* device is busy; try again later */
E_SCAN_INVAL = 13200004, /* data is invalid (includes no dev at open) */
E_SCAN_EOF = 13200005, /* no more data available (end-of-file) */
E_SCAN_JAMMED = 13200006, /* document feeder jammed */
E_SCAN_NO_DOCS = 13200007, /* document feeder out of documents */
E_SCAN_COVER_OPEN = 13200008, /* scanner cover is open */
E_SCAN_IO_ERROR = 13200009, /* error during device I/O */
E_SCAN_NO_MEM = 13200010, /* out of memory */
E_SCAN_ACCESS_DENIED = 13200011, /* access to resource has been denied */
};
const uint32_t SCAN_INVALID_ID = 0xFFFFFFFF; // -1
const uint16_t USB_VALUE_DESCRIPTOR_INDEX_SERIAL_NUMBER = 0X03;
const uint8_t USB_REQUESTTYPE_DEVICE_TO_HOST = 0X80;
const uint8_t USB_REQUEST_GET_DESCRIPTOR = 0X06;
const uint16_t USB_VALUE_DESCRIPTOR_TYPE_STRING = 0X03;
const int HTTP_COMMON_CONST_VALUE_8 = 8;
const uint16_t USB_INDEX_LANGUAGE_ID_ENGLISH = 0X409;
const int HTTP_COMMON_CONST_VALUE_500 = 500;
const int HTTP_COMMON_CONST_VALUE_100 = 100;
const int HTTP_COMMON_CONST_VALUE_2 = 2;
const int USB_DEVICEID_FIRSTID_LEN_3 = 3;
enum ScanFrame {
SCAN_FRAME_GRAY = 0, /* band covering human visual range */
SCAN_FRAME_RGB = 1, /* pixel-interleaved red/green/blue bands */
SCAN_FRAME_RED = 2, /* red band only */
SCAN_FRAME_GREEN = 3, /* green band only */
SCAN_FRAME_BLUE = 4, /* blue band only */
};
enum ScanExtensionState {
SCAN_EXTENSION_UNLOAD,
SCAN_EXTENSION_LOADING,
SCAN_EXTENSION_LOADED,
};
enum ScanParamStatus {
SCAN_PARAM_NOT_SET,
SCAN_PARAM_OPT,
SCAN_PARAM_SET,
};
enum ScanOptionOpType {
SCAN_ACTION_GET_VALUE = 0,
SCAN_ACTION_SET_VALUE,
SCAN_ACTION_SET_AUTO
};
enum ScanOptionValueType {
SCAN_VALUE_NONE,
SCAN_VALUE_NUM,
SCAN_VALUE_NUM_LIST,
SCAN_VALUE_STR,
SCAN_VALUE_BOOL,
};
enum ScanConstraintType {
SCAN_CONSTRAINT_NONE = 0,
SCAN_CONSTRAINT_RANGE = 1,
SCAN_CONSTRAINT_WORD_LIST = 2,
SCAN_CONSTRAINT_STRING_LIST = 3,
};
enum ScannerState {
SCANNER_READY = 0,
SCANNER_SCANING = 1,
SCANNER_SEARCHING = 2,
SCANNER_CANCELING = 3,
};
} // namespace OHOS::Scan
#endif // SCAN_CONSTANT_H