diff options
author | faust3 <faust3@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-04-04 20:02:53 +0000 |
---|---|---|
committer | faust3 <faust3@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-04-04 20:02:53 +0000 |
commit | 21c079928068bd00ec8e55eeb268e36c9db8bc09 (patch) | |
tree | 93a8263f18f0054174a6fa1a5211d78173735f55 /fifo.c | |
parent | 3a6df1e21e164925f13ba6fdfc26e3add607a882 (diff) | |
download | mpv-21c079928068bd00ec8e55eeb268e36c9db8bc09.tar.bz2 mpv-21c079928068bd00ec8e55eeb268e36c9db8bc09.tar.xz |
MINGW32 port and select()less fifocode by Arpi
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9832 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'fifo.c')
-rw-r--r-- | fifo.c | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -1,4 +1,6 @@ +#ifndef HAVE_NO_POSIX_SELECT + // keyboard: static int keyb_fifo_put=-1; static int keyb_fifo_get=-1; @@ -28,3 +30,30 @@ void mplayer_put_key(int code){ // printf("*** key event dropped (FIFO is full) ***\n"); } } + +#else + +#define KEY_FIFO_SIZE 1024 +static int key_fifo_data[KEY_FIFO_SIZE]; +static int key_fifo_read=0; +static int key_fifo_write=0; + +void mplayer_put_key(int code){ +// printf("mplayer_put_key(%d)\n",code); + if(((key_fifo_write+1)%KEY_FIFO_SIZE)==key_fifo_read) return; // FIFO FULL!! + key_fifo_data[key_fifo_write]=code; + key_fifo_write=(key_fifo_write+1)%KEY_FIFO_SIZE; +} + +int mplayer_get_key(int fd){ + int key; +// printf("mplayer_get_key(%d)\n",fd); + if(key_fifo_write==key_fifo_read) return MP_INPUT_NOTHING; + key=key_fifo_data[key_fifo_read]; + key_fifo_read=(key_fifo_read+1)%KEY_FIFO_SIZE; +// printf("mplayer_get_key => %d\n",key); + return key; +} + +#endif + |