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 #ifndef OHOS_FILEMANAGEMENT_USERFILEMGR_TYPES_H
16 #define OHOS_FILEMANAGEMENT_USERFILEMGR_TYPES_H
17 
18 #include <limits>
19 #include <string>
20 #include <tuple>
21 #include <vector>
22 
23 namespace OHOS {
24 namespace Media {
25 enum class ResultNapiType {
26     TYPE_MEDIALIBRARY,
27     TYPE_USERFILE_MGR,
28     TYPE_PHOTOACCESS_HELPER,
29     TYPE_NAPI_MAX
30 };
31 
32 enum MediaType {
33     MEDIA_TYPE_FILE,
34     MEDIA_TYPE_IMAGE,
35     MEDIA_TYPE_VIDEO,
36     MEDIA_TYPE_AUDIO,
37     MEDIA_TYPE_MEDIA,
38     MEDIA_TYPE_ALBUM_LIST,
39     MEDIA_TYPE_ALBUM_LIST_INFO,
40     MEDIA_TYPE_ALBUM,
41     MEDIA_TYPE_SMARTALBUM,
42     MEDIA_TYPE_DEVICE,
43     MEDIA_TYPE_REMOTEFILE,
44     MEDIA_TYPE_NOFILE,
45     MEDIA_TYPE_PHOTO,
46     MEDIA_TYPE_ALL,
47     MEDIA_TYPE_DEFAULT,
48 };
49 
50 enum class ResourceType {
51     INVALID_RESOURCE = -1,
52     IMAGE_RESOURCE = 1, // corresponds to MEDIA_TYPE_IMAGE
53     VIDEO_RESOURCE,     // corresponds to MEDIA_TYPE_VIDEO
54     PHOTO_PROXY,
55     PRIVATE_MOVING_PHOTO_RESOURCE,
56 };
57 
58 enum AnalysisType : int32_t {
59     ANALYSIS_INVALID = -1,
60     ANALYSIS_AESTHETICS_SCORE,
61     ANALYSIS_LABEL,
62     ANALYSIS_OCR,
63     ANALYSIS_FACE,
64     ANALYSIS_OBJECT,
65     ANALYSIS_RECOMMENDATION,
66     ANALYSIS_SEGMENTATION,
67     ANALYSIS_COMPOSITION,
68     ANALYSIS_SALIENCY,
69     ANALYSIS_DETAIL_ADDRESS,
70     ANALYSIS_HUMAN_FACE_TAG,
71     ANALYSIS_HEAD_POSITION,
72     ANALYSIS_BONE_POSE,
73     ANALYSIS_VIDEO_LABEL,
74     ANALYSIS_MULTI_CROP,
75 };
76 
77 enum HighlightAlbumInfoType : int32_t {
78     INVALID_INFO = -1,
79     COVER_INFO,
80     PLAY_INFO
81 };
82 
83 enum HighlightUserActionType : int32_t {
84     INVALID_USER_ACTION = -1,
85     INSERTED_PIC_COUNT,
86     REMOVED_PIC_COUNT,
87     SHARED_SCREENSHOT_COUNT,
88     SHARED_COVER_COUNT,
89     RENAMED_COUNT,
90     CHANGED_COVER_COUNT,
91     RENDER_VIEWED_TIMES = 100,
92     RENDER_VIEWED_DURATION,
93     ART_LAYOUT_VIEWED_TIMES,
94     ART_LAYOUT_VIEWED_DURATION
95 };
96 
97 enum PhotoAlbumType : int32_t {
98     USER = 0,
99     SYSTEM = 1024,
100     SOURCE = 2048,
101     SMART = 4096
102 };
103 
104 enum PhotoAlbumSubType : int32_t {
105     USER_GENERIC = 1,
106 
107     SYSTEM_START = 1025,
108     FAVORITE = SYSTEM_START,
109     VIDEO,
110     HIDDEN,
111     TRASH,
112     SCREENSHOT,
113     CAMERA,
114     IMAGE,
115     CLOUD_ENHANCEMENT,
116     SYSTEM_END = CLOUD_ENHANCEMENT,
117     SOURCE_GENERIC = 2049,
118     ANALYSIS_START = 4097,
119     CLASSIFY = ANALYSIS_START,
120     GEOGRAPHY_LOCATION = 4099,
121     GEOGRAPHY_CITY,
122     SHOOTING_MODE = 4101,
123     PORTRAIT = 4102,
124     GROUP_PHOTO = 4103,
125     HIGHLIGHT = 4104,
126     HIGHLIGHT_SUGGESTIONS,
127     ANALYSIS_END = HIGHLIGHT_SUGGESTIONS,
128     ANY = std::numeric_limits<int32_t>::max()
129 };
130 
131 enum class PhotoSubType : int32_t {
132     DEFAULT,
133     SCREENSHOT,
134     CAMERA,
135     MOVING_PHOTO,
136     BURST,
137     SUBTYPE_END
138 };
139 
140 enum class DynamicRangeType : int32_t {
141     SDR,
142     HDR
143 };
144 
145 enum class MovingPhotoEffectMode : int32_t {
146     EFFECT_MODE_START = 0,
147     DEFAULT = EFFECT_MODE_START,
148     BOUNCE_PLAY,
149     LOOP_PLAY,
150     LONG_EXPOSURE,
151     MULTI_EXPOSURE,
152     CINEMA_GRAPH,
153     EFFECT_MODE_END = CINEMA_GRAPH,
154     IMAGE_ONLY = 10
155 };
156 
157 enum class PhotoPositionType : int32_t {
158     LOCAL = 1,
159     CLOUD = 2,
160     LOCAL_AND_CLOUD = 3
161 };
162 
163 enum class CloudEnhancementTaskStage : int32_t {
164     TASK_STAGE_EXCEPTION = -1,
165     TASK_STAGE_PREPARING,
166     TASK_STAGE_UPLOADING,
167     TASK_STAGE_EXECUTING,
168     TASK_STAGE_DOWNLOADING,
169     TASK_STAGE_FAILED,
170     TASK_STAGE_COMPLETED
171 };
172 
173 enum class CloudEnhancementState : int32_t {
174     UNAVAILABLE = 0,
175     AVAILABLE,
176     EXECUTING,
177     COMPLETED
178 };
179 
180 enum class VideoEnhancementType : int32_t {
181     QUALITY_ENHANCEMENT_LOCAL,
182     QUALITY_ENHANCEMENT_CLOUD,
183     QUALITY_ENHANCEMENT_LOCAL_AND_CLOUD,
184 };
185 
186 const std::string URI_PARAM_API_VERSION = "api_version";
187 
188 enum class MediaLibraryApi : uint32_t {
189     API_START = 8,
190     API_OLD = 9,
191     API_10,
192     API_END
193 };
194 
195 enum NotifyType {
196     NOTIFY_ADD,
197     NOTIFY_UPDATE,
198     NOTIFY_REMOVE,
199     NOTIFY_ALBUM_ADD_ASSET,
200     NOTIFY_ALBUM_REMOVE_ASSET,
201     NOTIFY_ALBUM_DISMISS_ASSET,
202     NOTIFY_THUMB_ADD,
203     NOTIFY_THUMB_UPDATE
204 };
205 
206 enum class RequestPhotoType : int32_t {
207     REQUEST_ALL_THUMBNAILS = 0,
208     REQUEST_FAST_THUMBNAIL = 1,
209     REQUEST_QUALITY_THUMBNAIL = 2,
210     REQUEST_TYPE_END
211 };
212 
213 enum class BurstCoverLevelType : int32_t {
214     COVER = 1,
215     MEMBER = 2,
216     DEFAULT = COVER
217 };
218 
219 enum class CoverSatisfiedType : uint8_t {
220     NO_SETTING = 0,
221     DEFAULT_SETTING = 1,
222     USER_SETTING = 2,
223     USER_SETTING_EDITE = 3,
224     BEAUTY_SETTING = 4,
225     BEAUTY_SETTING_EDITE = 5
226 };
227 
228 enum class WatermarkType : int32_t {
229     DEFAULT = 0,
230     BRAND_COMMON,
231     COMMON,
232     BRAND
233 };
234 } // namespace Media
235 } // namespace OHOS
236 #endif // OHOS_FILEMANAGEMENT_USERFILEMGR_TYPES_H