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