Lines Matching defs:ev
159 static int uhid_write(int fd, const struct uhid_event *ev)
163 ret = write(fd, ev, sizeof(*ev));
167 } else if (ret != sizeof(*ev)) {
169 ret, sizeof(ev));
178 struct uhid_event ev;
180 memset(&ev, 0, sizeof(ev));
181 ev.type = UHID_CREATE;
182 strcpy((char*)ev.u.create.name, "test-uhid-device");
183 ev.u.create.rd_data = rdesc;
184 ev.u.create.rd_size = sizeof(rdesc);
185 ev.u.create.bus = BUS_USB;
186 ev.u.create.vendor = 0x15d9;
187 ev.u.create.product = 0x0a37;
188 ev.u.create.version = 0;
189 ev.u.create.country = 0;
191 return uhid_write(fd, &ev);
196 struct uhid_event ev;
198 memset(&ev, 0, sizeof(ev));
199 ev.type = UHID_DESTROY;
201 uhid_write(fd, &ev);
208 static void handle_output(struct uhid_event *ev)
211 if (ev->u.output.rtype != UHID_OUTPUT_REPORT)
214 if (ev->u.output.size != 2)
217 if (ev->u.output.data[0] != 0x2)
222 ev->u.output.data[1]);
227 struct uhid_event ev;
230 memset(&ev, 0, sizeof(ev));
231 ret = read(fd, &ev, sizeof(ev));
238 } else if (ret != sizeof(ev)) {
240 ret, sizeof(ev));
244 switch (ev.type) {
259 handle_output(&ev);
265 fprintf(stderr, "Invalid event from uhid-dev: %u\n", ev.type);
280 struct uhid_event ev;
282 memset(&ev, 0, sizeof(ev));
283 ev.type = UHID_INPUT;
284 ev.u.input.size = 5;
286 ev.u.input.data[0] = 0x1;
288 ev.u.input.data[1] |= 0x1;
290 ev.u.input.data[1] |= 0x2;
292 ev.u.input.data[1] |= 0x4;
294 ev.u.input.data[2] = abs_hor;
295 ev.u.input.data[3] = abs_ver;
296 ev.u.input.data[4] = wheel;
298 return uhid_write(fd, &ev);