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 &notificationToneType)
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 &notificationToneSourceType)
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