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 #include "media_asset_capi.h"
17 
18 #include "media_log.h"
19 #include "oh_media_asset.h"
20 
OH_MediaAsset_GetUri(OH_MediaAsset * mediaAsset,const char ** uri)21 MediaLibrary_ErrorCode OH_MediaAsset_GetUri(OH_MediaAsset* mediaAsset, const char** uri)
22 {
23     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
24     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
25         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
26     CHECK_AND_RETURN_RET_LOG(uri != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "uri is nullptr!");
27 
28     return mediaAsset->mediaAsset_->GetUri(uri);
29 }
30 
OH_MediaAsset_GetMediaType(OH_MediaAsset * mediaAsset,MediaLibrary_MediaType * mediaType)31 MediaLibrary_ErrorCode OH_MediaAsset_GetMediaType(OH_MediaAsset* mediaAsset, MediaLibrary_MediaType* mediaType)
32 {
33     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
34     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
35         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
36     CHECK_AND_RETURN_RET_LOG(mediaType != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaType is nullptr!");
37 
38     return mediaAsset->mediaAsset_->GetMediaType(mediaType);
39 }
40 
OH_MediaAsset_GetMediaSubType(OH_MediaAsset * mediaAsset,MediaLibrary_MediaSubType * mediaSubType)41 MediaLibrary_ErrorCode OH_MediaAsset_GetMediaSubType(OH_MediaAsset* mediaAsset,
42     MediaLibrary_MediaSubType* mediaSubType)
43 {
44     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
45     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
46         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
47     CHECK_AND_RETURN_RET_LOG(mediaSubType != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaSubType is nullptr!");
48 
49     return mediaAsset->mediaAsset_->GetMediaSubType(mediaSubType);
50 }
51 
OH_MediaAsset_GetDisplayName(OH_MediaAsset * mediaAsset,const char ** displayName)52 MediaLibrary_ErrorCode OH_MediaAsset_GetDisplayName(OH_MediaAsset* mediaAsset, const char** displayName)
53 {
54     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
55     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
56         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
57     CHECK_AND_RETURN_RET_LOG(displayName != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "displayName is nullptr!");
58 
59     return mediaAsset->mediaAsset_->GetDisplayName(displayName);
60 }
61 
OH_MediaAsset_GetSize(OH_MediaAsset * mediaAsset,uint32_t * size)62 MediaLibrary_ErrorCode OH_MediaAsset_GetSize(OH_MediaAsset* mediaAsset, uint32_t* size)
63 {
64     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
65     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
66         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
67     CHECK_AND_RETURN_RET_LOG(size != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "size is nullptr!");
68 
69     return mediaAsset->mediaAsset_->GetSize(size);
70 }
71 
OH_MediaAsset_GetDateAdded(OH_MediaAsset * mediaAsset,uint32_t * dateAdded)72 MediaLibrary_ErrorCode OH_MediaAsset_GetDateAdded(OH_MediaAsset* mediaAsset, uint32_t* dateAdded)
73 {
74     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
75     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
76         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
77     CHECK_AND_RETURN_RET_LOG(dateAdded != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "dateAdded is nullptr!");
78 
79     return mediaAsset->mediaAsset_->GetDateAdded(dateAdded);
80 }
81 
OH_MediaAsset_GetDateModified(OH_MediaAsset * mediaAsset,uint32_t * dateModified)82 MediaLibrary_ErrorCode OH_MediaAsset_GetDateModified(OH_MediaAsset* mediaAsset, uint32_t* dateModified)
83 {
84     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
85     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
86         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
87     CHECK_AND_RETURN_RET_LOG(dateModified != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "dateModified is nullptr!");
88 
89     return mediaAsset->mediaAsset_->GetDateModified(dateModified);
90 }
91 
OH_MediaAsset_GetDateTaken(OH_MediaAsset * mediaAsset,uint32_t * dateTaken)92 MediaLibrary_ErrorCode OH_MediaAsset_GetDateTaken(OH_MediaAsset* mediaAsset, uint32_t* dateTaken)
93 {
94     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
95     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
96         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
97     CHECK_AND_RETURN_RET_LOG(dateTaken != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "dateTaken is nullptr!");
98 
99     return mediaAsset->mediaAsset_->GetDateTaken(dateTaken);
100 }
101 
OH_MediaAsset_GetDateAddedMs(OH_MediaAsset * mediaAsset,uint32_t * dateAddedMs)102 MediaLibrary_ErrorCode OH_MediaAsset_GetDateAddedMs(OH_MediaAsset* mediaAsset, uint32_t* dateAddedMs)
103 {
104     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
105     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
106         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
107     CHECK_AND_RETURN_RET_LOG(dateAddedMs != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "dateAddedMs is nullptr!");
108 
109     return mediaAsset->mediaAsset_->GetDateAddedMs(dateAddedMs);
110 }
111 
OH_MediaAsset_GetDateModifiedMs(OH_MediaAsset * mediaAsset,uint32_t * dateModifiedMs)112 MediaLibrary_ErrorCode OH_MediaAsset_GetDateModifiedMs(OH_MediaAsset* mediaAsset, uint32_t* dateModifiedMs)
113 {
114     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
115     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
116         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
117     CHECK_AND_RETURN_RET_LOG(dateModifiedMs != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "dateModifiedMs is nullptr!");
118 
119     return mediaAsset->mediaAsset_->GetDateModifiedMs(dateModifiedMs);
120 }
121 
OH_MediaAsset_GetDuration(OH_MediaAsset * mediaAsset,uint32_t * duration)122 MediaLibrary_ErrorCode OH_MediaAsset_GetDuration(OH_MediaAsset* mediaAsset, uint32_t* duration)
123 {
124     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
125     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
126         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
127     CHECK_AND_RETURN_RET_LOG(duration != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "duration is nullptr!");
128 
129     return mediaAsset->mediaAsset_->GetDuration(duration);
130 }
131 
OH_MediaAsset_GetWidth(OH_MediaAsset * mediaAsset,uint32_t * width)132 MediaLibrary_ErrorCode OH_MediaAsset_GetWidth(OH_MediaAsset* mediaAsset, uint32_t* width)
133 {
134     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
135     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
136         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
137     CHECK_AND_RETURN_RET_LOG(width != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "width is nullptr!");
138 
139     return mediaAsset->mediaAsset_->GetWidth(width);
140 }
141 
OH_MediaAsset_GetHeight(OH_MediaAsset * mediaAsset,uint32_t * height)142 MediaLibrary_ErrorCode OH_MediaAsset_GetHeight(OH_MediaAsset* mediaAsset, uint32_t* height)
143 {
144     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
145     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
146         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
147     CHECK_AND_RETURN_RET_LOG(height != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "height is nullptr!");
148 
149     return mediaAsset->mediaAsset_->GetHeight(height);
150 }
151 
OH_MediaAsset_GetOrientation(OH_MediaAsset * mediaAsset,uint32_t * orientation)152 MediaLibrary_ErrorCode OH_MediaAsset_GetOrientation(OH_MediaAsset* mediaAsset, uint32_t* orientation)
153 {
154     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
155     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
156         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
157     CHECK_AND_RETURN_RET_LOG(orientation != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "orientation is nullptr!");
158 
159     return mediaAsset->mediaAsset_->GetOrientation(orientation);
160 }
161 
OH_MediaAsset_IsFavorite(OH_MediaAsset * mediaAsset,uint32_t * favorite)162 MediaLibrary_ErrorCode OH_MediaAsset_IsFavorite(OH_MediaAsset* mediaAsset, uint32_t* favorite)
163 {
164     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
165     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
166         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
167     CHECK_AND_RETURN_RET_LOG(favorite != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "favorite is nullptr!");
168 
169     return mediaAsset->mediaAsset_->IsFavorite(favorite);
170 }
171 
OH_MediaAsset_GetTitle(OH_MediaAsset * mediaAsset,const char ** title)172 MediaLibrary_ErrorCode OH_MediaAsset_GetTitle(OH_MediaAsset* mediaAsset, const char** title)
173 {
174     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
175     CHECK_AND_RETURN_RET_LOG(mediaAsset->mediaAsset_ != nullptr,
176         MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED, "mediaAsset_ is nullptr!");
177     CHECK_AND_RETURN_RET_LOG(title != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "title is nullptr!");
178 
179     return mediaAsset->mediaAsset_->GetTitle(title);
180 }
181 
OH_MediaAsset_Release(OH_MediaAsset * mediaAsset)182 MediaLibrary_ErrorCode OH_MediaAsset_Release(OH_MediaAsset* mediaAsset)
183 {
184     CHECK_AND_RETURN_RET_LOG(mediaAsset != nullptr, MEDIA_LIBRARY_PARAMETER_ERROR, "mediaAsset is nullptr!");
185 
186     delete mediaAsset;
187     mediaAsset = nullptr;
188     return MEDIA_LIBRARY_OK;
189 }