1 /*
2 * Copyright (c) 2021-2022 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 "input_device.h"
17
18 namespace OHOS {
19 namespace MMI {
InputDevice(int32_t id,std::string name,int32_t deviceType,int32_t bus,int32_t version,int32_t product,int32_t vendor,std::string phys,std::string uniq,const std::vector<AxisInfo> & axis)20 InputDevice::InputDevice(int32_t id, std::string name, int32_t deviceType, int32_t bus, int32_t version,
21 int32_t product, int32_t vendor, std::string phys, std::string uniq, const std::vector<AxisInfo>& axis)
22 : id_(id), name_(name), type_(deviceType), bus_(bus), version_(version), product_(product),
23 vendor_(vendor), phys_(phys), uniq_(uniq), axis_(axis) {}
24
SetId(int32_t deviceId)25 void InputDevice::SetId(int32_t deviceId)
26 {
27 id_ = deviceId;
28 }
29
GetId() const30 int32_t InputDevice::GetId() const
31 {
32 return id_;
33 }
34
SetName(std::string name)35 void InputDevice::SetName(std::string name)
36 {
37 name_ = name;
38 }
39
GetName() const40 std::string InputDevice::GetName() const
41 {
42 return name_;
43 }
44
SetType(int32_t deviceType)45 void InputDevice::SetType(int32_t deviceType)
46 {
47 type_ = deviceType;
48 }
49
GetType() const50 int32_t InputDevice::GetType() const
51 {
52 return type_;
53 }
54
SetBus(int32_t bus)55 void InputDevice::SetBus(int32_t bus)
56 {
57 bus_ = bus;
58 }
59
GetBus() const60 int32_t InputDevice::GetBus() const
61 {
62 return bus_;
63 }
64
SetVersion(int32_t version)65 void InputDevice::SetVersion(int32_t version)
66 {
67 version_ = version;
68 }
69
GetVersion() const70 int32_t InputDevice::GetVersion() const
71 {
72 return version_;
73 }
74
SetProduct(int32_t product)75 void InputDevice::SetProduct(int32_t product)
76 {
77 product_ = product;
78 }
79
GetProduct() const80 int32_t InputDevice::GetProduct() const
81 {
82 return product_;
83 }
84
SetVendor(int32_t vendor)85 void InputDevice::SetVendor(int32_t vendor)
86 {
87 vendor_ = vendor;
88 }
89
GetVendor() const90 int32_t InputDevice::GetVendor() const
91 {
92 return vendor_;
93 }
94
SetPhys(std::string phys)95 void InputDevice::SetPhys(std::string phys)
96 {
97 phys_ = phys;
98 }
99
GetPhys() const100 std::string InputDevice::GetPhys() const
101 {
102 return phys_;
103 }
104
SetUniq(std::string uniq)105 void InputDevice::SetUniq(std::string uniq)
106 {
107 uniq_ = uniq;
108 }
109
GetUniq() const110 std::string InputDevice::GetUniq() const
111 {
112 return uniq_;
113 }
114
AddCapability(InputDeviceCapability cap)115 void InputDevice::AddCapability(InputDeviceCapability cap)
116 {
117 if (cap >= INPUT_DEV_CAP_KEYBOARD && cap < INPUT_DEV_CAP_MAX) {
118 capabilities_.set(cap);
119 }
120 }
121
HasCapability(InputDeviceCapability cap) const122 bool InputDevice::HasCapability(InputDeviceCapability cap) const
123 {
124 if (cap >= INPUT_DEV_CAP_KEYBOARD && cap < INPUT_DEV_CAP_MAX) {
125 return capabilities_.test(cap);
126 }
127 return false;
128 }
129
HasCapability(uint32_t deviceTags) const130 bool InputDevice::HasCapability(uint32_t deviceTags) const
131 {
132 int32_t min = static_cast<int32_t>(INPUT_DEV_CAP_KEYBOARD);
133 int32_t max = static_cast<int32_t>(INPUT_DEV_CAP_MAX);
134 for (int32_t cap = min; cap < max; ++cap) {
135 if (!capabilities_.test(static_cast<InputDeviceCapability>(cap))) {
136 continue;
137 }
138 uint32_t tags = CapabilityToTags(static_cast<InputDeviceCapability>(cap));
139 if ((tags & deviceTags) == tags) {
140 return true;
141 }
142 }
143 return false;
144 }
145
AddAxisInfo(AxisInfo axis)146 void InputDevice::AddAxisInfo(AxisInfo axis)
147 {
148 axis_.push_back(axis);
149 }
150
GetAxisInfo()151 std::vector<InputDevice::AxisInfo> InputDevice::GetAxisInfo()
152 {
153 return axis_;
154 }
155
SetAxisInfo(std::vector<AxisInfo> axis)156 void InputDevice::SetAxisInfo(std::vector<AxisInfo> axis)
157 {
158 axis_ = axis;
159 }
160
AxisInfo(int32_t type,int32_t min,int32_t max,int32_t fuzz,int32_t flat,int32_t resolution)161 InputDevice::AxisInfo::AxisInfo(int32_t type, int32_t min, int32_t max, int32_t fuzz, int32_t flat, int32_t resolution)
162 : axisType_(type), minimum_(min), maximum_(max), fuzz_(fuzz), flat_(flat), resolution_(resolution) {}
163
SetAxisType(int32_t type)164 void InputDevice::AxisInfo::SetAxisType(int32_t type)
165 {
166 axisType_ = type;
167 }
168
GetAxisType() const169 int32_t InputDevice::AxisInfo::GetAxisType() const
170 {
171 return axisType_;
172 }
173
SetMinimum(int32_t min)174 void InputDevice::AxisInfo::SetMinimum(int32_t min)
175 {
176 minimum_ = min;
177 }
178
GetMinimum() const179 int32_t InputDevice::AxisInfo::GetMinimum() const
180 {
181 return minimum_;
182 }
183
SetMaximum(int32_t max)184 void InputDevice::AxisInfo::SetMaximum(int32_t max)
185 {
186 maximum_ = max;
187 }
188
GetMaximum() const189 int32_t InputDevice::AxisInfo::GetMaximum() const
190 {
191 return maximum_;
192 }
193
SetFuzz(int32_t fuzz)194 void InputDevice::AxisInfo::SetFuzz(int32_t fuzz)
195 {
196 fuzz_ = fuzz;
197 }
198
GetFuzz() const199 int32_t InputDevice::AxisInfo::GetFuzz() const
200 {
201 return fuzz_;
202 }
203
SetFlat(int32_t flat)204 void InputDevice::AxisInfo::SetFlat(int32_t flat)
205 {
206 flat_ = flat;
207 }
208
GetFlat() const209 int32_t InputDevice::AxisInfo::GetFlat() const
210 {
211 return flat_;
212 }
213
SetResolution(int32_t resolution)214 void InputDevice::AxisInfo::SetResolution(int32_t resolution)
215 {
216 resolution_ = resolution;
217 }
218
GetResolution() const219 int32_t InputDevice::AxisInfo::GetResolution() const
220 {
221 return resolution_;
222 }
223 } // namespace MMI
224 } // namespace OHOS