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 {
44 Init();
45 }
46
Init()47 void RingtoneMetadata::Init()
48 {
49 memberFuncMap_[RINGTONE_COLUMN_TONE_ID] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
50 &RingtoneMetadata::SetToneId);
51 memberFuncMap_[RINGTONE_COLUMN_DATA] = make_pair(RingtoneResultSetDataType::DATA_TYPE_STRING,
52 &RingtoneMetadata::SetData);
53 memberFuncMap_[RINGTONE_COLUMN_SIZE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT64,
54 &RingtoneMetadata::SetSize);
55 memberFuncMap_[RINGTONE_COLUMN_DISPLAY_NAME] = make_pair(RingtoneResultSetDataType::DATA_TYPE_STRING,
56 &RingtoneMetadata::SetDisplayName);
57 memberFuncMap_[RINGTONE_COLUMN_TITLE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_STRING,
58 &RingtoneMetadata::SetTitle);
59 memberFuncMap_[RINGTONE_COLUMN_MEDIA_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
60 &RingtoneMetadata::SetMediaType);
61 memberFuncMap_[RINGTONE_COLUMN_TONE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
62 &RingtoneMetadata::SetToneType);
63 memberFuncMap_[RINGTONE_COLUMN_MIME_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_STRING,
64 &RingtoneMetadata::SetMimeType);
65 memberFuncMap_[RINGTONE_COLUMN_SOURCE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
66 &RingtoneMetadata::SetSourceType);
67 memberFuncMap_[RINGTONE_COLUMN_DATE_ADDED] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT64,
68 &RingtoneMetadata::SetDateAdded);
69 memberFuncMap_[RINGTONE_COLUMN_DATE_MODIFIED] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT64,
70 &RingtoneMetadata::SetDateModified);
71 memberFuncMap_[RINGTONE_COLUMN_DATE_TAKEN] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT64,
72 &RingtoneMetadata::SetDateTaken);
73 memberFuncMap_[RINGTONE_COLUMN_DURATION] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
74 &RingtoneMetadata::SetDuration);
75 memberFuncMap_[RINGTONE_COLUMN_SHOT_TONE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
76 &RingtoneMetadata::SetShotToneType);
77 memberFuncMap_[RINGTONE_COLUMN_SHOT_TONE_SOURCE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
78 &RingtoneMetadata::SetShotToneSourceType);
79 memberFuncMap_[RINGTONE_COLUMN_NOTIFICATION_TONE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
80 &RingtoneMetadata::SetNotificationToneType);
81 memberFuncMap_[RINGTONE_COLUMN_NOTIFICATION_TONE_SOURCE_TYPE] =
82 make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32, &RingtoneMetadata::SetNotificationToneSourceType);
83 memberFuncMap_[RINGTONE_COLUMN_RING_TONE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
84 &RingtoneMetadata::SetRingToneType);
85 memberFuncMap_[RINGTONE_COLUMN_RING_TONE_SOURCE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
86 &RingtoneMetadata::SetRingToneSourceType);
87 memberFuncMap_[RINGTONE_COLUMN_ALARM_TONE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
88 &RingtoneMetadata::SetAlarmToneType);
89 memberFuncMap_[RINGTONE_COLUMN_ALARM_TONE_SOURCE_TYPE] = make_pair(RingtoneResultSetDataType::DATA_TYPE_INT32,
90 &RingtoneMetadata::SetAlarmToneSourceType);
91 }
92
SetToneId(const VariantData & toneId)93 void RingtoneMetadata::SetToneId(const VariantData &toneId)
94 {
95 toneId_ = std::get<int32_t>(toneId);
96 }
97
GetToneId() const98 int32_t RingtoneMetadata::GetToneId() const
99 {
100 return toneId_;
101 }
102
SetData(const VariantData & data)103 void RingtoneMetadata::SetData(const VariantData &data)
104 {
105 data_ = std::get<std::string>(data);
106 }
107
GetData() const108 const std::string &RingtoneMetadata::GetData() const
109 {
110 return data_;
111 }
112
SetSize(const VariantData & size)113 void RingtoneMetadata::SetSize(const VariantData &size)
114 {
115 size_ = std::get<int64_t>(size);
116 }
117
GetSize() const118 int64_t RingtoneMetadata::GetSize() const
119 {
120 return size_;
121 }
122
SetDisplayName(const VariantData & displayName)123 void RingtoneMetadata::SetDisplayName(const VariantData &displayName)
124 {
125 displayName_ = std::get<std::string>(displayName);
126 }
127
GetDisplayName() const128 const std::string &RingtoneMetadata::GetDisplayName() const
129 {
130 return displayName_;
131 }
132
SetTitle(const VariantData & title)133 void RingtoneMetadata::SetTitle(const VariantData &title)
134 {
135 title_ = std::get<std::string>(title);
136 }
137
GetTitle() const138 const std::string &RingtoneMetadata::GetTitle() const
139 {
140 return title_;
141 }
142
SetMediaType(const VariantData & mediaType)143 void RingtoneMetadata::SetMediaType(const VariantData &mediaType)
144 {
145 mediaType_ = std::get<int32_t>(mediaType);
146 }
147
GetMediaType() const148 int32_t RingtoneMetadata::GetMediaType() const
149 {
150 return mediaType_;
151 }
152
SetToneType(const VariantData & toneType)153 void RingtoneMetadata::SetToneType(const VariantData &toneType)
154 {
155 toneType_ = std::get<int32_t>(toneType);
156 }
157
GetToneType() const158 int32_t RingtoneMetadata::GetToneType() const
159 {
160 return toneType_;
161 }
162
SetMimeType(const VariantData & mimeType)163 void RingtoneMetadata::SetMimeType(const VariantData &mimeType)
164 {
165 mimeType_ = std::get<std::string>(mimeType);
166 }
167
GetMimeType() const168 const std::string &RingtoneMetadata::GetMimeType() const
169 {
170 return mimeType_;
171 }
172
SetSourceType(const VariantData & sourceType)173 void RingtoneMetadata::SetSourceType(const VariantData &sourceType)
174 {
175 sourceType_ = std::get<int32_t>(sourceType);
176 }
177
GetSourceType() const178 int32_t RingtoneMetadata::GetSourceType() const
179 {
180 return sourceType_;
181 }
182
SetDateAdded(const VariantData & dateAdded)183 void RingtoneMetadata::SetDateAdded(const VariantData &dateAdded)
184 {
185 dateAdded_ = std::get<int64_t>(dateAdded);
186 }
187
GetDateAdded() const188 int64_t RingtoneMetadata::GetDateAdded() const
189 {
190 return dateAdded_;
191 }
192
SetDateModified(const VariantData & dateModified)193 void RingtoneMetadata::SetDateModified(const VariantData &dateModified)
194 {
195 dateModified_ = std::get<int64_t>(dateModified);
196 }
197
GetDateModified() const198 int64_t RingtoneMetadata::GetDateModified() const
199 {
200 return dateModified_;
201 }
202
SetDateTaken(const VariantData & dateTaken)203 void RingtoneMetadata::SetDateTaken(const VariantData &dateTaken)
204 {
205 dateTaken_ = std::get<int64_t>(dateTaken);
206 }
207
GetDateTaken() const208 int64_t RingtoneMetadata::GetDateTaken() const
209 {
210 return dateTaken_;
211 }
212
SetDuration(const VariantData & duration)213 void RingtoneMetadata::SetDuration(const VariantData &duration)
214 {
215 duration_ = std::get<int32_t>(duration);
216 }
217
GetDuration() const218 int32_t RingtoneMetadata::GetDuration() const
219 {
220 return duration_;
221 }
222
SetShotToneType(const VariantData & shotToneType)223 void RingtoneMetadata::SetShotToneType(const VariantData &shotToneType)
224 {
225 shotToneType_ = std::get<int32_t>(shotToneType);
226 }
227
GetShotToneType() const228 int32_t RingtoneMetadata::GetShotToneType() const
229 {
230 return shotToneType_;
231 }
232
SetShotToneSourceType(const VariantData & shotToneSourceType)233 void RingtoneMetadata::SetShotToneSourceType(const VariantData &shotToneSourceType)
234 {
235 shotToneSourceType_ = std::get<int32_t>(shotToneSourceType);
236 }
237
GetShotToneSourceType() const238 int32_t RingtoneMetadata::GetShotToneSourceType() const
239 {
240 return shotToneSourceType_;
241 }
242
SetNotificationToneType(const VariantData & notificationToneType)243 void RingtoneMetadata::SetNotificationToneType(const VariantData ¬ificationToneType)
244 {
245 notificationToneType_ = std::get<int32_t>(notificationToneType);
246 }
247
GetNotificationToneType() const248 int32_t RingtoneMetadata::GetNotificationToneType() const
249 {
250 return notificationToneType_;
251 }
252
SetNotificationToneSourceType(const VariantData & notificationToneSourceType)253 void RingtoneMetadata::SetNotificationToneSourceType(const VariantData ¬ificationToneSourceType)
254 {
255 notificationToneSourceType_ = std::get<int32_t>(notificationToneSourceType);
256 }
257
GetNotificationToneSourceType() const258 int32_t RingtoneMetadata::GetNotificationToneSourceType() const
259 {
260 return notificationToneSourceType_;
261 }
262
SetRingToneType(const VariantData & ringToneType)263 void RingtoneMetadata::SetRingToneType(const VariantData &ringToneType)
264 {
265 ringToneType_ = std::get<int32_t>(ringToneType);
266 }
267
GetRingToneType() const268 int32_t RingtoneMetadata::GetRingToneType() const
269 {
270 return ringToneType_;
271 }
272
SetRingToneSourceType(const VariantData & ringToneSourceType)273 void RingtoneMetadata::SetRingToneSourceType(const VariantData &ringToneSourceType)
274 {
275 ringToneSourceType_ = std::get<int32_t>(ringToneSourceType);
276 }
277
GetRingToneSourceType() const278 int32_t RingtoneMetadata::GetRingToneSourceType() const
279 {
280 return ringToneSourceType_;
281 }
282
SetAlarmToneType(const VariantData & alarmToneType)283 void RingtoneMetadata::SetAlarmToneType(const VariantData &alarmToneType)
284 {
285 alarmToneType_ = std::get<int32_t>(alarmToneType);
286 }
287
GetAlarmToneType() const288 int32_t RingtoneMetadata::GetAlarmToneType() const
289 {
290 return alarmToneType_;
291 }
292
SetAlarmToneSourceType(const VariantData & alarmToneSourceType)293 void RingtoneMetadata::SetAlarmToneSourceType(const VariantData &alarmToneSourceType)
294 {
295 alarmToneSourceType_ = std::get<int32_t>(alarmToneSourceType);
296 }
297
GetAlarmToneSourceType() const298 int32_t RingtoneMetadata::GetAlarmToneSourceType() const
299 {
300 return alarmToneSourceType_;
301 }
302
ToString() const303 string RingtoneMetadata::ToString() const
304 {
305 string str = "ringtone metadata:{ toneId_=" + to_string(toneId_) +
306 "; data_=" + data_ +
307 "; size_=" + to_string(size_) +
308 "; displayName_=" + displayName_ +
309 "; title_=" + title_ +
310 "; mediaType_=" + to_string(mediaType_) +
311 "; toneType_=" + to_string(toneType_) +
312 "; mimeType_=" + mimeType_ +
313 "; sourceType_=" + to_string(sourceType_) +
314 "; dateAdded_=" + to_string(dateAdded_) +
315 "; dateModified_=" + to_string(dateModified_) +
316 "; dateTaken_=" + to_string(dateTaken_) +
317 "; duration_=" + to_string(duration_) +
318 "; shotToneType_=" + to_string(shotToneType_) +
319 "; shotToneSourceType_=" + to_string(shotToneSourceType_) +
320 "; notificationToneType_=" + to_string(notificationToneType_) +
321 "; notificationToneSourceType_=" + to_string(notificationToneSourceType_) +
322 "; ringToneType_=" + to_string(ringToneType_) +
323 "; ringToneSourceType_=" + to_string(ringToneSourceType_) +
324 "; alarmToneType_=" + to_string(alarmToneType_) +
325 "; alarmToneSourceType_=" + to_string(alarmToneSourceType_) + "}";
326 return str;
327 }
328 } // namespace Media
329 } // namespace OHOS
330