//----------------------------------------------------------------- WorldInput::WorldInput(WorldMap *world) : GameInput(world) { //TODO: 'O' ... options, 'I' ... intro, 'E' ... exit, 'C' ... credits KeyDesc key_tab(KEY_TAB, "select next level"); KeyDesc key_enter(KEY_ENTER, "run selected"); /* FFNG no shortcuts for android TODO replace these keys by buttons or menu m_keymap->registerKey(KeyStroke(SDLK_TAB, KMOD_NONE), key_tab); m_keymap->registerKey(KeyStroke(SDLK_RETURN, KMOD_NONE), key_enter); */ }
//----------------------------------------------------------------- ConsoleInput::ConsoleInput(KeyConsole *console) : StateInput(console) { KeyDesc key_history(KEY_HISTORY, "input history"); KeyDesc key_backspace(KEY_BACKSPACE, "backspace"); KeyDesc key_clear(KEY_CLEAR, "clear"); KeyDesc key_enter(KEY_ENTER, "enter"); /* FFNG no these keys for console TODO remap these keys to some android buttons (if console will be available) m_keymap->registerKey(KeyStroke(SDLK_UP, KMOD_NONE), key_history); m_keymap->registerKey(KeyStroke(SDLK_BACKSPACE, KMOD_NONE), key_backspace); m_keymap->registerKey(KeyStroke(SDLK_u, KMOD_LCTRL), key_clear); m_keymap->registerKey(KeyStroke(SDLK_u, KMOD_RCTRL), key_clear); m_keymap->registerKey(KeyStroke(SDLK_RETURN, KMOD_NONE), key_enter); */ }
void curses_loop() { int key, w_height, w_width; notimeout(main_win, true); for (;;) { getmaxyx(status_win, w_height, w_width); mvwprintw(status_win, w_height - 2 , 1, "p - play, s - stop, q - quit"); wrefresh(status_win); key = wgetch(main_win); switch (key) { case KEY_UP: break; case 10: // 10 == ENTER case 'p': key_enter(); break; case ' ': mvwprintw(status_win, 1, 5, "CMD: PAUSE"); send_pause_command(sock_fd); break; case 'q': mvwprintw(status_win, 1, 5, "CMD: QUIT "); send_quit_command(sock_fd); wrefresh(status_win); return; case 's': mvwprintw(status_win, 1, 5, "CMD: STOP "); send_stop_command(sock_fd); break; case 68: mvwprintw(status_win, 1, 5, "CMD: REV "); send_rev_command(sock_fd); break; case 67: mvwprintw(status_win, 1, 5, "CMD: FF "); send_ff_command(sock_fd); break; case 66: // DOWN - scroll files key_down(); break; case 65: // UP - scroll files key_up(); break; //case 410: case KEY_RESIZE: resize_windows(); break; default: mvwprintw(status_win, 10, 1, "pressed:"); mvwprintw(status_win, 11, 1, "%3d as '%c'", key, key); break; } wrefresh(status_win); } }