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 const MediaType FILE_MEDIA_TYPE_DEFAULT = MEDIA_TYPE_FILE;
24 
Metadata()25 Metadata::Metadata()
26     : id_(FILE_ID_DEFAULT),
27     uri_(URI_DEFAULT),
28     filePath_(FILE_PATH_DEFAULT),
29     relativePath_(FILE_RELATIVE_PATH_DEFAULT),
30     mimeType_(DEFAULT_FILE_MIME_TYPE),
31     mediaType_(FILE_MEDIA_TYPE_DEFAULT),
32     name_(FILE_NAME_DEFAULT),
33     size_(FILE_SIZE_DEFAULT),
34     dateModified_(FILE_DATE_MODIFIED_DEFAULT),
35     dateAdded_(FILE_DATE_ADDED_DEFAULT),
36     fileExt_(FILE_EXTENSION_DEFAULT),
37     parentId_(FILE_ID_DEFAULT),
38     title_(FILE_TITLE_DEFAULT),
39     artist_(FILE_ARTIST_DEFAULT),
40     album_(FILE_ALBUM_NAME_DEFAULT),
41     height_(FILE_HEIGHT_DEFAULT),
42     width_(FILE_WIDTH_DEFAULT),
43     duration_(FILE_DURATION_DEFAULT),
44     orientation_(FILE_ORIENTATION_DEFAULT),
45     shootingMode_(FILE_SHOOTINGMODE_DEFAULT),
46     lastVisitTime_(FILE_LAST_VISIT_TIME_DEFAULT),
47     dynamicRangeType_(FILE_DYNAMIC_RANGE_TYPE_DEFAULT),
48     dateTaken_(FILE_DATE_TAKEN_DEFAULT),
49     longitude_(FILE_LONGITUDE_DEFAULT),
50     latitude_(FILE_LATITUDE_DEFAULT),
51     userComment_(FILE_USER_COMMENT_DEFAULT),
52     allExif_(FILE_All_EXIF_DEFAULT),
53     albumId_(FILE_ALBUM_ID_DEFAULT),
54     albumName_(FILE_ALBUM_NAME_DEFAULT),
55     recyclePath_(FILE_RECYCLE_PATH_DEFAULT),
56     timePending_(FILE_TIME_PENDING_DEFAULT),
57     isTemp_(FILE_IS_TEMP_DEFAULT),
58     frontcamera_(FILE_FRONT_CAMERA_DEFAULT),
59     detailTime_(FILE_DETAIL_TIME_DEFAULT)
60 {
61     Init();
62 }
63 
Init()64 void Metadata::Init()
65 {
66     memberFuncMap_[MEDIA_DATA_DB_ID] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileId);
67     memberFuncMap_[MEDIA_DATA_DB_URI] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetUri);
68     memberFuncMap_[MEDIA_DATA_DB_FILE_PATH] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFilePath);
69     memberFuncMap_[MEDIA_DATA_DB_RELATIVE_PATH] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetRelativePath);
70     memberFuncMap_[MEDIA_DATA_DB_MEDIA_TYPE] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileMediaType);
71     memberFuncMap_[MEDIA_DATA_DB_MIME_TYPE] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFileMimeType);
72     memberFuncMap_[MEDIA_DATA_DB_NAME] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFileName);
73     memberFuncMap_[MEDIA_DATA_DB_SIZE] = make_pair(ResultSetDataType::TYPE_INT64, &Metadata::SetFileSize);
74     memberFuncMap_[MEDIA_DATA_DB_DATE_ADDED] = make_pair(ResultSetDataType::TYPE_INT64, &Metadata::SetFileDateAdded);
75     memberFuncMap_[MEDIA_DATA_DB_TITLE] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFileTitle);
76     memberFuncMap_[MEDIA_DATA_DB_ARTIST] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFileArtist);
77     memberFuncMap_[MEDIA_DATA_DB_AUDIO_ALBUM] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetAlbum);
78     memberFuncMap_[MEDIA_DATA_DB_HEIGHT] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileHeight);
79     memberFuncMap_[MEDIA_DATA_DB_WIDTH] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileWidth);
80     memberFuncMap_[MEDIA_DATA_DB_ORIENTATION] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetOrientation);
81     memberFuncMap_[MEDIA_DATA_DB_DURATION] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileDuration);
82     memberFuncMap_[MEDIA_DATA_DB_LONGITUDE] = make_pair(ResultSetDataType::TYPE_DOUBLE, &Metadata::SetLongitude);
83     memberFuncMap_[MEDIA_DATA_DB_LATITUDE] = make_pair(ResultSetDataType::TYPE_DOUBLE, &Metadata::SetLatitude);
84     memberFuncMap_[MEDIA_DATA_DB_BUCKET_NAME] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetAlbumName);
85     memberFuncMap_[MEDIA_DATA_DB_PARENT_ID] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetParentId);
86     memberFuncMap_[MEDIA_DATA_DB_RECYCLE_PATH] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetRecyclePath);
87     memberFuncMap_[MEDIA_DATA_DB_DATE_TAKEN] = make_pair(ResultSetDataType::TYPE_INT64, &Metadata::SetDateTaken);
88     memberFuncMap_[MEDIA_DATA_DB_DATE_MODIFIED] = make_pair(ResultSetDataType::TYPE_INT64,
89         &Metadata::SetFileDateModified);
90     memberFuncMap_[MEDIA_DATA_DB_TIME_PENDING] = make_pair(ResultSetDataType::TYPE_INT64, &Metadata::SetTimePending);
91     memberFuncMap_[PhotoColumn::PHOTO_USER_COMMENT] = make_pair(ResultSetDataType::TYPE_STRING,
92         &Metadata::SetUserComment);
93     memberFuncMap_[PhotoColumn::PHOTO_ALL_EXIF] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetAllExif);
94     memberFuncMap_[PhotoColumn::PHOTO_DATE_YEAR] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetDateYear);
95     memberFuncMap_[PhotoColumn::PHOTO_DATE_MONTH] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetDateMonth);
96     memberFuncMap_[PhotoColumn::PHOTO_DATE_DAY] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetDateDay);
97     memberFuncMap_[PhotoColumn::MEDIA_OWNER_PACKAGE] = make_pair(ResultSetDataType::TYPE_STRING,
98         &Metadata::SetOwnerPackage);
99     memberFuncMap_[PhotoColumn::PHOTO_SUBTYPE] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetPhotoSubType);
100     memberFuncMap_[PhotoColumn::MOVING_PHOTO_EFFECT_MODE] = make_pair(ResultSetDataType::TYPE_INT32,
101         &Metadata::SetMovingPhotoEffectMode);
102     memberFuncMap_[PhotoColumn::PHOTO_DYNAMIC_RANGE_TYPE] = make_pair(ResultSetDataType::TYPE_INT32,
103         &Metadata::SetDynamicRangeType);
104     memberFuncMap_[PhotoColumn::PHOTO_IS_TEMP] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetIsTemp);
105     memberFuncMap_[PhotoColumn::PHOTO_QUALITY] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetPhotoQuality);
106     memberFuncMap_[PhotoColumn::PHOTO_DIRTY] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetDirty);
107     memberFuncMap_[PhotoColumn::PHOTO_FRONT_CAMERA] = make_pair(ResultSetDataType::TYPE_STRING,
108         &Metadata::SetFrontCamera);
109     memberFuncMap_[PhotoColumn::MEDIA_FILE_PATH] = make_pair(ResultSetDataType::TYPE_STRING,
110         &Metadata::SetMovingPhotoImagePath);
111     memberFuncMap_[PhotoColumn::PHOTO_DETAIL_TIME] = make_pair(ResultSetDataType::TYPE_STRING,
112         &Metadata::SetDetailTime);
113 }
114 
SetFileId(const VariantData & id)115 void Metadata::SetFileId(const VariantData &id)
116 {
117     id_ = std::get<int32_t>(id);
118 }
119 
GetFileId() const120 int32_t Metadata::GetFileId() const
121 {
122     return id_;
123 }
124 
SetUri(const VariantData & uri)125 void Metadata::SetUri(const VariantData &uri)
126 {
127     uri_ = std::get<string>(uri);
128 }
129 
GetUri() const130 const std::string &Metadata::GetUri() const
131 {
132     return uri_;
133 }
134 
SetFilePath(const VariantData & filePath)135 void Metadata::SetFilePath(const VariantData &filePath)
136 {
137     filePath_ = std::get<string>(filePath);
138 }
139 
GetFilePath() const140 const std::string &Metadata::GetFilePath() const
141 {
142     return filePath_;
143 }
144 
SetRelativePath(const VariantData & relativePath)145 void Metadata::SetRelativePath(const VariantData &relativePath)
146 {
147     relativePath_ = std::get<string>(relativePath);
148 }
149 
GetRelativePath() const150 const std::string &Metadata::GetRelativePath() const
151 {
152     return relativePath_;
153 }
154 
SetFileMimeType(const VariantData & mimeType)155 void Metadata::SetFileMimeType(const VariantData &mimeType)
156 {
157     mimeType_ = std::get<string>(mimeType);
158 }
159 
GetFileMimeType() const160 const std::string &Metadata::GetFileMimeType() const
161 {
162     return mimeType_;
163 }
164 
SetFileMediaType(const VariantData & mediaType)165 void Metadata::SetFileMediaType(const VariantData &mediaType)
166 {
167     mediaType_ = static_cast<MediaType>(std::get<int32_t>(mediaType));
168 }
169 
GetFileMediaType() const170 MediaType Metadata::GetFileMediaType() const
171 {
172     return mediaType_;
173 }
174 
SetFileName(const VariantData & name)175 void Metadata::SetFileName(const VariantData &name)
176 {
177     name_ = std::get<string>(name);
178 }
179 
GetFileName() const180 const std::string &Metadata::GetFileName() const
181 {
182     return name_;
183 }
184 
SetFileSize(const VariantData & size)185 void Metadata::SetFileSize(const VariantData &size)
186 {
187     size_ = std::get<int64_t>(size);
188 }
189 
GetFileSize() const190 int64_t Metadata::GetFileSize() const
191 {
192     return size_;
193 }
194 
SetFileDateAdded(const VariantData & dateAdded)195 void Metadata::SetFileDateAdded(const VariantData &dateAdded)
196 {
197     dateAdded_ = std::get<int64_t>(dateAdded);
198 }
199 
GetFileDateAdded() const200 int64_t Metadata::GetFileDateAdded() const
201 {
202     return dateAdded_;
203 }
204 
SetFileDateModified(const VariantData & dateModified)205 void Metadata::SetFileDateModified(const VariantData &dateModified)
206 {
207     dateModified_ = std::get<int64_t>(dateModified);
208 }
209 
GetFileDateModified() const210 int64_t Metadata::GetFileDateModified() const
211 {
212     return dateModified_;
213 }
214 
SetFileExtension(const VariantData & fileExt)215 void Metadata::SetFileExtension(const VariantData &fileExt)
216 {
217     fileExt_ = std::get<string>(fileExt);
218 }
219 
GetFileExtension() const220 const std::string &Metadata::GetFileExtension() const
221 {
222     return fileExt_;
223 }
224 
SetFileTitle(const VariantData & title)225 void Metadata::SetFileTitle(const VariantData &title)
226 {
227     title_ = std::get<string>(title);
228 }
229 
GetFileTitle() const230 const std::string &Metadata::GetFileTitle() const
231 {
232     return title_;
233 }
234 
SetFileArtist(const VariantData & artist)235 void Metadata::SetFileArtist(const VariantData &artist)
236 {
237     artist_ = std::get<string>(artist);
238 }
239 
GetFileArtist() const240 const std::string &Metadata::GetFileArtist() const
241 {
242     return artist_;
243 }
244 
SetAlbum(const VariantData & album)245 void Metadata::SetAlbum(const VariantData &album)
246 {
247     album_ = std::get<string>(album);
248 }
249 
GetAlbum() const250 const std::string &Metadata::GetAlbum() const
251 {
252     return album_;
253 }
254 
SetFileHeight(const VariantData & height)255 void Metadata::SetFileHeight(const VariantData &height)
256 {
257     height_ = std::get<int32_t>(height);
258 }
259 
GetFileHeight() const260 int32_t Metadata::GetFileHeight() const
261 {
262     return height_;
263 }
264 
SetFileWidth(const VariantData & width)265 void Metadata::SetFileWidth(const VariantData &width)
266 {
267     width_ = std::get<int32_t>(width);
268 }
269 
GetFileWidth() const270 int32_t Metadata::GetFileWidth() const
271 {
272     return width_;
273 }
274 
SetFileDuration(const VariantData & duration)275 void Metadata::SetFileDuration(const VariantData &duration)
276 {
277     duration_ = std::get<int32_t>(duration);
278 }
279 
GetFileDuration() const280 int32_t Metadata::GetFileDuration() const
281 {
282     return duration_;
283 }
284 
SetOrientation(const VariantData & orientation)285 void Metadata::SetOrientation(const VariantData &orientation)
286 {
287     orientation_ = std::get<int32_t>(orientation);
288 }
289 
GetOrientation() const290 int32_t Metadata::GetOrientation() const
291 {
292     return orientation_;
293 }
294 
SetAlbumId(const VariantData & albumId)295 void Metadata::SetAlbumId(const VariantData &albumId)
296 {
297     albumId_ = std::get<int32_t>(albumId);
298 }
299 
GetAlbumId() const300 int32_t Metadata::GetAlbumId() const
301 {
302     return albumId_;
303 }
304 
SetAlbumName(const VariantData & albumName)305 void Metadata::SetAlbumName(const VariantData &albumName)
306 {
307     albumName_ = std::get<string>(albumName);
308 }
309 
GetAlbumName() const310 const std::string &Metadata::GetAlbumName() const
311 {
312     return albumName_;
313 }
314 
SetParentId(const VariantData & parentId)315 void Metadata::SetParentId(const VariantData &parentId)
316 {
317     parentId_ = std::get<int32_t>(parentId);
318 }
319 
GetParentId() const320 int32_t Metadata::GetParentId() const
321 {
322     return parentId_;
323 }
324 
SetRecyclePath(const VariantData & recyclePath)325 void Metadata::SetRecyclePath(const VariantData &recyclePath)
326 {
327     recyclePath_ = std::get<string>(recyclePath);
328 }
329 
GetRecyclePath() const330 const std::string &Metadata::GetRecyclePath() const
331 {
332     return recyclePath_;
333 }
334 
SetDateTaken(const VariantData & dateTaken)335 void Metadata::SetDateTaken(const VariantData &dateTaken)
336 {
337     dateTaken_ = std::get<int64_t>(dateTaken);
338 }
339 
GetDateTaken() const340 int64_t Metadata::GetDateTaken() const
341 {
342     return dateTaken_;
343 }
344 
SetLongitude(const VariantData & longitude)345 void Metadata::SetLongitude(const VariantData &longitude)
346 {
347     longitude_ = std::get<double>(longitude);
348 }
349 
GetLongitude() const350 double Metadata::GetLongitude() const
351 {
352     return longitude_;
353 }
354 
SetLatitude(const VariantData & latitude)355 void Metadata::SetLatitude(const VariantData &latitude)
356 {
357     latitude_ = std::get<double>(latitude);
358 }
359 
GetLatitude() const360 double Metadata::GetLatitude() const
361 {
362     return latitude_;
363 }
364 
SetTimePending(const VariantData & timePending)365 void Metadata::SetTimePending(const VariantData &timePending)
366 {
367     timePending_ = std::get<int64_t>(timePending);
368 }
369 
GetTimePending() const370 int64_t Metadata::GetTimePending() const
371 {
372     return timePending_;
373 }
374 
SetUserComment(const VariantData & userComment)375 void Metadata::SetUserComment(const VariantData &userComment)
376 {
377     userComment_ = get<string>(userComment);
378 }
379 
GetUserComment() const380 const string &Metadata::GetUserComment() const
381 {
382     return userComment_;
383 }
384 
SetAllExif(const VariantData & allExif)385 void Metadata::SetAllExif(const VariantData &allExif)
386 {
387     allExif_ = get<string>(allExif);
388 }
389 
GetAllExif() const390 const string &Metadata::GetAllExif() const
391 {
392     return allExif_;
393 }
394 
SetDateYear(const VariantData & dateYear)395 void Metadata::SetDateYear(const VariantData &dateYear)
396 {
397     dateYear_ = get<string>(dateYear);
398 }
399 
getDateYear() const400 const string &Metadata::getDateYear() const
401 {
402     return dateYear_;
403 }
404 
SetDateMonth(const VariantData & dateMonth)405 void Metadata::SetDateMonth(const VariantData &dateMonth)
406 {
407     dateMonth_ = get<string>(dateMonth);
408 }
409 
getDateMonth() const410 const string &Metadata::getDateMonth() const
411 {
412     return dateMonth_;
413 }
414 
SetDateDay(const VariantData & dateDay)415 void Metadata::SetDateDay(const VariantData &dateDay)
416 {
417     dateDay_ = get<string>(dateDay);
418 }
419 
GetDateDay() const420 const string &Metadata::GetDateDay() const
421 {
422     return dateDay_;
423 }
424 
SetShootingMode(const VariantData & shootingMode)425 void Metadata::SetShootingMode(const VariantData &shootingMode)
426 {
427     shootingMode_ = get<string>(shootingMode);
428 }
429 
SetShootingModeTag(const VariantData & shootingModeTag)430 void Metadata::SetShootingModeTag(const VariantData &shootingModeTag)
431 {
432     shootingModeTag_ = get<string>(shootingModeTag);
433 }
434 
GetShootingMode() const435 const string &Metadata::GetShootingMode() const
436 {
437     return shootingMode_;
438 }
439 
GetShootingModeTag() const440 const string &Metadata::GetShootingModeTag() const
441 {
442     return shootingModeTag_;
443 }
444 
SetPhotoSubType(const VariantData & photoSubType)445 void Metadata::SetPhotoSubType(const VariantData &photoSubType)
446 {
447     photoSubType_ = std::get<int32_t>(photoSubType);
448 }
449 
GetPhotoSubType() const450 int32_t Metadata::GetPhotoSubType() const
451 {
452     return photoSubType_;
453 }
454 
SetMovingPhotoEffectMode(const VariantData & movingPhotoEffectMode)455 void Metadata::SetMovingPhotoEffectMode(const VariantData &movingPhotoEffectMode)
456 {
457     movingPhotoEffectMode_ = std::get<int32_t>(movingPhotoEffectMode);
458 }
459 
GetMovingPhotoEffectMode() const460 int32_t Metadata::GetMovingPhotoEffectMode() const
461 {
462     return movingPhotoEffectMode_;
463 }
464 
SetTableName(const string & tableName)465 void Metadata::SetTableName(const string &tableName)
466 {
467     tableName_ = tableName;
468 }
469 
GetTableName()470 string Metadata::GetTableName()
471 {
472     return tableName_;
473 }
474 
SetForAdd(bool forAdd)475 void Metadata::SetForAdd(bool forAdd)
476 {
477     forAdd_ = forAdd;
478 }
479 
GetForAdd() const480 bool Metadata::GetForAdd() const
481 {
482     return forAdd_;
483 }
484 
SetLastVisitTime(const VariantData & lastVisitTime)485 void Metadata::SetLastVisitTime(const VariantData &lastVisitTime)
486 {
487     lastVisitTime_ = std::get<int64_t>(lastVisitTime);
488 }
489 
GetLastVisitTime() const490 int64_t Metadata::GetLastVisitTime() const
491 {
492     return lastVisitTime_;
493 }
494 
SetOwnerPackage(const VariantData & ownerPackage)495 void Metadata::SetOwnerPackage(const VariantData &ownerPackage)
496 {
497     ownerPackage_ = get<string>(ownerPackage);
498 }
499 
GetOwnerPackage() const500 const std::string Metadata::GetOwnerPackage() const
501 {
502     return ownerPackage_;
503 }
504 
SetDynamicRangeType(const VariantData & type)505 void Metadata::SetDynamicRangeType(const VariantData &type)
506 {
507     dynamicRangeType_ = std::get<int32_t>(type);
508 }
509 
GetDynamicRangeType() const510 int32_t Metadata::GetDynamicRangeType() const
511 {
512     return dynamicRangeType_;
513 }
514 
SetMovingPhotoImagePath(const VariantData & imagePath)515 void Metadata::SetMovingPhotoImagePath(const VariantData &imagePath)
516 {
517     movingPhotoImagePath_ = std::get<string>(imagePath);
518 }
519 
GetMovingPhotoImagePath() const520 std::string Metadata::GetMovingPhotoImagePath() const
521 {
522     return movingPhotoImagePath_;
523 }
524 
SetCoverPosition(const VariantData & coverPosition)525 void Metadata::SetCoverPosition(const VariantData &coverPosition)
526 {
527     coverPosition_ = std::get<int64_t>(coverPosition);
528 }
529 
GetCoverPosition() const530 int64_t Metadata::GetCoverPosition() const
531 {
532     return coverPosition_;
533 }
534 
SetFrameIndex(const VariantData & frameIndex)535 void Metadata::SetFrameIndex(const VariantData &frameIndex)
536 {
537     frameIndex_ = std::get<int32_t>(frameIndex);
538 }
539 
GetFrameIndex() const540 int32_t Metadata::GetFrameIndex() const
541 {
542     return frameIndex_;
543 }
544 
SetIsTemp(const VariantData & isTemp)545 void Metadata::SetIsTemp(const VariantData &isTemp)
546 {
547     isTemp_ = std::get<int32_t>(isTemp);
548 }
549 
GetIsTemp() const550 int32_t Metadata::GetIsTemp() const
551 {
552     return isTemp_;
553 }
554 
SetPhotoQuality(const VariantData & photoQuality)555 void Metadata::SetPhotoQuality(const VariantData &photoQuality)
556 {
557     photoQuality_ = std::get<int32_t>(photoQuality);
558 }
559 
GetPhotoQuality() const560 int32_t Metadata::GetPhotoQuality() const
561 {
562     return photoQuality_;
563 }
564 
SetDirty(const VariantData & dirty)565 void Metadata::SetDirty(const VariantData &dirty)
566 {
567     dirty_ = std::get<int32_t>(dirty);
568 }
569 
GetDirty() const570 int32_t Metadata::GetDirty() const
571 {
572     return dirty_;
573 }
574 
SetFrontCamera(const VariantData & frontcamera)575 void Metadata::SetFrontCamera(const VariantData &frontcamera)
576 {
577     frontcamera_ = std::get<string>(frontcamera);
578 }
579 
GetFrontCamera() const580 std::string Metadata::GetFrontCamera() const
581 {
582     return frontcamera_;
583 }
584 
SetDetailTime(const VariantData & detailTime)585 void Metadata::SetDetailTime(const VariantData &detailTime)
586 {
587     detailTime_ = std::get<string>(detailTime);
588 }
589 
GetDetailTime() const590 std::string Metadata::GetDetailTime() const
591 {
592     return detailTime_;
593 }
594 } // namespace Media
595 } // namespace OHOS
596