• 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     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