1 /*
2 * Copyright (C) 2021 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 "metadata.h"
17 #include "medialibrary_db_const.h"
18 #include "fetch_result.h"
19
20 namespace OHOS {
21 namespace Media {
22 using namespace std;
23
Metadata()24 Metadata::Metadata()
25 : id_(FILE_ID_DEFAULT),
26 uri_(URI_DEFAULT),
27 filePath_(FILE_PATH_DEFAULT),
28 relativePath_(FILE_RELATIVE_PATH_DEFAULT),
29 mimeType_(DEFAULT_FILE_MIME_TYPE),
30 mediaType_(FILE_MEDIA_TYPE_DEFAULT),
31 name_(FILE_NAME_DEFAULT),
32 size_(FILE_SIZE_DEFAULT),
33 dateModified_(FILE_DATE_MODIFIED_DEFAULT),
34 dateAdded_(FILE_DATE_ADDED_DEFAULT),
35 fileExt_(FILE_EXTENSION_DEFAULT),
36 parentId_(FILE_ID_DEFAULT),
37 title_(FILE_TITLE_DEFAULT),
38 artist_(FILE_ARTIST_DEFAULT),
39 album_(FILE_ALBUM_NAME_DEFAULT),
40 height_(FILE_HEIGHT_DEFAULT),
41 width_(FILE_WIDTH_DEFAULT),
42 duration_(FILE_DURATION_DEFAULT),
43 orientation_(FILE_ORIENTATION_DEFAULT),
44 dateTaken_(FILE_DATE_TAKEN_DEFAULT),
45 longitude_(FILE_LONGITUDE_DEFAULT),
46 latitude_(FILE_LATITUDE_DEFAULT),
47 albumId_(FILE_ALBUM_ID_DEFAULT),
48 albumName_(FILE_ALBUM_NAME_DEFAULT),
49 recyclePath_(FILE_RECYCLE_PATH_DEFAULT)
50 {
51 Init();
52 }
53
Init()54 void Metadata::Init()
55 {
56 memberFuncMap_[MEDIA_DATA_DB_ID] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileId);
57 memberFuncMap_[MEDIA_DATA_DB_URI] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetUri);
58 memberFuncMap_[MEDIA_DATA_DB_FILE_PATH] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFilePath);
59 memberFuncMap_[MEDIA_DATA_DB_RELATIVE_PATH] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetRelativePath);
60 memberFuncMap_[MEDIA_DATA_DB_MEDIA_TYPE] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileMediaType);
61 memberFuncMap_[MEDIA_DATA_DB_MIME_TYPE] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFileMimeType);
62 memberFuncMap_[MEDIA_DATA_DB_NAME] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFileName);
63 memberFuncMap_[MEDIA_DATA_DB_SIZE] = make_pair(ResultSetDataType::TYPE_INT64, &Metadata::SetFileSize);
64 memberFuncMap_[MEDIA_DATA_DB_DATE_ADDED] = make_pair(ResultSetDataType::TYPE_INT64, &Metadata::SetFileDateAdded);
65 memberFuncMap_[MEDIA_DATA_DB_TITLE] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFileTitle);
66 memberFuncMap_[MEDIA_DATA_DB_ARTIST] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFileArtist);
67 memberFuncMap_[MEDIA_DATA_DB_AUDIO_ALBUM] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetAlbum);
68 memberFuncMap_[MEDIA_DATA_DB_HEIGHT] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileHeight);
69 memberFuncMap_[MEDIA_DATA_DB_WIDTH] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileWidth);
70 memberFuncMap_[MEDIA_DATA_DB_ORIENTATION] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetOrientation);
71 memberFuncMap_[MEDIA_DATA_DB_DURATION] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileDuration);
72 memberFuncMap_[MEDIA_DATA_DB_LONGITUDE] = make_pair(ResultSetDataType::TYPE_DOUBLE, &Metadata::SetLongitude);
73 memberFuncMap_[MEDIA_DATA_DB_LATITUDE] = make_pair(ResultSetDataType::TYPE_DOUBLE, &Metadata::SetLatitude);
74 memberFuncMap_[MEDIA_DATA_DB_BUCKET_NAME] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetAlbumName);
75 memberFuncMap_[MEDIA_DATA_DB_PARENT_ID] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetParentId);
76 memberFuncMap_[MEDIA_DATA_DB_RECYCLE_PATH] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetRecyclePath);
77 memberFuncMap_[MEDIA_DATA_DB_DATE_TAKEN] = make_pair(ResultSetDataType::TYPE_INT64, &Metadata::SetDateTaken);
78 memberFuncMap_[MEDIA_DATA_DB_DATE_MODIFIED] = make_pair(ResultSetDataType::TYPE_INT64,
79 &Metadata::SetFileDateModified);
80 }
81
SetFileId(const VariantData & id)82 void Metadata::SetFileId(const VariantData &id)
83 {
84 id_ = std::get<int32_t>(id);
85 }
86
GetFileId() const87 int32_t Metadata::GetFileId() const
88 {
89 return id_;
90 }
91
SetUri(const VariantData & uri)92 void Metadata::SetUri(const VariantData &uri)
93 {
94 uri_ = std::get<string>(uri);
95 }
96
GetUri() const97 const std::string &Metadata::GetUri() const
98 {
99 return uri_;
100 }
101
SetFilePath(const VariantData & filePath)102 void Metadata::SetFilePath(const VariantData &filePath)
103 {
104 filePath_ = std::get<string>(filePath);
105 }
106
GetFilePath() const107 const std::string &Metadata::GetFilePath() const
108 {
109 return filePath_;
110 }
111
SetRelativePath(const VariantData & relativePath)112 void Metadata::SetRelativePath(const VariantData &relativePath)
113 {
114 relativePath_ = std::get<string>(relativePath);
115 }
116
GetRelativePath() const117 const std::string &Metadata::GetRelativePath() const
118 {
119 return relativePath_;
120 }
121
SetFileMimeType(const VariantData & mimeType)122 void Metadata::SetFileMimeType(const VariantData &mimeType)
123 {
124 mimeType_ = std::get<string>(mimeType);
125 }
126
GetFileMimeType() const127 const std::string &Metadata::GetFileMimeType() const
128 {
129 return mimeType_;
130 }
131
SetFileMediaType(const VariantData & mediaType)132 void Metadata::SetFileMediaType(const VariantData &mediaType)
133 {
134 mediaType_ = static_cast<MediaType>(std::get<int32_t>(mediaType));
135 }
136
GetFileMediaType() const137 MediaType Metadata::GetFileMediaType() const
138 {
139 return mediaType_;
140 }
141
SetFileName(const VariantData & name)142 void Metadata::SetFileName(const VariantData &name)
143 {
144 name_ = std::get<string>(name);
145 }
146
GetFileName() const147 const std::string &Metadata::GetFileName() const
148 {
149 return name_;
150 }
151
SetFileSize(const VariantData & size)152 void Metadata::SetFileSize(const VariantData &size)
153 {
154 size_ = std::get<int64_t>(size);
155 }
156
GetFileSize() const157 int64_t Metadata::GetFileSize() const
158 {
159 return size_;
160 }
161
SetFileDateAdded(const VariantData & dateAdded)162 void Metadata::SetFileDateAdded(const VariantData &dateAdded)
163 {
164 dateAdded_ = std::get<int64_t>(dateAdded);
165 }
166
GetFileDateAdded() const167 int64_t Metadata::GetFileDateAdded() const
168 {
169 return dateAdded_;
170 }
171
SetFileDateModified(const VariantData & dateModified)172 void Metadata::SetFileDateModified(const VariantData &dateModified)
173 {
174 dateModified_ = std::get<int64_t>(dateModified);
175 }
176
GetFileDateModified() const177 int64_t Metadata::GetFileDateModified() const
178 {
179 return dateModified_;
180 }
181
SetFileExtension(const VariantData & fileExt)182 void Metadata::SetFileExtension(const VariantData &fileExt)
183 {
184 fileExt_ = std::get<string>(fileExt);
185 }
186
GetFileExtension() const187 const std::string &Metadata::GetFileExtension() const
188 {
189 return fileExt_;
190 }
191
SetFileTitle(const VariantData & title)192 void Metadata::SetFileTitle(const VariantData &title)
193 {
194 title_ = std::get<string>(title);
195 }
196
GetFileTitle() const197 const std::string &Metadata::GetFileTitle() const
198 {
199 return title_;
200 }
201
SetFileArtist(const VariantData & artist)202 void Metadata::SetFileArtist(const VariantData &artist)
203 {
204 artist_ = std::get<string>(artist);
205 }
206
GetFileArtist() const207 const std::string &Metadata::GetFileArtist() const
208 {
209 return artist_;
210 }
211
SetAlbum(const VariantData & album)212 void Metadata::SetAlbum(const VariantData &album)
213 {
214 album_ = std::get<string>(album);
215 }
216
GetAlbum() const217 const std::string &Metadata::GetAlbum() const
218 {
219 return album_;
220 }
221
SetFileHeight(const VariantData & height)222 void Metadata::SetFileHeight(const VariantData &height)
223 {
224 height_ = std::get<int32_t>(height);
225 }
226
GetFileHeight() const227 int32_t Metadata::GetFileHeight() const
228 {
229 return height_;
230 }
231
SetFileWidth(const VariantData & width)232 void Metadata::SetFileWidth(const VariantData &width)
233 {
234 width_ = std::get<int32_t>(width);
235 }
236
GetFileWidth() const237 int32_t Metadata::GetFileWidth() const
238 {
239 return width_;
240 }
241
SetFileDuration(const VariantData & duration)242 void Metadata::SetFileDuration(const VariantData &duration)
243 {
244 duration_ = std::get<int32_t>(duration);
245 }
246
GetFileDuration() const247 int32_t Metadata::GetFileDuration() const
248 {
249 return duration_;
250 }
251
SetOrientation(const VariantData & orientation)252 void Metadata::SetOrientation(const VariantData &orientation)
253 {
254 orientation_ = std::get<int32_t>(orientation);
255 }
256
GetOrientation() const257 int32_t Metadata::GetOrientation() const
258 {
259 return orientation_;
260 }
261
SetAlbumId(const VariantData & albumId)262 void Metadata::SetAlbumId(const VariantData &albumId)
263 {
264 albumId_ = std::get<int32_t>(albumId);
265 }
266
GetAlbumId() const267 int32_t Metadata::GetAlbumId() const
268 {
269 return albumId_;
270 }
271
SetAlbumName(const VariantData & albumName)272 void Metadata::SetAlbumName(const VariantData &albumName)
273 {
274 albumName_ = std::get<string>(albumName);
275 }
276
GetAlbumName() const277 const std::string &Metadata::GetAlbumName() const
278 {
279 return albumName_;
280 }
281
SetParentId(const VariantData & parentId)282 void Metadata::SetParentId(const VariantData &parentId)
283 {
284 parentId_ = std::get<int32_t>(parentId);
285 }
286
GetParentId() const287 int32_t Metadata::GetParentId() const
288 {
289 return parentId_;
290 }
291
SetRecyclePath(const VariantData & recyclePath)292 void Metadata::SetRecyclePath(const VariantData &recyclePath)
293 {
294 recyclePath_ = std::get<string>(recyclePath);
295 }
296
GetRecyclePath() const297 const std::string &Metadata::GetRecyclePath() const
298 {
299 return recyclePath_;
300 }
301
SetDateTaken(const VariantData & dateTaken)302 void Metadata::SetDateTaken(const VariantData &dateTaken)
303 {
304 dateTaken_ = std::get<int64_t>(dateTaken);
305 }
306
GetDateTaken() const307 int64_t Metadata::GetDateTaken() const
308 {
309 return dateTaken_;
310 }
311
SetLongitude(const VariantData & longitude)312 void Metadata::SetLongitude(const VariantData &longitude)
313 {
314 longitude_ = std::get<double>(longitude);
315 }
316
GetLongitude() const317 double Metadata::GetLongitude() const
318 {
319 return longitude_;
320 }
321
SetLatitude(const VariantData & latitude)322 void Metadata::SetLatitude(const VariantData &latitude)
323 {
324 latitude_ = std::get<double>(latitude);
325 }
326
GetLatitude() const327 double Metadata::GetLatitude() const
328 {
329 return latitude_;
330 }
331 } // namespace Media
332 } // namespace OHOS
333