mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33: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
|
/// 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
|
/// blocking function and do not stalls the CPU waiting for data to be
|
||||||
/// loaded from memory, that can be quite slow.
|
/// 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 const std::string engine_authors();
|
||||||
extern int get_system_time();
|
extern int get_system_time();
|
||||||
extern int cpu_count();
|
extern int cpu_count();
|
||||||
extern int input_available();
|
|
||||||
extern void prefetch(char* addr);
|
extern void prefetch(char* addr);
|
||||||
|
|
||||||
extern void dbg_hit_on(bool b);
|
extern void dbg_hit_on(bool b);
|
||||||
|
|
Loading…
Add table
Reference in a new issue