Skip to content

Commit bf1ba56

Browse files
Added support for INPUT_PROP-prefixed properties and quirks.
1 parent 209e039 commit bf1ba56

2 files changed

Lines changed: 19 additions & 7 deletions

File tree

src/suinput.c

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,8 @@ int suinput_create(int uinput_fd, const struct uinput_user_dev *user_dev_p)
123123

124124
int suinput_destroy(int uinput_fd)
125125
{
126-
int original_errno;
127-
128126
if (ioctl(uinput_fd, UI_DEV_DESTROY) == -1) {
129-
original_errno = errno;
127+
int original_errno = errno;
130128
close(uinput_fd);
131129
errno = original_errno;
132130
return -1;
@@ -135,8 +133,8 @@ int suinput_destroy(int uinput_fd)
135133
return close(uinput_fd);
136134
}
137135

138-
int suinput_set_capabilities(int uinput_fd, uint16_t ev_type,
139-
const int *ev_code_v, size_t ev_code_c)
136+
int suinput_set_event_capabilities(int uinput_fd, uint16_t ev_type,
137+
const uint16_t *ev_code_v, size_t ev_code_c)
140138
{
141139
size_t i;
142140
unsigned long io;
@@ -180,3 +178,14 @@ int suinput_set_capabilities(int uinput_fd, uint16_t ev_type,
180178
}
181179
return 0;
182180
}
181+
182+
int suinput_set_input_properties(int uinput_fd, const uint8_t *input_prop_v, size_t input_prop_c)
183+
{
184+
size_t i;
185+
for (i = 0; i < input_prop_c; ++i) {
186+
int input_prop = input_prop_v[i];
187+
if (ioctl(uinput_fd, UI_SET_PROPBIT, input_prop) == -1)
188+
return -1;
189+
}
190+
return 0;
191+
}

src/suinput.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ int suinput_create(int uinput_fd, const struct uinput_user_dev *user_dev_p);
3636

3737
int suinput_destroy(int uinput_fd);
3838

39-
int suinput_set_capabilities(int uinput_fd, uint16_t ev_type,
40-
const int *ev_code_v, size_t ev_code_c);
39+
int suinput_set_event_capabilities(int uinput_fd, uint16_t ev_type,
40+
const uint16_t *ev_code_v, size_t ev_code_c);
41+
42+
int suinput_set_input_properties(int uinput_fd,
43+
const uint8_t *input_prop_v, size_t input_prop_c);
4144

4245
#endif /* SUINPUT_H */

0 commit comments

Comments
 (0)