mirror of https://github.com/mpv-player/mpv
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:
parent
aa4388fea4
commit
6961b9ef70
|
@ -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))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue