Lines 34-60
Link Here
|
34 |
int uinput_cr (int *fd) |
34 |
int uinput_cr (int *fd) |
35 |
{ |
35 |
{ |
36 |
int retval = 0, ev_size = 0; |
36 |
int retval = 0, ev_size = 0; |
37 |
struct input_event ev = { |
37 |
struct input_event key_ev = { |
38 |
.type = EV_KEY, |
38 |
.type = EV_KEY, |
39 |
.code = KEY_ENTER, |
39 |
.code = KEY_ENTER, |
40 |
.time = {0, } |
40 |
.time = {0, } |
41 |
}; |
41 |
}; |
42 |
|
42 |
|
43 |
ev_size = sizeof (ev); |
43 |
ev_size = sizeof (key_ev); |
44 |
|
44 |
|
45 |
/* key press */ |
45 |
/* key press */ |
46 |
ev.value = 1; |
46 |
key_ev.value = 1; |
47 |
if (write (*fd, &ev, ev_size) != ev_size) { |
47 |
if (write (*fd, &key_ev, ev_size) != ev_size) { |
48 |
retval = errno; |
48 |
retval = errno; |
49 |
goto out; |
49 |
goto out; |
50 |
} |
50 |
} |
51 |
/* key release */ |
51 |
/* key release */ |
52 |
ev.value = 0; |
52 |
key_ev.value = 0; |
53 |
if (write (*fd, &ev, ev_size) != ev_size) { |
53 |
if (write (*fd, &key_ev, ev_size) != ev_size) { |
54 |
retval = errno; |
54 |
retval = errno; |
55 |
goto out; |
55 |
goto out; |
56 |
} |
56 |
} |
57 |
|
57 |
|
|
|
58 |
/* syn event */ |
59 |
struct input_event syn_ev = { |
60 |
.time = {0, }, |
61 |
.type = EV_SYN, |
62 |
.code = SYN_REPORT, |
63 |
.value = 0 |
64 |
}; |
65 |
|
66 |
if (write (*fd, &syn_ev, ev_size) != ev_size) { |
67 |
retval = errno; |
68 |
goto out; |
69 |
} |
70 |
|
58 |
out: |
71 |
out: |
59 |
return retval; |
72 |
return retval; |
60 |
} |
73 |
} |