1 /*
2 * Copyright (C) 2024 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 "ringtone_metadata.h"
17
18 namespace OHOS {
19 namespace Media {
20 using namespace std;
RingtoneMetadata()21 RingtoneMetadata::RingtoneMetadata()
22 : toneId_(TONE_ID_DEFAULT),
23 data_(DATA_DEFAULT),
24 size_(SIZE_DEFAULT),
25 displayName_(DISPLAY_NAME_DEFAULT),
26 title_(TITLE_DEFAULT),
27 mediaType_(METADATA_MEDIA_TYPE_DEFAULT),
28 toneType_(TONE_TYPE_DEFAULT),
29 mimeType_(MIME_TYPE_DEFAULT),
30 sourceType_(SOURCE_TYPE_DEFAULT),
31 dateAdded_(DATE_ADDED_DEFAULT),
32 dateModified_(DATE_MODIFIED_DEFAULT),
33 dateTaken_(DATE_TAKEN_DEFAULT),
34 duration_(DURATION_DEFAULT),
35 shotToneType_(SHOT_TONE_TYPE_DEFAULT),
36 shotToneSourceType_(SHOT_TONE_SOURCE_TYPE_DEFAULT),
37 notificationToneType_(NOTIFICATION_TONE_TYPE_DEFAULT),
38 notificationToneSourceType_(NOTIFICATION_TONE_SOURCE_TYPE_DEFAULT),
39 ringToneType_(RING_TONE_TYPE_DEFAULT),
40 ringToneSourceType_(RING_TONE_SOURCE_TYPE_DEFAULT),
41 alarmToneType_(ALARM_TONE_TYPE_DEFAULT),
42 alarmToneSourceType_(ALARM_TONE_SOURCE_TYPE_DEFAULT),
43 scannerFlag_(SCANNER_FLAG_DEFAULT)
44 {
45 Init();
46 }
47
Init()48 void RingtoneMetadata::Init()
49 {
50 memberFuncMap_[RINGTONE_COLUMN_TONE_ID] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
51 &RingtoneMetadata::SetToneId);
52 memberFuncMap_[RINGTONE_COLUMN_DATA] = make_pair(RingtoneResultSetDataType::DATA_TYPE_STRING,
53 &RingtoneMetadata::SetData);
54 memberFuncMap_[RINGTONE_COLUMN_SIZE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT64,
55 &RingtoneMetadata::SetSize);
56 memberFuncMap_[RINGTONE_COLUMN_DISPLAY_NAME] = make_pair(RingtoneResultSetDataType::DATA_TYPE_STRING,
57 &RingtoneMetadata::SetDisplayName);
58 memberFuncMap_[RINGTONE_COLUMN_TITLE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_STRING,
59 &RingtoneMetadata::SetTitle);
60 memberFuncMap_[RINGTONE_COLUMN_MEDIA_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
61 &RingtoneMetadata::SetMediaType);
62 memberFuncMap_[RINGTONE_COLUMN_TONE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
63 &RingtoneMetadata::SetToneType);
64 memberFuncMap_[RINGTONE_COLUMN_MIME_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_STRING,
65 &RingtoneMetadata::SetMimeType);
66 memberFuncMap_[RINGTONE_COLUMN_SOURCE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
67 &RingtoneMetadata::SetSourceType);
68 memberFuncMap_[RINGTONE_COLUMN_DATE_ADDED] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT64,
69 &RingtoneMetadata::SetDateAdded);
70 memberFuncMap_[RINGTONE_COLUMN_DATE_MODIFIED] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT64,
71 &RingtoneMetadata::SetDateModified);
72 memberFuncMap_[RINGTONE_COLUMN_DATE_TAKEN] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT64,
73 &RingtoneMetadata::SetDateTaken);
74 memberFuncMap_[RINGTONE_COLUMN_DURATION] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
75 &RingtoneMetadata::SetDuration);
76 memberFuncMap_[RINGTONE_COLUMN_SHOT_TONE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
77 &RingtoneMetadata::SetShotToneType);
78 memberFuncMap_[RINGTONE_COLUMN_SHOT_TONE_SOURCE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
79 &RingtoneMetadata::SetShotToneSourceType);
80 memberFuncMap_[RINGTONE_COLUMN_NOTIFICATION_TONE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
81 &RingtoneMetadata::SetNotificationToneType);
82 memberFuncMap_[RINGTONE_COLUMN_NOTIFICATION_TONE_SOURCE_TYPE] =
83 make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32, &RingtoneMetadata::SetNotificationToneSourceType);
84 memberFuncMap_[RINGTONE_COLUMN_RING_TONE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
85 &RingtoneMetadata::SetRingToneType);
86 memberFuncMap_[RINGTONE_COLUMN_RING_TONE_SOURCE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
87 &RingtoneMetadata::SetRingToneSourceType);
88 memberFuncMap_[RINGTONE_COLUMN_ALARM_TONE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
89 &RingtoneMetadata::SetAlarmToneType);
90 memberFuncMap_[RINGTONE_COLUMN_ALARM_TONE_SOURCE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
91 &RingtoneMetadata::SetAlarmToneSourceType);
92 memberFuncMap_[RINGTONE_COLUMN_SCANNER_FLAG] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
93 &RingtoneMetadata::SetScannerFlag);
94 }
95
SetToneId(const VariantData & toneId)96 void RingtoneMetadata::SetToneId(const VariantData &toneId)
97 {
98 toneId_ = std::get<int32_t>(toneId);
99 }
100
GetToneId() const101 int32_t RingtoneMetadata::GetToneId() const
102 {
103 return toneId_;
104 }
105
SetData(const VariantData & data)106 void RingtoneMetadata::SetData(const VariantData &data)
107 {
108 data_ = std::get<std::string>(data);
109 }
110
GetData() const111 const std::string &RingtoneMetadata::GetData() const
112 {
113 return data_;
114 }
115
SetSize(const VariantData & size)116 void RingtoneMetadata::SetSize(const VariantData &size)
117 {
118 size_ = std::get<int64_t>(size);
119 }
120
GetSize() const121 int64_t RingtoneMetadata::GetSize() const
122 {
123 return size_;
124 }
125
SetDisplayName(const VariantData & displayName)126 void RingtoneMetadata::SetDisplayName(const VariantData &displayName)
127 {
128 displayName_ = std::get<std::string>(displayName);
129 }
130
GetDisplayName() const131 const std::string &RingtoneMetadata::GetDisplayName() const
132 {
133 return displayName_;
134 }
135
SetTitle(const VariantData & title)136 void RingtoneMetadata::SetTitle(const VariantData &title)
137 {
138 title_ = std::get<std::string>(title);
139 }
140
GetTitle() const141 const std::string &RingtoneMetadata::GetTitle() const
142 {
143 return title_;
144 }
145
SetMediaType(const VariantData & mediaType)146 void RingtoneMetadata::SetMediaType(const VariantData &mediaType)
147 {
148 mediaType_ = std::get<int32_t>(mediaType);
149 }
150
GetMediaType() const151 int32_t RingtoneMetadata::GetMediaType() const
152 {
153 return mediaType_;
154 }
155
SetToneType(const VariantData & toneType)156 void RingtoneMetadata::SetToneType(const VariantData &toneType)
157 {
158 toneType_ = std::get<int32_t>(toneType);
159 }
160
GetToneType() const161 int32_t RingtoneMetadata::GetToneType() const
162 {
163 return toneType_;
164 }
165
SetMimeType(const VariantData & mimeType)166 void RingtoneMetadata::SetMimeType(const VariantData &mimeType)
167 {
168 mimeType_ = std::get<std::string>(mimeType);
169 }
170
GetMimeType() const171 const std::string &RingtoneMetadata::GetMimeType() const
172 {
173 return mimeType_;
174 }
175
SetSourceType(const VariantData & sourceType)176 void RingtoneMetadata::SetSourceType(const VariantData &sourceType)
177 {
178 sourceType_ = std::get<int32_t>(sourceType);
179 }
180
GetSourceType() const181 int32_t RingtoneMetadata::GetSourceType() const
182 {
183 return sourceType_;
184 }
185
SetDateAdded(const VariantData & dateAdded)186 void RingtoneMetadata::SetDateAdded(const VariantData &dateAdded)
187 {
188 dateAdded_ = std::get<int64_t>(dateAdded);
189 }
190
GetDateAdded() const191 int64_t RingtoneMetadata::GetDateAdded() const
192 {
193 return dateAdded_;
194 }
195
SetDateModified(const VariantData & dateModified)196 void RingtoneMetadata::SetDateModified(const VariantData &dateModified)
197 {
198 dateModified_ = std::get<int64_t>(dateModified);
199 }
200
GetDateModified() const201 int64_t RingtoneMetadata::GetDateModified() const
202 {
203 return dateModified_;
204 }
205
SetDateTaken(const VariantData & dateTaken)206 void RingtoneMetadata::SetDateTaken(const VariantData &dateTaken)
207 {
208 dateTaken_ = std::get<int64_t>(dateTaken);
209 }
210
GetDateTaken() const211 int64_t RingtoneMetadata::GetDateTaken() const
212 {
213 return dateTaken_;
214 }
215
SetDuration(const VariantData & duration)216 void RingtoneMetadata::SetDuration(const VariantData &duration)
217 {
218 duration_ = std::get<int32_t>(duration);
219 }
220
GetDuration() const221 int32_t RingtoneMetadata::GetDuration() const
222 {
223 return duration_;
224 }
225
SetShotToneType(const VariantData & shotToneType)226 void RingtoneMetadata::SetShotToneType(const VariantData &shotToneType)
227 {
228 shotToneType_ = std::get<int32_t>(shotToneType);
229 }
230
GetShotToneType() const231 int32_t RingtoneMetadata::GetShotToneType() const
232 {
233 return shotToneType_;
234 }
235
SetShotToneSourceType(const VariantData & shotToneSourceType)236 void RingtoneMetadata::SetShotToneSourceType(const VariantData &shotToneSourceType)
237 {
238 shotToneSourceType_ = std::get<int32_t>(shotToneSourceType);
239 }
240
GetShotToneSourceType() const241 int32_t RingtoneMetadata::GetShotToneSourceType() const
242 {
243 return shotToneSourceType_;
244 }
245
SetNotificationToneType(const VariantData & notificationToneType)246 void RingtoneMetadata::SetNotificationToneType(const VariantData ¬ificationToneType)
247 {
248 notificationToneType_ = std::get<int32_t>(notificationToneType);
249 }
250
GetNotificationToneType() const251 int32_t RingtoneMetadata::GetNotificationToneType() const
252 {
253 return notificationToneType_;
254 }
255
SetNotificationToneSourceType(const VariantData & notificationToneSourceType)256 void RingtoneMetadata::SetNotificationToneSourceType(const VariantData ¬ificationToneSourceType)
257 {
258 notificationToneSourceType_ = std::get<int32_t>(notificationToneSourceType);
259 }
260
GetNotificationToneSourceType() const261 int32_t RingtoneMetadata::GetNotificationToneSourceType() const
262 {
263 return notificationToneSourceType_;
264 }
265
SetRingToneType(const VariantData & ringToneType)266 void RingtoneMetadata::SetRingToneType(const VariantData &ringToneType)
267 {
268 ringToneType_ = std::get<int32_t>(ringToneType);
269 }
270
GetRingToneType() const271 int32_t RingtoneMetadata::GetRingToneType() const
272 {
273 return ringToneType_;
274 }
275
SetRingToneSourceType(const VariantData & ringToneSourceType)276 void RingtoneMetadata::SetRingToneSourceType(const VariantData &ringToneSourceType)
277 {
278 ringToneSourceType_ = std::get<int32_t>(ringToneSourceType);
279 }
280
GetRingToneSourceType() const281 int32_t RingtoneMetadata::GetRingToneSourceType() const
282 {
283 return ringToneSourceType_;
284 }
285
SetAlarmToneType(const VariantData & alarmToneType)286 void RingtoneMetadata::SetAlarmToneType(const VariantData &alarmToneType)
287 {
288 alarmToneType_ = std::get<int32_t>(alarmToneType);
289 }
290
GetAlarmToneType() const291 int32_t RingtoneMetadata::GetAlarmToneType() const
292 {
293 return alarmToneType_;
294 }
295
SetAlarmToneSourceType(const VariantData & alarmToneSourceType)296 void RingtoneMetadata::SetAlarmToneSourceType(const VariantData &alarmToneSourceType)
297 {
298 alarmToneSourceType_ = std::get<int32_t>(alarmToneSourceType);
299 }
300
GetAlarmToneSourceType() const301 int32_t RingtoneMetadata::GetAlarmToneSourceType() const
302 {
303 return alarmToneSourceType_;
304 }
305
SetScannerFlag(const VariantData & scannerFlag)306 void RingtoneMetadata::SetScannerFlag(const VariantData &scannerFlag)
307 {
308 scannerFlag_ = std::get<int32_t>(scannerFlag);
309 }
310
GetScannerFlag() const311 int32_t RingtoneMetadata::GetScannerFlag() const
312 {
313 return scannerFlag_;
314 }
315
ToString() const316 string RingtoneMetadata::ToString() const
317 {
318 string str = "ringtone metadata:{ toneId_=" + to_string(toneId_) +
319 "; data_=" + data_ +
320 "; size_=" + to_string(size_) +
321 "; displayName_=" + displayName_ +
322 "; title_=" + title_ +
323 "; mediaType_=" + to_string(mediaType_) +
324 "; toneType_=" + to_string(toneType_) +
325 "; mimeType_=" + mimeType_ +
326 "; sourceType_=" + to_string(sourceType_) +
327 "; dateAdded_=" + to_string(dateAdded_) +
328 "; dateModified_=" + to_string(dateModified_) +
329 "; dateTaken_=" + to_string(dateTaken_) +
330 "; duration_=" + to_string(duration_) +
331 "; shotToneType_=" + to_string(shotToneType_) +
332 "; shotToneSourceType_=" + to_string(shotToneSourceType_) +
333 "; notificationToneType_=" + to_string(notificationToneType_) +
334 "; notificationToneSourceType_=" + to_string(notificationToneSourceType_) +
335 "; ringToneType_=" + to_string(ringToneType_) +
336 "; ringToneSourceType_=" + to_string(ringToneSourceType_) +
337 "; alarmToneType_=" + to_string(alarmToneType_) +
338 "; alarmToneSourceType_=" + to_string(alarmToneSourceType_) +
339 "; scannerFlag_=" + to_string(scannerFlag_) + "}";
340 return str;
341 }
342 } // namespace Media
343 } // namespace OHOS
344