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 #include "frame_information.h"
16 
17 #include "base/utils/utils.h"
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
OH_ArkUI_ImageAnimatorFrameInfo_CreateFromString(char * src)23 ArkUI_ImageAnimatorFrameInfo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromString(char* src)
24 {
25     CHECK_NULL_RETURN(src, nullptr);
26     ArkUI_ImageAnimatorFrameInfo* imageInfo = new ArkUI_ImageAnimatorFrameInfo;
27     imageInfo->src = src;
28     imageInfo->drawableDescriptor = nullptr;
29     return imageInfo;
30 }
31 
OH_ArkUI_ImageAnimatorFrameInfo_CreateFromDrawableDescriptor(ArkUI_DrawableDescriptor * drawable)32 ArkUI_ImageAnimatorFrameInfo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromDrawableDescriptor(
33     ArkUI_DrawableDescriptor* drawable)
34 {
35     CHECK_NULL_RETURN(drawable, nullptr);
36     ArkUI_ImageAnimatorFrameInfo* imageInfo = new ArkUI_ImageAnimatorFrameInfo;
37     imageInfo->src = "";
38     imageInfo->drawableDescriptor = drawable;
39     return imageInfo;
40 }
41 
OH_ArkUI_ImageAnimatorFrameInfo_Dispose(ArkUI_ImageAnimatorFrameInfo * imageInfo)42 void OH_ArkUI_ImageAnimatorFrameInfo_Dispose(ArkUI_ImageAnimatorFrameInfo* imageInfo)
43 {
44     CHECK_NULL_VOID(imageInfo);
45     delete imageInfo;
46 }
47 
OH_ArkUI_ImageAnimatorFrameInfo_SetWidth(ArkUI_ImageAnimatorFrameInfo * imageInfo,int32_t width)48 void OH_ArkUI_ImageAnimatorFrameInfo_SetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t width)
49 {
50     CHECK_NULL_VOID(imageInfo);
51     imageInfo->width = width;
52 }
53 
OH_ArkUI_ImageAnimatorFrameInfo_GetWidth(ArkUI_ImageAnimatorFrameInfo * imageInfo)54 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfo)
55 {
56     CHECK_NULL_RETURN(imageInfo, 0);
57     return imageInfo->width.value_or(0);
58 }
59 
OH_ArkUI_ImageAnimatorFrameInfo_SetHeight(ArkUI_ImageAnimatorFrameInfo * imageInfo,int32_t height)60 void OH_ArkUI_ImageAnimatorFrameInfo_SetHeight(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t height)
61 {
62     CHECK_NULL_VOID(imageInfo);
63     imageInfo->height = height;
64 }
65 
OH_ArkUI_ImageAnimatorFrameInfo_GetHeight(ArkUI_ImageAnimatorFrameInfo * imageInfo)66 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetHeight(ArkUI_ImageAnimatorFrameInfo* imageInfo)
67 {
68     CHECK_NULL_RETURN(imageInfo, 0);
69     return imageInfo->height.value_or(0);
70 }
71 
OH_ArkUI_ImageAnimatorFrameInfo_SetTop(ArkUI_ImageAnimatorFrameInfo * imageInfo,int32_t top)72 void OH_ArkUI_ImageAnimatorFrameInfo_SetTop(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t top)
73 {
74     CHECK_NULL_VOID(imageInfo);
75     imageInfo->top = top;
76 }
77 
OH_ArkUI_ImageAnimatorFrameInfo_GetTop(ArkUI_ImageAnimatorFrameInfo * imageInfo)78 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetTop(ArkUI_ImageAnimatorFrameInfo* imageInfo)
79 {
80     CHECK_NULL_RETURN(imageInfo, 0);
81     return imageInfo->top.value_or(0);
82 }
83 
OH_ArkUI_ImageAnimatorFrameInfo_SetLeft(ArkUI_ImageAnimatorFrameInfo * imageInfo,int32_t left)84 void OH_ArkUI_ImageAnimatorFrameInfo_SetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t left)
85 {
86     CHECK_NULL_VOID(imageInfo);
87     imageInfo->left = left;
88 }
89 
OH_ArkUI_ImageAnimatorFrameInfo_GetLeft(ArkUI_ImageAnimatorFrameInfo * imageInfo)90 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfo)
91 {
92     CHECK_NULL_RETURN(imageInfo, 0);
93     return imageInfo->left.value_or(0);
94 }
95 
OH_ArkUI_ImageAnimatorFrameInfo_SetDuration(ArkUI_ImageAnimatorFrameInfo * imageInfo,int32_t duration)96 void OH_ArkUI_ImageAnimatorFrameInfo_SetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t duration)
97 {
98     CHECK_NULL_VOID(imageInfo);
99     imageInfo->duration = duration;
100 }
101 
OH_ArkUI_ImageAnimatorFrameInfo_GetDuration(ArkUI_ImageAnimatorFrameInfo * imageInfo)102 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo)
103 {
104     CHECK_NULL_RETURN(imageInfo, 0);
105     return imageInfo->duration.value_or(0);
106 }
107 #ifdef __cplusplus
108 };
109 #endif
110