• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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     shootingMode_(FILE_SHOOTINGMODE_DEFAULT),
45     lastVisitTime_(FILE_LAST_VISIT_TIME_DEFAULT),
46     dateTaken_(FILE_DATE_TAKEN_DEFAULT),
47     longitude_(FILE_LONGITUDE_DEFAULT),
48     latitude_(FILE_LATITUDE_DEFAULT),
49     userComment_(FILE_USER_COMMENT_DEFAULT),
50     allExif_(FILE_All_EXIF_DEFAULT),
51     albumId_(FILE_ALBUM_ID_DEFAULT),
52     albumName_(FILE_ALBUM_NAME_DEFAULT),
53     recyclePath_(FILE_RECYCLE_PATH_DEFAULT),
54     timePending_(FILE_TIME_PENDING_DEFAULT)
55 {
56     Init();
57 }
58 
Init()59 void Metadata::Init()
60 {
61     memberFuncMap_[MEDIA_DATA_DB_ID] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileId);
62     memberFuncMap_[MEDIA_DATA_DB_URI] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetUri);
63     memberFuncMap_[MEDIA_DATA_DB_FILE_PATH] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFilePath);
64     memberFuncMap_[MEDIA_DATA_DB_RELATIVE_PATH] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetRelativePath);
65     memberFuncMap_[MEDIA_DATA_DB_MEDIA_TYPE] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileMediaType);
66     memberFuncMap_[MEDIA_DATA_DB_MIME_TYPE] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFileMimeType);
67     memberFuncMap_[MEDIA_DATA_DB_NAME] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFileName);
68     memberFuncMap_[MEDIA_DATA_DB_SIZE] = make_pair(ResultSetDataType::TYPE_INT64, &Metadata::SetFileSize);
69     memberFuncMap_[MEDIA_DATA_DB_DATE_ADDED] = make_pair(ResultSetDataType::TYPE_INT64, &Metadata::SetFileDateAdded);
70     memberFuncMap_[MEDIA_DATA_DB_TITLE] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFileTitle);
71     memberFuncMap_[MEDIA_DATA_DB_ARTIST] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetFileArtist);
72     memberFuncMap_[MEDIA_DATA_DB_AUDIO_ALBUM] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetAlbum);
73     memberFuncMap_[MEDIA_DATA_DB_HEIGHT] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileHeight);
74     memberFuncMap_[MEDIA_DATA_DB_WIDTH] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileWidth);
75     memberFuncMap_[MEDIA_DATA_DB_ORIENTATION] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetOrientation);
76     memberFuncMap_[MEDIA_DATA_DB_DURATION] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetFileDuration);
77     memberFuncMap_[MEDIA_DATA_DB_LONGITUDE] = make_pair(ResultSetDataType::TYPE_DOUBLE, &Metadata::SetLongitude);
78     memberFuncMap_[MEDIA_DATA_DB_LATITUDE] = make_pair(ResultSetDataType::TYPE_DOUBLE, &Metadata::SetLatitude);
79     memberFuncMap_[MEDIA_DATA_DB_BUCKET_NAME] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetAlbumName);
80     memberFuncMap_[MEDIA_DATA_DB_PARENT_ID] = make_pair(ResultSetDataType::TYPE_INT32, &Metadata::SetParentId);
81     memberFuncMap_[MEDIA_DATA_DB_RECYCLE_PATH] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetRecyclePath);
82     memberFuncMap_[MEDIA_DATA_DB_DATE_TAKEN] = make_pair(ResultSetDataType::TYPE_INT64, &Metadata::SetDateTaken);
83     memberFuncMap_[MEDIA_DATA_DB_DATE_MODIFIED] = make_pair(ResultSetDataType::TYPE_INT64,
84         &Metadata::SetFileDateModified);
85     memberFuncMap_[MEDIA_DATA_DB_TIME_PENDING] = make_pair(ResultSetDataType::TYPE_INT64, &Metadata::SetTimePending);
86     memberFuncMap_[PhotoColumn::PHOTO_USER_COMMENT] = make_pair(ResultSetDataType::TYPE_STRING,
87         &Metadata::SetUserComment);
88     memberFuncMap_[PhotoColumn::PHOTO_ALL_EXIF] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetAllExif);
89     memberFuncMap_[PhotoColumn::PHOTO_DATE_YEAR] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetDateYear);
90     memberFuncMap_[PhotoColumn::PHOTO_DATE_MONTH] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetDateMonth);
91     memberFuncMap_[PhotoColumn::PHOTO_DATE_DAY] = make_pair(ResultSetDataType::TYPE_STRING, &Metadata::SetDateDay);
92 }
93 
SetFileId(const VariantData & id)94 void Metadata::SetFileId(const VariantData &id)
95 {
96     id_ = std::get<int32_t>(id);
97 }
98 
GetFileId() const99 int32_t Metadata::GetFileId() const
100 {
101     return id_;
102 }
103 
SetUri(const VariantData & uri)104 void Metadata::SetUri(const VariantData &uri)
105 {
106     uri_ = std::get<string>(uri);
107 }
108 
GetUri() const109 const std::string &Metadata::GetUri() const
110 {
111     return uri_;
112 }
113 
SetFilePath(const VariantData & filePath)114 void Metadata::SetFilePath(const VariantData &filePath)
115 {
116     filePath_ = std::get<string>(filePath);
117 }
118 
GetFilePath() const119 const std::string &Metadata::GetFilePath() const
120 {
121     return filePath_;
122 }
123 
SetRelativePath(const VariantData & relativePath)124 void Metadata::SetRelativePath(const VariantData &relativePath)
125 {
126     relativePath_ = std::get<string>(relativePath);
127 }
128 
GetRelativePath() const129 const std::string &Metadata::GetRelativePath() const
130 {
131     return relativePath_;
132 }
133 
SetFileMimeType(const VariantData & mimeType)134 void Metadata::SetFileMimeType(const VariantData &mimeType)
135 {
136     mimeType_ = std::get<string>(mimeType);
137 }
138 
GetFileMimeType() const139 const std::string &Metadata::GetFileMimeType() const
140 {
141     return mimeType_;
142 }
143 
SetFileMediaType(const VariantData & mediaType)144 void Metadata::SetFileMediaType(const VariantData &mediaType)
145 {
146     mediaType_ = static_cast<MediaType>(std::get<int32_t>(mediaType));
147 }
148 
GetFileMediaType() const149 MediaType Metadata::GetFileMediaType() const
150 {
151     return mediaType_;
152 }
153 
SetFileName(const VariantData & name)154 void Metadata::SetFileName(const VariantData &name)
155 {
156     name_ = std::get<string>(name);
157 }
158 
GetFileName() const159 const std::string &Metadata::GetFileName() const
160 {
161     return name_;
162 }
163 
SetFileSize(const VariantData & size)164 void Metadata::SetFileSize(const VariantData &size)
165 {
166     size_ = std::get<int64_t>(size);
167 }
168 
GetFileSize() const169 int64_t Metadata::GetFileSize() const
170 {
171     return size_;
172 }
173 
SetFileDateAdded(const VariantData & dateAdded)174 void Metadata::SetFileDateAdded(const VariantData &dateAdded)
175 {
176     dateAdded_ = std::get<int64_t>(dateAdded);
177 }
178 
GetFileDateAdded() const179 int64_t Metadata::GetFileDateAdded() const
180 {
181     return dateAdded_;
182 }
183 
SetFileDateModified(const VariantData & dateModified)184 void Metadata::SetFileDateModified(const VariantData &dateModified)
185 {
186     dateModified_ = std::get<int64_t>(dateModified);
187 }
188 
GetFileDateModified() const189 int64_t Metadata::GetFileDateModified() const
190 {
191     return dateModified_;
192 }
193 
SetFileExtension(const VariantData & fileExt)194 void Metadata::SetFileExtension(const VariantData &fileExt)
195 {
196     fileExt_ = std::get<string>(fileExt);
197 }
198 
GetFileExtension() const199 const std::string &Metadata::GetFileExtension() const
200 {
201     return fileExt_;
202 }
203 
SetFileTitle(const VariantData & title)204 void Metadata::SetFileTitle(const VariantData &title)
205 {
206     title_ = std::get<string>(title);
207 }
208 
GetFileTitle() const209 const std::string &Metadata::GetFileTitle() const
210 {
211     return title_;
212 }
213 
SetFileArtist(const VariantData & artist)214 void Metadata::SetFileArtist(const VariantData &artist)
215 {
216     artist_ = std::get<string>(artist);
217 }
218 
GetFileArtist() const219 const std::string &Metadata::GetFileArtist() const
220 {
221     return artist_;
222 }
223 
SetAlbum(const VariantData & album)224 void Metadata::SetAlbum(const VariantData &album)
225 {
226     album_ = std::get<string>(album);
227 }
228 
GetAlbum() const229 const std::string &Metadata::GetAlbum() const
230 {
231     return album_;
232 }
233 
SetFileHeight(const VariantData & height)234 void Metadata::SetFileHeight(const VariantData &height)
235 {
236     height_ = std::get<int32_t>(height);
237 }
238 
GetFileHeight() const239 int32_t Metadata::GetFileHeight() const
240 {
241     return height_;
242 }
243 
SetFileWidth(const VariantData & width)244 void Metadata::SetFileWidth(const VariantData &width)
245 {
246     width_ = std::get<int32_t>(width);
247 }
248 
GetFileWidth() const249 int32_t Metadata::GetFileWidth() const
250 {
251     return width_;
252 }
253 
SetFileDuration(const VariantData & duration)254 void Metadata::SetFileDuration(const VariantData &duration)
255 {
256     duration_ = std::get<int32_t>(duration);
257 }
258 
GetFileDuration() const259 int32_t Metadata::GetFileDuration() const
260 {
261     return duration_;
262 }
263 
SetOrientation(const VariantData & orientation)264 void Metadata::SetOrientation(const VariantData &orientation)
265 {
266     orientation_ = std::get<int32_t>(orientation);
267 }
268 
GetOrientation() const269 int32_t Metadata::GetOrientation() const
270 {
271     return orientation_;
272 }
273 
SetAlbumId(const VariantData & albumId)274 void Metadata::SetAlbumId(const VariantData &albumId)
275 {
276     albumId_ = std::get<int32_t>(albumId);
277 }
278 
GetAlbumId() const279 int32_t Metadata::GetAlbumId() const
280 {
281     return albumId_;
282 }
283 
SetAlbumName(const VariantData & albumName)284 void Metadata::SetAlbumName(const VariantData &albumName)
285 {
286     albumName_ = std::get<string>(albumName);
287 }
288 
GetAlbumName() const289 const std::string &Metadata::GetAlbumName() const
290 {
291     return albumName_;
292 }
293 
SetParentId(const VariantData & parentId)294 void Metadata::SetParentId(const VariantData &parentId)
295 {
296     parentId_ = std::get<int32_t>(parentId);
297 }
298 
GetParentId() const299 int32_t Metadata::GetParentId() const
300 {
301     return parentId_;
302 }
303 
SetRecyclePath(const VariantData & recyclePath)304 void Metadata::SetRecyclePath(const VariantData &recyclePath)
305 {
306     recyclePath_ = std::get<string>(recyclePath);
307 }
308 
GetRecyclePath() const309 const std::string &Metadata::GetRecyclePath() const
310 {
311     return recyclePath_;
312 }
313 
SetDateTaken(const VariantData & dateTaken)314 void Metadata::SetDateTaken(const VariantData &dateTaken)
315 {
316     dateTaken_ = std::get<int64_t>(dateTaken);
317 }
318 
GetDateTaken() const319 int64_t Metadata::GetDateTaken() const
320 {
321     return dateTaken_;
322 }
323 
SetLongitude(const VariantData & longitude)324 void Metadata::SetLongitude(const VariantData &longitude)
325 {
326     longitude_ = std::get<double>(longitude);
327 }
328 
GetLongitude() const329 double Metadata::GetLongitude() const
330 {
331     return longitude_;
332 }
333 
SetLatitude(const VariantData & latitude)334 void Metadata::SetLatitude(const VariantData &latitude)
335 {
336     latitude_ = std::get<double>(latitude);
337 }
338 
GetLatitude() const339 double Metadata::GetLatitude() const
340 {
341     return latitude_;
342 }
343 
SetTimePending(const VariantData & timePending)344 void Metadata::SetTimePending(const VariantData &timePending)
345 {
346     timePending_ = std::get<int64_t>(timePending);
347 }
348 
GetTimePending() const349 int64_t Metadata::GetTimePending() const
350 {
351     return timePending_;
352 }
353 
SetUserComment(const VariantData & userComment)354 void Metadata::SetUserComment(const VariantData &userComment)
355 {
356     userComment_ = get<string>(userComment);
357 }
358 
GetUserComment() const359 const string &Metadata::GetUserComment() const
360 {
361     return userComment_;
362 }
363 
SetAllExif(const VariantData & allExif)364 void Metadata::SetAllExif(const VariantData &allExif)
365 {
366     allExif_ = get<string>(allExif);
367 }
368 
GetAllExif() const369 const string &Metadata::GetAllExif() const
370 {
371     return allExif_;
372 }
373 
SetDateYear(const VariantData & dateYear)374 void Metadata::SetDateYear(const VariantData &dateYear)
375 {
376     dateYear_ = get<string>(dateYear);
377 }
378 
getDateYear() const379 const string &Metadata::getDateYear() const
380 {
381     return dateYear_;
382 }
383 
SetDateMonth(const VariantData & dateMonth)384 void Metadata::SetDateMonth(const VariantData &dateMonth)
385 {
386     dateMonth_ = get<string>(dateMonth);
387 }
388 
getDateMonth() const389 const string &Metadata::getDateMonth() const
390 {
391     return dateMonth_;
392 }
393 
SetDateDay(const VariantData & dateDay)394 void Metadata::SetDateDay(const VariantData &dateDay)
395 {
396     dateDay_ = get<string>(dateDay);
397 }
398 
GetDateDay() const399 const string &Metadata::GetDateDay() const
400 {
401     return dateDay_;
402 }
403 
SetShootingMode(const VariantData & shootingMode)404 void Metadata::SetShootingMode(const VariantData &shootingMode)
405 {
406     shootingMode_ = get<string>(shootingMode);
407 }
408 
SetShootingModeTag(const VariantData & shootingModeTag)409 void Metadata::SetShootingModeTag(const VariantData &shootingModeTag)
410 {
411     shootingModeTag_ = get<string>(shootingModeTag);
412 }
413 
GetShootingMode() const414 const string &Metadata::GetShootingMode() const
415 {
416     return shootingMode_;
417 }
418 
GetShootingModeTag() const419 const string &Metadata::GetShootingModeTag() const
420 {
421     return shootingModeTag_;
422 }
423 
424 #ifdef MEDIALIBRARY_COMPATIBILITY
SetPhotoSubType(const VariantData & photoSubType)425 void Metadata::SetPhotoSubType(const VariantData &photoSubType)
426 {
427     photoSubType_ = std::get<int32_t>(photoSubType);
428 }
429 
GetPhotoSubType() const430 int32_t Metadata::GetPhotoSubType() const
431 {
432     return photoSubType_;
433 }
434 #endif
435 
SetTableName(const string & tableName)436 void Metadata::SetTableName(const string &tableName)
437 {
438     tableName_ = tableName;
439 }
440 
GetTableName()441 string Metadata::GetTableName()
442 {
443     return tableName_;
444 }
445 
SetForAdd(bool forAdd)446 void Metadata::SetForAdd(bool forAdd)
447 {
448     forAdd_ = forAdd;
449 }
450 
GetForAdd() const451 bool Metadata::GetForAdd() const
452 {
453     return forAdd_;
454 }
455 
SetLastVisitTime(const VariantData & lastVisitTime)456 void Metadata::SetLastVisitTime(const VariantData &lastVisitTime)
457 {
458     lastVisitTime_ = std::get<int64_t>(lastVisitTime);
459 }
460 
GetLastVisitTime() const461 int64_t Metadata::GetLastVisitTime() const
462 {
463     return lastVisitTime_;
464 }
465 } // namespace Media
466 } // namespace OHOS
467