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 21 namespace OHOS { 22 namespace Media { 23 enum class ResultNapiType { 24 TYPE_MEDIALIBRARY, 25 TYPE_USERFILE_MGR, 26 TYPE_PHOTOACCESS_HELPER, 27 TYPE_NAPI_MAX 28 }; 29 30 enum MediaType { 31 MEDIA_TYPE_FILE, 32 MEDIA_TYPE_IMAGE, 33 MEDIA_TYPE_VIDEO, 34 MEDIA_TYPE_AUDIO, 35 MEDIA_TYPE_MEDIA, 36 MEDIA_TYPE_ALBUM_LIST, 37 MEDIA_TYPE_ALBUM_LIST_INFO, 38 MEDIA_TYPE_ALBUM, 39 MEDIA_TYPE_SMARTALBUM, 40 MEDIA_TYPE_DEVICE, 41 MEDIA_TYPE_REMOTEFILE, 42 MEDIA_TYPE_NOFILE, 43 MEDIA_TYPE_PHOTO, 44 MEDIA_TYPE_ALL, 45 MEDIA_TYPE_DEFAULT, 46 }; 47 48 enum class ResourceType { 49 IMAGE_RESOURCE = 1, // corresponds to MEDIA_TYPE_IMAGE 50 VIDEO_RESOURCE, // corresponds to MEDIA_TYPE_VIDEO 51 PHOTO_PROXY, 52 }; 53 54 enum AnalysisType : int32_t { 55 ANALYSIS_INVALID = -1, 56 ANALYSIS_AESTHETICS_SCORE, 57 ANALYSIS_LABEL, 58 ANALYSIS_OCR, 59 ANALYSIS_FACE, 60 ANALYSIS_OBJECT, 61 ANALYSIS_RECOMMENDATION, 62 ANALYSIS_SEGMENTATION, 63 ANALYSIS_COMPOSITION, 64 ANALYSIS_SALIENCY, 65 ANALYSIS_DETAIL_ADDRESS, 66 }; 67 68 enum PhotoAlbumType : int32_t { 69 USER = 0, 70 SYSTEM = 1024, 71 SOURCE = 2048, 72 SMART = 4096 73 }; 74 75 enum PhotoAlbumSubType : int32_t { 76 USER_GENERIC = 1, 77 78 SYSTEM_START = 1025, 79 FAVORITE = SYSTEM_START, 80 VIDEO, 81 HIDDEN, 82 TRASH, 83 SCREENSHOT, 84 CAMERA, 85 IMAGE, 86 SYSTEM_END = IMAGE, 87 SOURCE_GENERIC = 2049, 88 ANALYSIS_START = 4097, 89 CLASSIFY = ANALYSIS_START, 90 GEOGRAPHY_LOCATION = 4099, 91 GEOGRAPHY_CITY, 92 SHOOTING_MODE, 93 PORTRAIT = 4102, 94 ANALYSIS_END = PORTRAIT, 95 ANY = std::numeric_limits<int32_t>::max() 96 }; 97 98 const std::vector<std::string> ALL_SYS_PHOTO_ALBUM = { 99 std::to_string(PhotoAlbumSubType::FAVORITE), 100 std::to_string(PhotoAlbumSubType::VIDEO), 101 std::to_string(PhotoAlbumSubType::HIDDEN), 102 std::to_string(PhotoAlbumSubType::TRASH), 103 std::to_string(PhotoAlbumSubType::SCREENSHOT), 104 std::to_string(PhotoAlbumSubType::CAMERA), 105 std::to_string(PhotoAlbumSubType::IMAGE), 106 std::to_string(PhotoAlbumSubType::SOURCE_GENERIC), 107 }; 108 109 enum class PhotoSubType : int32_t { 110 DEFAULT, 111 SCREENSHOT, 112 CAMERA 113 }; 114 115 const std::string URI_PARAM_API_VERSION = "api_version"; 116 117 enum class MediaLibraryApi : uint32_t { 118 API_START = 8, 119 API_OLD = 9, 120 API_10, 121 API_END 122 }; 123 124 enum NotifyType { 125 NOTIFY_ADD, 126 NOTIFY_UPDATE, 127 NOTIFY_REMOVE, 128 NOTIFY_ALBUM_ADD_ASSET, 129 NOTIFY_ALBUM_REMOVE_ASSET, 130 NOTIFY_ALBUM_DISMISS_ASSET, 131 NOTIFY_THUMB_ADD, 132 NOTIFY_THUMB_UPDATE 133 }; 134 135 enum class RequestPhotoType : int32_t { 136 REQUEST_ALL_THUMBNAILS = 0, 137 REQUEST_FAST_THUMBNAIL = 1, 138 REQUEST_QUALITY_THUMBNAIL = 2, 139 REQUEST_TYPE_END 140 }; 141 } // namespace Media 142 } // namespace OHOS 143 #endif // OHOS_FILEMANAGEMENT_USERFILEMGR_TYPES_H 144