mirror of
https://github.com/xcat2/xNBA.git
synced 2024-12-14 23:31:39 +00:00
Use iskey() and getchar() to interact with console, rather than object
abstraction.
This commit is contained in:
parent
a497e16767
commit
2ed2b2efe8
@ -1,6 +1,7 @@
|
||||
#include <curses.h>
|
||||
#include <stddef.h>
|
||||
#include <timer.h>
|
||||
#include <console.h>
|
||||
#include "core.h"
|
||||
|
||||
/** @file
|
||||
@ -37,7 +38,7 @@ int _wgetc ( WINDOW *win ) {
|
||||
return ERR;
|
||||
|
||||
timer = INPUT_DELAY_TIMEOUT;
|
||||
while ( ! win->scr->peek( win->scr ) ) {
|
||||
while ( ! iskey() ) {
|
||||
if ( m_delay == 0 ) // non-blocking read
|
||||
return ERR;
|
||||
if ( timer > 0 ) { // time-limited blocking read
|
||||
@ -47,7 +48,7 @@ int _wgetc ( WINDOW *win ) {
|
||||
} else { return ERR; } // non-blocking read
|
||||
}
|
||||
|
||||
c = win->scr->getc( win->scr );
|
||||
c = getchar();
|
||||
|
||||
if ( m_echo && ( c >= 32 && c <= 126 ) ) // printable ASCII characters
|
||||
_wputch( win, (chtype) ( c | win->attrs ), WRAP );
|
||||
|
@ -46,21 +46,6 @@ typedef struct _curses_screen {
|
||||
* @v c character to be written
|
||||
*/
|
||||
void ( * putc ) ( struct _curses_screen *scr, chtype c );
|
||||
/**
|
||||
* Pop a character from the keyboard input stream
|
||||
*
|
||||
* @v scr screen on which to operate
|
||||
* @ret c popped character
|
||||
*/
|
||||
int ( * getc ) ( struct _curses_screen *scr );
|
||||
/**
|
||||
* Checks to see whether a character is waiting in the input stream
|
||||
*
|
||||
* @v scr screen on which to operate
|
||||
* @ret TRUE character waiting in stream
|
||||
* @ret FALSE no character waiting in stream
|
||||
*/
|
||||
bool ( *peek ) ( struct _curses_screen *scr );
|
||||
} SCREEN;
|
||||
|
||||
/** Curses Window struct */
|
||||
|
@ -83,6 +83,6 @@ SCREEN _curscr = {
|
||||
.exit = _exit_screen,
|
||||
.movetoyx = _movetoyx,
|
||||
.putc = _putc,
|
||||
.getc = _getc,
|
||||
.peek = _peek,
|
||||
// .getc = _getc,
|
||||
// .peek = _peek,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user