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#define MLOG_TAG "VibrateAsset"
16
17#include "vibrate_asset.h"
18
19#include "ringtone_db_const.h"
20#include "ringtone_errno.h"
21#include "ringtone_log.h"
22#include "ringtone_type.h"
23#include "vibrate_type.h"
24
25namespace OHOS {
26namespace Media {
27using namespace std;
28
29VibrateAsset::VibrateAsset()
30{
31}
32
33int32_t VibrateAsset::GetId() const
34{
35    return GetInt32Member(VIBRATE_COLUMN_VIBRATE_ID);
36}
37
38void VibrateAsset::SetId(int32_t id)
39{
40    member_[VIBRATE_COLUMN_VIBRATE_ID] = id;
41}
42
43int64_t VibrateAsset::GetSize() const
44{
45    return GetInt64Member(VIBRATE_COLUMN_SIZE);
46}
47
48void VibrateAsset::SetSize(int64_t size)
49{
50    member_[VIBRATE_COLUMN_SIZE] = size;
51}
52
53const string &VibrateAsset::GetPath() const
54{
55    return GetStrMember(VIBRATE_COLUMN_DATA);
56}
57
58void VibrateAsset::SetPath(const string &path)
59{
60    member_[VIBRATE_COLUMN_DATA] = path;
61}
62
63const string &VibrateAsset::GetDisplayName() const
64{
65    return GetStrMember(VIBRATE_COLUMN_DISPLAY_NAME);
66}
67
68void VibrateAsset::SetDisplayName(const string &displayName)
69{
70    member_[VIBRATE_COLUMN_DISPLAY_NAME] = displayName;
71}
72
73const string &VibrateAsset::GetTitle() const
74{
75    return GetStrMember(VIBRATE_COLUMN_TITLE);
76}
77
78void VibrateAsset::SetTitle(const string &title)
79{
80    member_[VIBRATE_COLUMN_TITLE] = title;
81}
82
83const std::string &VibrateAsset::GetDisplayLanguage() const
84{
85    return GetStrMember(VIBRATE_COLUMN_DISPLAY_LANGUAGE);
86}
87
88void VibrateAsset::SetDisplayLanguage(const std::string &displayLanguage)
89{
90    member_[VIBRATE_COLUMN_DISPLAY_LANGUAGE] = displayLanguage;
91}
92
93int32_t VibrateAsset::GetVibrateType() const
94{
95    return GetInt32Member(VIBRATE_COLUMN_VIBRATE_TYPE);
96}
97
98void VibrateAsset::SetVibrateType(int32_t type)
99{
100    member_[VIBRATE_COLUMN_VIBRATE_TYPE] = type;
101}
102
103int32_t VibrateAsset::GetSourceType() const
104{
105    return GetInt32Member(VIBRATE_COLUMN_SOURCE_TYPE);
106}
107
108void VibrateAsset::SetSourceType(int32_t type)
109{
110    member_[VIBRATE_COLUMN_SOURCE_TYPE] = type;
111}
112
113int64_t VibrateAsset::GetDateAdded() const
114{
115    return GetInt64Member(VIBRATE_COLUMN_DATE_ADDED);
116}
117
118void VibrateAsset::SetDateAdded(int64_t dateAdded)
119{
120    member_[VIBRATE_COLUMN_DATE_ADDED] = dateAdded;
121}
122
123int64_t VibrateAsset::GetDateModified() const
124{
125    return GetInt64Member(VIBRATE_COLUMN_DATE_MODIFIED);
126}
127
128void VibrateAsset::SetDateModified(int64_t dateModified)
129{
130    member_[VIBRATE_COLUMN_DATE_MODIFIED] = dateModified;
131}
132
133int64_t VibrateAsset::GetDateTaken() const
134{
135    return GetInt64Member(VIBRATE_COLUMN_DATE_TAKEN);
136}
137
138void VibrateAsset::SetDateTaken(int64_t dataTaken)
139{
140    member_[VIBRATE_COLUMN_DATE_TAKEN] = dataTaken;
141}
142
143int32_t VibrateAsset::GetPlayMode() const
144{
145    return GetInt32Member(VIBRATE_COLUMN_PLAY_MODE);
146}
147
148void VibrateAsset::SetPlayMode(int32_t playMode)
149{
150    member_[VIBRATE_COLUMN_PLAY_MODE] = playMode;
151}
152
153unordered_map<string, variant<int32_t, int64_t, string, double>> &VibrateAsset::GetMemberMap()
154{
155    return member_;
156}
157
158variant<int32_t, int64_t, string, double> &VibrateAsset::GetMemberValue(const string &name)
159{
160    return member_[name];
161}
162
163const string &VibrateAsset::GetStrMember(const string &name) const
164{
165    return (member_.count(name) > 0) ? get<string>(member_.at(name)) : RINGTONE_DEFAULT_STR;
166}
167
168int32_t VibrateAsset::GetInt32Member(const string &name) const
169{
170    return (member_.count(name) > 0) ? get<int32_t>(member_.at(name)) : RINGTONE_DEFAULT_INT32;
171}
172
173int64_t VibrateAsset::GetInt64Member(const string &name) const
174{
175    return (member_.count(name) > 0) ? get<int64_t>(member_.at(name)) : RINGTONE_DEFAULT_INT64;
176}
177} // namespace Media
178} // namespace OHOS
179