Lines 107-113
Link Here
|
107 |
struct kbd_repeat kbdrep_s; |
107 |
struct kbd_repeat kbdrep_s; |
108 |
|
108 |
|
109 |
/* don't change, just test */ |
109 |
/* don't change, just test */ |
110 |
kbdrep_s.rate = -1; |
110 |
kbdrep_s.period = -1; |
111 |
kbdrep_s.delay = -1; |
111 |
kbdrep_s.delay = -1; |
112 |
if (ioctl( 0, KDKBDREP, &kbdrep_s )) { |
112 |
if (ioctl( 0, KDKBDREP, &kbdrep_s )) { |
113 |
return 0; |
113 |
return 0; |
Lines 115-125
Link Here
|
115 |
|
115 |
|
116 |
/* do the change */ |
116 |
/* do the change */ |
117 |
if (rate == 0) /* switch repeat off */ |
117 |
if (rate == 0) /* switch repeat off */ |
118 |
kbdrep_s.rate = 0; |
118 |
kbdrep_s.period = 0; |
119 |
else |
119 |
else |
120 |
kbdrep_s.rate = 10000 / rate; /* convert cps to msec */ |
120 |
kbdrep_s.period = 10000 / rate; /* convert cps to msec */ |
121 |
if (kbdrep_s.rate < 1) |
121 |
if (kbdrep_s.period < 1) |
122 |
kbdrep_s.rate = 1; |
122 |
kbdrep_s.period = 1; |
123 |
kbdrep_s.delay = delay; |
123 |
kbdrep_s.delay = delay; |
124 |
if (kbdrep_s.delay < 1) |
124 |
if (kbdrep_s.delay < 1) |
125 |
kbdrep_s.delay = 1; |
125 |
kbdrep_s.delay = 1; |
Lines 144-153
Link Here
|
144 |
if (fd == -1) |
144 |
if (fd == -1) |
145 |
return 0; |
145 |
return 0; |
146 |
|
146 |
|
147 |
kbdrate_s.rate = (rate + 5) / 10; /* must be integer, so round up */ |
147 |
kbdrate_s.period = (rate + 5) / 10; /* must be integer, so round up */ |
148 |
kbdrate_s.delay = delay * HZ / 1000; /* convert ms to Hz */ |
148 |
kbdrate_s.delay = delay * HZ / 1000; /* convert ms to Hz */ |
149 |
if (kbdrate_s.rate > 50) |
149 |
if (kbdrate_s.period > 50) |
150 |
kbdrate_s.rate = 50; |
150 |
kbdrate_s.period = 50; |
151 |
|
151 |
|
152 |
if (ioctl( fd, KIOCSRATE, &kbdrate_s )) |
152 |
if (ioctl( fd, KIOCSRATE, &kbdrate_s )) |
153 |
return 0; |
153 |
return 0; |