mirror of
https://github.com/sockspls/badfish
synced 2025-04-29 16:23:09 +00:00
Retire now unused input_available()
With our new listener thread we don't need anymore this ugly and platform dependent code. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
2617aa415e
commit
0095f423f2
2 changed files with 0 additions and 74 deletions
73
src/misc.cpp
73
src/misc.cpp
|
@ -175,79 +175,6 @@ int cpu_count() {
|
|||
}
|
||||
|
||||
|
||||
/// Check for console input. Original code from Beowulf, Olithink and Greko
|
||||
|
||||
#ifndef _WIN32
|
||||
|
||||
int input_available() {
|
||||
|
||||
fd_set readfds;
|
||||
struct timeval timeout;
|
||||
|
||||
FD_ZERO(&readfds);
|
||||
FD_SET(fileno(stdin), &readfds);
|
||||
timeout.tv_sec = 0; // Set to timeout immediately
|
||||
timeout.tv_usec = 0;
|
||||
select(16, &readfds, 0, 0, &timeout);
|
||||
|
||||
return (FD_ISSET(fileno(stdin), &readfds));
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
int input_available() {
|
||||
|
||||
static HANDLE inh = NULL;
|
||||
static bool usePipe = false;
|
||||
INPUT_RECORD rec[256];
|
||||
DWORD nchars, recCnt;
|
||||
|
||||
if (!inh)
|
||||
{
|
||||
inh = GetStdHandle(STD_INPUT_HANDLE);
|
||||
if (GetConsoleMode(inh, &nchars))
|
||||
{
|
||||
SetConsoleMode(inh, nchars & ~(ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT));
|
||||
FlushConsoleInputBuffer(inh);
|
||||
} else
|
||||
usePipe = true;
|
||||
}
|
||||
|
||||
// When using Standard C input functions, also check if there
|
||||
// is anything in the buffer. After a call to such functions,
|
||||
// the input waiting in the pipe will be copied to the buffer,
|
||||
// and the call to PeekNamedPipe can indicate no input available.
|
||||
// Setting stdin to unbuffered was not enough. [from Greko]
|
||||
if (stdin->_cnt > 0)
|
||||
return 1;
|
||||
|
||||
// When running under a GUI the input commands are sent to us
|
||||
// directly over the internal pipe. If PeekNamedPipe() returns 0
|
||||
// then something went wrong. Probably the parent program exited.
|
||||
// Returning 1 will make the next call to the input function
|
||||
// return EOF, where this should be catched then.
|
||||
if (usePipe)
|
||||
return PeekNamedPipe(inh, NULL, 0, NULL, &nchars, NULL) ? nchars : 1;
|
||||
|
||||
// Count the number of unread input records, including keyboard,
|
||||
// mouse, and window-resizing input records.
|
||||
GetNumberOfConsoleInputEvents(inh, &nchars);
|
||||
|
||||
// Read data from console without removing it from the buffer
|
||||
if (nchars <= 0 || !PeekConsoleInput(inh, rec, std::min(int(nchars), 256), &recCnt))
|
||||
return 0;
|
||||
|
||||
// Search for at least one keyboard event
|
||||
for (DWORD i = 0; i < recCnt; i++)
|
||||
if (rec[i].EventType == KEY_EVENT)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/// prefetch() preloads the given address in L1/L2 cache. This is a non
|
||||
/// blocking function and do not stalls the CPU waiting for data to be
|
||||
/// loaded from memory, that can be quite slow.
|
||||
|
|
|
@ -28,7 +28,6 @@ extern const std::string engine_name();
|
|||
extern const std::string engine_authors();
|
||||
extern int get_system_time();
|
||||
extern int cpu_count();
|
||||
extern int input_available();
|
||||
extern void prefetch(char* addr);
|
||||
|
||||
extern void dbg_hit_on(bool b);
|
||||
|
|
Loading…
Add table
Reference in a new issue