1 /*
2  * Copyright (C) 2024 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 FRAMEWORKS_INNERKITSIMPL_MEDIA_LIBRARY_INCLUDE_MEDIA_OPERATION_H
17 #define FRAMEWORKS_INNERKITSIMPL_MEDIA_LIBRARY_INCLUDE_MEDIA_OPERATION_H
18 
19 #include <map>
20 #include <string>
21 
22 namespace OHOS {
23 namespace Media {
24 #define EXPORT __attribute__ ((visibility ("default")))
25 enum class EXPORT OperationObject : uint32_t {
26     UNKNOWN_OBJECT = 0,
27     FILESYSTEM_ASSET,
28     FILESYSTEM_PHOTO,
29     FILESYSTEM_AUDIO,
30     FILESYSTEM_DIR,
31     FILESYSTEM_ALBUM,
32     SMART_ALBUM,
33     SMART_ALBUM_MAP,
34     THUMBNAIL,
35     THUMBNAIL_ASTC,
36     SMART_ALBUM_ASSETS,
37     ASSETMAP,
38     ALL_DEVICE,
39     ACTIVE_DEVICE,
40     MEDIA_VOLUME,
41     BUNDLE_PERMISSION,
42     PHOTO_ALBUM,
43     PHOTO_MAP,
44     UFM_PHOTO,
45     UFM_AUDIO,
46     UFM_ALBUM,
47     UFM_MAP,
48     PAH_PHOTO,
49     PAH_ALBUM,
50     PAH_MAP,
51     TOOL_PHOTO,
52     TOOL_AUDIO,
53     TOOL_ALBUM,
54     VISION_START,
55     VISION_OCR = VISION_START,
56     VISION_LABEL,
57     VISION_VIDEO_LABEL,
58     VISION_AESTHETICS,
59     VISION_OBJECT,
60     VISION_RECOMMENDATION,
61     VISION_SEGMENTATION,
62     VISION_COMPOSITION,
63     VISION_TOTAL,
64     VISION_IMAGE_FACE,
65     VISION_VIDEO_FACE,
66     VISION_FACE_TAG,
67     VISION_SALIENCY,
68     VISION_HEAD,
69     VISION_POSE,
70     VISION_END = VISION_POSE,
71     GEO_DICTIONARY,
72     GEO_KNOWLEDGE,
73     GEO_PHOTO,
74     ANALYSIS_PHOTO_ALBUM,
75     ANALYSIS_PHOTO_MAP,
76     PAH_FORM_MAP,
77     SEARCH_TOTAL,  // search
78     INDEX_CONSTRUCTION_STATUS,  //Search Index Build Status
79     STORY_ALBUM,
80     STORY_COVER,
81     STORY_PLAY,
82     USER_PHOTOGRAPHY,
83     PAH_MULTISTAGES_CAPTURE,
84     HIGHLIGHT_COVER,
85     HIGHLIGHT_URI,
86     PAH_MOVING_PHOTO,
87     MISCELLANEOUS,
88     PAH_BATCH_THUMBNAIL_OPERATE,
89     APP_URI_PERMISSION_INNER,
90     MEDIA_APP_URI_PERMISSION,
91     REQUEST_PICTURE,
92     PHOTO_REQUEST_PICTURE_BUFFER,
93     PAH_CLOUD_ENHANCEMENT_OPERATE,
94     PAH_VIDEO,
95     ANALYSIS_ASSET_SD_MAP,
96     ANALYSIS_ALBUM_ASSET_MAP,
97     TAB_OLD_PHOTO,
98     PTP_OPERATION,
99     CLOUD_MEDIA_ASSET_OPERATE,
100 };
101 
102 enum class EXPORT OperationType : uint32_t {
103     UNKNOWN_TYPE = 0,
104     OPEN,
105     CLOSE,
106     CREATE,
107     DELETE,
108     DELETE_TOOL,
109     UPDATE,
110     QUERY,
111     GETCAPACITY,
112     SCAN,
113     TRASH,
114     GENERATE,
115     AGING,
116     DISTRIBUTE_AGING,
117     COPY,
118     INSERT_PERMISSION,
119     ALBUM_ADD_PHOTOS,
120     ALBUM_REMOVE_PHOTOS,
121     ALBUM_RECOVER_ASSETS,
122     ALBUM_SET_NAME,
123     ALBUM_DELETE_ASSETS,                // Delete assets permanently from system
124     TRASH_PHOTO,
125     UPDATE_PENDING,
126     SET_USER_COMMENT,
127     INDEX,
128     COMPAT_ALBUM_DELETE_ASSETS,
129     COMMIT_EDIT,
130     REVERT_EDIT,
131     HIDE,
132     QUERY_HIDDEN,
133     ALBUM_ORDER,
134     OPRN_STORE_FORM_ID,
135     OPRN_REMOVE_FORM_ID,
136     PORTRAIT_DISPLAY_LEVEL,
137     PORTRAIT_IS_ME,
138     PORTRAIT_ALBUM_NAME,
139     PORTRAIT_MERGE_ALBUM,
140     DISMISS_ASSET,
141     PORTRAIT_COVER_URI,
142     DISMISS,
143     GROUP_ALBUM_NAME,
144     GROUP_COVER_URI,
145     SUBMIT_CACHE,
146     BATCH_UPDATE_FAV,
147     BATCH_UPDATE_USER_COMMENT,
148     BATCH_UPDATE_OWNER_ALBUM_ID,
149     SET_PHOTO_QUALITY,
150     ADD_IMAGE,
151     PROCESS_IMAGE,
152     SET_LOCATION,
153     ANALYSIS_INDEX,
154     CANCEL_PROCESS_IMAGE,
155     LOG_MOVING_PHOTO,
156     ADD_FILTERS,
157     DISCARD_CAMERA_PHOTO,
158     SAVE_CAMERA_PHOTO,
159     REMOVE_MSC_TASK,
160     START_GENERATE_THUMBNAILS,
161     STOP_GENERATE_THUMBNAILS,
162     GENERATE_THUMBNAILS_RESTORE,
163     TOOL_QUERY_BY_DISPLAY_NAME,
164     ADD_LOWQUALITY_IMAGE,
165     FINISH_REQUEST_PICTURE,
166     SCAN_WITHOUT_ALBUM_UPDATE,
167     ENHANCEMENT_ADD,
168     ENHANCEMENT_PRIORITIZE,
169     ENHANCEMENT_QUERY,
170     ENHANCEMENT_CANCEL,
171     ENHANCEMENT_CANCEL_ALL,
172     ENHANCEMENT_SYNC,
173     ENHANCEMENT_GET_PAIR,
174     SET_VIDEO_ENHANCEMENT_ATTR,
175     LOG_MEDIALIBRARY_API,
176     SAVE_PICTURE,
177     CLONE_ASSET,
178     DEGENERATE_MOVING_PHOTO,
179     ALL_DUPLICATE_ASSETS,
180     CAN_DEL_DUPLICATE_ASSETS,
181     SET_OWNER_ALBUM_ID,
182     CLOUD_MEDIA_ASSET_TASK_START_FORCE,
183     CLOUD_MEDIA_ASSET_TASK_START_GENTLE,
184     CLOUD_MEDIA_ASSET_TASK_PAUSE,
185     CLOUD_MEDIA_ASSET_TASK_CANCEL,
186     CLOUD_MEDIA_ASSET_TASK_RETAIN_FORCE,
187     CLOUD_MEDIA_ASSET_TASK_STATUS_QUERY,
188 };
189 
190 #define OPRN_OBJ_MAP MediaOperation::GetOprnObjMap()
191 #define TABLE_NAME_MAP MediaOperation::GetTableNameMap()
192 #define OPRN_TYPE_MAP MediaOperation::GetOprnTypeMap()
193 #define OPRN_MAP MediaOperation::GetOprnMap()
194 
195 namespace MediaOperation {
196 const std::map<std::string, OperationObject>& GetOprnObjMap();
197 const std::map<OperationObject, std::map<OperationType, std::string>>& GetTableNameMap();
198 const std::map<std::string, OperationType>& GetOprnTypeMap();
199 const std::map<std::string, OperationObject>& GetOprnMap();
200 } // namespace MediaOperation
201 
202 } // namespace Media
203 } // namespace OHOS
204 
205 #endif // FRAMEWORKS_INNERKITSIMPL_MEDIA_LIBRARY_INCLUDE_MEDIA_OPERATION_H
206