Hardware Reference
In-Depth Information
183 static void
184 i2c_close(void) {
185 close(i2c_fd);
186 i2c_fd = −1;
187 }
188
189 /
190
Open a uinput node :
191
/
192 static int
193 uinput_open(void) {
194 int fd;
195 struct uinput_user_dev uinp;
196 int rc;
197
198 fd = open("/dev/uinput",O_WRONLY|O_NONBLOCK);
199 if ( fd < 0 ) {
200 perror("Opening/dev/uinput");
201 exit(1);
202 }
203
204 rc = ioctl(fd,UI_SET_EVBIT,EV_KEY);
205 assert(!rc);
206 rc = ioctl(fd,UI_SET_EVBIT,EV_REL);
207 assert(!rc);
208
209 rc = ioctl(fd,UI_SET_RELBIT,REL_X);
210 assert(!rc);
211 rc = ioctl(fd,UI_SET_RELBIT,REL_Y);
212 assert(!rc);
213
214 rc = ioctl(fd,UI_SET_KEYBIT,KEY_ESC);
215 assert(!rc);
216
217 ioctl(fd,UI_SET_KEYBIT,BTN_MOUSE);
218 ioctl(fd,UI_SET_KEYBIT,BTN_TOUCH);
219 ioctl(fd,UI_SET_KEYBIT,BTN_MOUSE);
220 ioctl(fd,UI_SET_KEYBIT,BTN_LEFT);
221 ioctl(fd,UI_SET_KEYBIT,BTN_MIDDLE);
222 ioctl(fd,UI_SET_KEYBIT,BTN_RIGHT);
223
224 memset(&uinp,0,sizeof uinp);
225 strncpy(uinp.name,"nunchuk",UINPUT_MAX_NAME_SIZE);
226 uinp.id.bustype = BUS_USB;
227 uinp.id.vendor = 0x1;
228 uinp.id.product = 0x1;
229 uinp.id.version = 1;
230
Search WWH ::




Custom Search