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 INTERFACES_KITS_JS_MEDIALIBRARY_INCLUDE_CLOUD_MEDIA_ASSET_STATUS_NAPI_H 17 #define INTERFACES_KITS_JS_MEDIALIBRARY_INCLUDE_CLOUD_MEDIA_ASSET_STATUS_NAPI_H 18 19 #include <memory> 20 21 #include "cloud_media_asset_manager_napi.h" 22 #include "media_asset_data_handler.h" 23 #include "media_asset_manager_napi.h" 24 #include "media_library_napi.h" 25 #include "cloud_media_asset_types.h" 26 27 namespace OHOS { 28 namespace Media { 29 class CloudMediaAssetStatusNapi { 30 public: 31 EXPORT CloudMediaAssetStatusNapi() = default; 32 EXPORT ~CloudMediaAssetStatusNapi() = default; 33 static napi_value NewCloudMediaAssetStatusNapi(napi_env env, CloudMediaAssetAsyncContext* context); 34 EXPORT static napi_value Init(napi_env env, napi_value exports); 35 36 private: 37 EXPORT static napi_value Constructor(napi_env env, napi_callback_info info); 38 EXPORT static void Destructor(napi_env env, void* nativeObject, void* finalizeHint); 39 40 EXPORT static napi_value JSGetTaskStatus(napi_env env, napi_callback_info info); 41 EXPORT static napi_value JSGetErrorCode(napi_env env, napi_callback_info info); 42 EXPORT static napi_value JSGetTaskInfo(napi_env env, napi_callback_info info); 43 44 CloudMediaAssetTaskStatus GetCloudMediaAssetTaskStatus() const; 45 void SetCloudMediaAssetTaskStatus(CloudMediaAssetTaskStatus cloudMediaAssetTaskStatus); 46 47 CloudMediaTaskPauseCause GetCloudMediaTaskPauseCause() const; 48 void SetCloudMediaTaskPauseCause(CloudMediaTaskPauseCause cloudMediaTaskPauseCause); 49 50 std::string GetTaskInfo() const; 51 void SetTaskInfo(const std::string &taskInfo); 52 53 static thread_local napi_ref constructor_; 54 CloudMediaAssetTaskStatus cloudMediaAssetTaskStatus_ = CloudMediaAssetTaskStatus::IDLE; 55 CloudMediaTaskPauseCause cloudMediaTaskPauseCause_ = CloudMediaTaskPauseCause::NO_PAUSE; 56 std::string taskInfo_ = ""; 57 }; 58 } // Media 59 } // OHOS 60 #endif // INTERFACES_KITS_JS_MEDIALIBRARY_INCLUDE_CLOUD_MEDIA_ASSET_STATUS_NAPI_H