| 448 | | do |
| 449 | | fread(&evt, sizeof(struct input_event), 1, f); |
| 450 | | while(evt.type != EV_KEY || evt.value != 0); |
| 451 | | |
| 452 | | switch (evt.code) { |
| 453 | | case KEY_UP: |
| 454 | | if (choice > 0) choice--; |
| 455 | | break; |
| 456 | | case KEY_DOWN: |
| 457 | | if ( choice < (bl->size - 1) ) choice++; |
| 458 | | break; |
| 459 | | case KEY_R: |
| 460 | | display_text(fb, "Rebooting..."); |
| 461 | | sync(); |
| 462 | | /* if ( -1 == reboot(LINUX_REBOOT_CMD_RESTART) ) { */ |
| 463 | | if ( -1 == reboot(RB_AUTOBOOT) ) { |
| 464 | | perror("Can't initiate reboot"); |
| | 467 | do{ |
| | 468 | /* Wait for some input. */ |
| | 469 | tv.tv_sec =1; |
| | 470 | tv.tv_usec = 0; |
| | 471 | FD_ZERO(&fds); |
| | 472 | FD_SET( ev0,&fds); |
| | 473 | FD_SET(ev1,&fds); |
| | 474 | maxfd = 8; |
| | 475 | nready = select(maxfd, &fds, NULL,NULL,&tv); |
| | 476 | /* now GTA02 specific */ |
| | 477 | if( FD_ISSET(ev0, &fds)) |
| | 478 | { |
| | 479 | read(ev0,&evt, sizeof(struct input_event)); |
| | 480 | DPRINTF("event: %i %i %i,\n",evt.type, evt.code,evt.value); |
| | 481 | } |
| | 482 | if( FD_ISSET(ev1, &fds)) |
| | 483 | { |
| | 484 | read(ev1,&evt1 ,sizeof(struct input_event) ); |
| | 485 | DPRINTF("event1: %i %i %i,\n",evt1.type, evt1.code,evt1.value); |
| | 486 | if ((evt1.code == 330) && (evt1.value == 1)) |
| | 487 | { |
| | 488 | if ( choice < (bl->size - 1) ) |
| | 489 | { |
| | 490 | choice++; |
| | 491 | DPRINTF("Choice %i\n", choice); |
| | 492 | } |
| | 493 | else |
| | 494 | { |
| | 495 | choice=0; |
| | 496 | } |
| | 497 | DPRINTF("Selected: %i ,\n",choice ); |
| | 498 | break; |
| 466 | | break; |
| 467 | | case KEY_S: /* reScan */ |
| 468 | | display_text(fb, "Rescanning devices.\nPlease wait..."); |
| 469 | | free_bootlist(bl); |
| 470 | | bl = scan_devices(model); |
| 471 | | break; |
| 472 | | } |
| 473 | | |
| 474 | | } while( (bl->size == 0) || (evt.code != 87 && evt.code != 63 && |
| 475 | | evt.code != KEY_SPACE && evt.code != KEY_ENTER && |
| 476 | | evt.code != KEY_HIRAGANA && evt.code != KEY_HENKAN) ); |
| | 500 | } |
| | 501 | } while( ( evt.type != EV_KEY || evt.value != 0) || ( evt.type != EV_KEY || evt1.value != 0) ); |
| | 502 | // dev/event0 power 116 |
| | 503 | }while( ( evt.code != 169 ) || (bl->size == 0) ); |
| | 504 | draw_background(fb, "DEBUG by EW: .\n Boot selected "); |
| | 505 | fb_render(fb); |
| | 506 | |