From e27e245ffe2cd6da034e8bbf2703351b7738df57 Mon Sep 17 00:00:00 2001 From: faust3 Date: Mon, 22 Sep 2003 11:31:51 +0000 Subject: add a read function for slave mode on mingw git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10929 b3059339-0415-0410-9bf9-f77b7e298cf2 --- mplayer.c | 5 +++++ osdep/getch2-win.c | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/mplayer.c b/mplayer.c index 5dd2b8ad8a..93b3733211 100644 --- a/mplayer.c +++ b/mplayer.c @@ -13,6 +13,7 @@ #define SIGQUIT 3 /* quit */ #define SIGKILL 9 /* kill (cannot be caught or ignored) */ #define SIGBUS 10 /* bus error */ +extern int mp_input_win32_slave_cmd_func(int fd,char* dest,int size); #endif #include @@ -1121,7 +1122,11 @@ if(keyb_fifo_get > 0) mp_input_add_key_fd(-1,0,mplayer_get_key,NULL); #endif if(slave_mode) +#ifndef __MINGW32__ mp_input_add_cmd_fd(0,1,NULL,NULL); +#else + mp_input_add_cmd_fd(0,0,mp_input_win32_slave_cmd_func,NULL); +#endif else if(!use_stdin) #ifndef HAVE_NO_POSIX_SELECT mp_input_add_key_fd(0,1,NULL,NULL); diff --git a/osdep/getch2-win.c b/osdep/getch2-win.c index 59fd751c99..023ec95a6d 100644 --- a/osdep/getch2-win.c +++ b/osdep/getch2-win.c @@ -6,6 +6,25 @@ #include #include "keycodes.h" +#include "../input/input.h" + +int mp_input_win32_slave_cmd_func(int fd,char* dest,int size){ + DWORD i,retval; + int x=0; + HANDLE stdin = GetStdHandle(STD_INPUT_HANDLE); + INPUT_RECORD eventbuffer[250]; + if(!GetNumberOfConsoleInputEvents(stdin,&retval) || !retval)return MP_INPUT_NOTHING; + ReadConsoleInput(stdin,eventbuffer,250,&retval); + for(i = 0; i < retval; i++){ + if(eventbuffer[i].EventType==KEY_EVENT&&eventbuffer[i].Event.KeyEvent.bKeyDown== TRUE){ + if(eventbuffer[i].Event.KeyEvent.wVirtualKeyCode==VK_RETURN)dest[x]='\n'; + else dest[x]=eventbuffer[i].Event.KeyEvent.uChar.AsciiChar; + ++x; + } + } + if(x)return x; + return MP_INPUT_NOTHING; +} int screen_width=80; int screen_height=24; -- cgit v1.2.3