1/*
2 * Copyright (c) 2023-2023 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 STATUS_H
17#define STATUS_H
18
19#include <cstdint> // NOLINT: using int32_t in this file
20
21namespace OHOS {
22namespace Media {
23// 需要参考OH的错误码编码规范来写,模块+错误码,常见具体错误是有固定定义
24// 后续再定义北向接口 MfErrCode,那么它应该是Status的子集。
25/**
26* @enum Api Return Status.
27*
28* @since 1.0
29* @version 1.0
30*/
31enum struct Status : int32_t {
32    END_OF_STREAM = 1,         ///< Read source when end of stream
33    OK = 0,                    ///< The execution result is correct.
34    NO_ERROR = OK,             ///< Same as Status::OK
35    ERROR_UNKNOWN = -1,        ///< An unknown error occurred.
36    ERROR_PLUGIN_ALREADY_EXISTS = -2, ///< The plugin already exists, usually occurs when in plugin registered.
37    ERROR_INCOMPATIBLE_VERSION =
38        -3, ///< Incompatible version, may occur during plugin registration or function calling.
39    ERROR_NO_MEMORY = -4,           ///< The system memory is insufficient.
40    ERROR_WRONG_STATE = -5,         ///< The function is called in an invalid state.
41    ERROR_UNIMPLEMENTED = -6,       ///< This method or interface is not implemented.
42    ERROR_INVALID_PARAMETER = -7,   ///< The plugin does not support this parameter.
43    ERROR_INVALID_DATA = -8,        ///< The value is not in the valid range.
44    ERROR_MISMATCHED_TYPE = -9,     ///< Mismatched data type
45    ERROR_TIMED_OUT = -10,          ///< Operation timeout.
46    ERROR_UNSUPPORTED_FORMAT = -11, ///< The plugin not support this format/name.
47    ERROR_NOT_ENOUGH_DATA = -12,    ///< Not enough data when read from source.
48    ERROR_NOT_EXISTED = -13,        ///< Source is not existed.
49    ERROR_AGAIN = -14,              ///< Operation is not available right now, should try again later.
50    ERROR_PERMISSION_DENIED = -15,  ///< Permission denied.
51    ERROR_NULL_POINTER = -16,       ///< Null pointer.
52    ERROR_INVALID_OPERATION = -17,  ///< Invalid operation.
53    ERROR_CLIENT = -18,             ///< Http client error
54    ERROR_SERVER = -19,             ///< Http server error
55    ERROR_DELAY_READY = -20,        ///< Delay ready event
56    ERROR_INVALID_STATE = -21,
57    ERROR_AUDIO_INTERRUPT = -22,
58    ERROR_INVALID_BUFFER_SIZE = 0xF001,
59    ERROR_UNEXPECTED_MEMORY_TYPE = 0xF002,
60    ERROR_CREATE_BUFFER = 0xF003,
61    ERROR_NULL_POINT_BUFFER = 0xF004,
62    ERROR_INVALID_BUFFER_ID = 0xF005,
63    ERROR_INVALID_BUFFER_STATE = 0xF006,
64    ERROR_NO_FREE_BUFFER = 0xF007,
65    ERROR_NO_DIRTY_BUFFER = 0xF008,
66    ERROR_NO_CONSUMER_LISTENER = 0xF009,
67    ERROR_NULL_BUFFER_QUEUE = 0xF00A,
68    ERROR_WAIT_TIMEOUT = 0xF00B,
69    ERROR_OUT_OF_RANGE = 0xF00C,
70    ERROR_NULL_SURFACE = 0xF00D,
71    ERROR_SURFACE_INNER = 0xF00E,
72    ERROR_NULL_SURFACE_BUFFER = 0xF00F,
73    ERROR_DRM_DECRYPT_FAILED = 0xF010,
74
75    ERROR_IPC_WRITE_INTERFACE_TOKEN = 0xF101,
76    ERROR_IPC_SEND_REQUEST = 0xF102,
77};
78} // namespace Media
79} // namespace OHOS
80#endif // STATUS_H
81