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