Add support for reading key events from MinGW xterm.

Unfortunately keys only arrive after enter was pressed
and SetNamedPipeHandleState does not seem to help.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30784 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
reimar 2010-02-28 00:24:01 +00:00
parent aa4388fea4
commit 6961b9ef70
1 changed files with 10 additions and 1 deletions

View File

@ -25,6 +25,7 @@
#include "config.h"
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <windows.h>
#include "keycodes.h"
@ -64,7 +65,15 @@ static int getch2_internal(void)
INPUT_RECORD eventbuffer[128];
DWORD retval;
int i=0;
if(!getch2_status)return -1;
if(!getch2_status){
// supports e.g. MinGW xterm, unfortunately keys are only received after
// enter was pressed.
uint8_t c;
if (!PeekNamedPipe(in, NULL, 1, &retval, NULL, NULL) || !retval)
return -1;
ReadFile(in, &c, 1, &retval, NULL);
return retval == 1 ? c : -1;
}
/*check if there are input events*/
if(!GetNumberOfConsoleInputEvents(in,&retval))
{