# HG changeset patch # User rathann # Date 1175188571 0 # Node ID 98eaf29b5deebdd82f40ee87d5574a4b19ca03cb # Parent 79cac4f79e367eaedf21cddda81065ce5eb5c559 Code cleanup: don't include a .c file in mplayer.c and fix a few "implicit declaration of function ¡Æmplayer_put_key¡Ç" warnings Based on Attila's suggestions. Approved by Uoti and Ivan. diff -r 79cac4f79e36 -r 98eaf29b5dee Gui/win32/gui.c --- a/Gui/win32/gui.c Thu Mar 29 09:27:36 2007 +0000 +++ b/Gui/win32/gui.c Thu Mar 29 17:16:11 2007 +0000 @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include diff -r 79cac4f79e36 -r 98eaf29b5dee Makefile --- a/Makefile Thu Mar 29 09:27:36 2007 +0000 +++ b/Makefile Thu Mar 29 17:16:11 2007 +0000 @@ -41,6 +41,7 @@ SRCS_MPLAYER = mplayer.c \ m_property.c \ + mp_fifo.c \ mp_msg.c \ mixer.c \ parser-mpcmd.c \ diff -r 79cac4f79e36 -r 98eaf29b5dee cfg-mplayer.h --- a/cfg-mplayer.h Thu Mar 29 09:27:36 2007 +0000 +++ b/cfg-mplayer.h Thu Mar 29 17:16:11 2007 +0000 @@ -4,6 +4,8 @@ #include "cfg-common.h" +extern int key_fifo_size; +extern unsigned doubleclick_time; extern int noconsolecontrols; #if defined(HAVE_FBDEV)||defined(HAVE_VESA) diff -r 79cac4f79e36 -r 98eaf29b5dee fifo.c --- a/fifo.c Thu Mar 29 09:27:36 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -#include "input/mouse.h" - - -int key_fifo_size = 7; -static int *key_fifo_data = NULL; -static int key_fifo_read=0; -static int key_fifo_write=0; - -static void mplayer_put_key_internal(int code){ - int fifo_free = key_fifo_read - key_fifo_write - 1; - if (fifo_free < 0) fifo_free += key_fifo_size; -// printf("mplayer_put_key(%d)\n",code); - if (key_fifo_data == NULL) - key_fifo_data = malloc(key_fifo_size * sizeof(int)); - if(!fifo_free) return; // FIFO FULL!! - // reserve some space for key release events to avoid stuck keys - if((code & MP_KEY_DOWN) && fifo_free < (key_fifo_size >> 1)) - return; - 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_data == NULL) - return MP_INPUT_NOTHING; - 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; -} - - -static unsigned doubleclick_time = 300; - -static void put_double(int code) { - if (code >= MOUSE_BTN0 && code <= MOUSE_BTN9) - mplayer_put_key_internal(code - MOUSE_BTN0 + MOUSE_BTN0_DBL); -} - -void mplayer_put_key(int code) { - static unsigned last_key_time[2]; - static int last_key[2]; - unsigned now = GetTimerMS(); - // ignore system-doubleclick if we generate these events ourselves - if (doubleclick_time && - (code & ~MP_KEY_DOWN) >= MOUSE_BTN0_DBL && - (code & ~MP_KEY_DOWN) <= MOUSE_BTN9_DBL) - return; - mplayer_put_key_internal(code); - if (code & MP_KEY_DOWN) { - code &= ~MP_KEY_DOWN; - last_key[1] = last_key[0]; - last_key[0] = code; - last_key_time[1] = last_key_time[0]; - last_key_time[0] = now; - if (last_key[1] == code && - now - last_key_time[1] < doubleclick_time) - put_double(code); - return; - } - if (last_key[0] == code && last_key[1] == code && - now - last_key_time[1] < doubleclick_time) - put_double(code); -} diff -r 79cac4f79e36 -r 98eaf29b5dee libvo/vo_aa.c --- a/libvo/vo_aa.c Thu Mar 29 09:27:36 2007 +0000 +++ b/libvo/vo_aa.c Thu Mar 29 17:16:11 2007 +0000 @@ -37,6 +37,7 @@ #include "subopt-helper.h" #include "help_mp.h" #include "mp_msg.h" +#include "mp_fifo.h" #define MESSAGE_DURATION 3 @@ -83,8 +84,6 @@ /* our version of the playmodes :) */ -extern void mplayer_put_key(int code); - /* to disable stdout outputs when curses/linux mode */ extern int quiet; diff -r 79cac4f79e36 -r 98eaf29b5dee libvo/vo_caca.c --- a/libvo/vo_caca.c Thu Mar 29 09:27:36 2007 +0000 +++ b/libvo/vo_caca.c Thu Mar 29 17:16:11 2007 +0000 @@ -26,6 +26,7 @@ #include "osdep/keycodes.h" #include "mp_msg.h" +#include "mp_fifo.h" #include #ifdef CACA_API_VERSION_1 diff -r 79cac4f79e36 -r 98eaf29b5dee libvo/vo_dfbmga.c --- a/libvo/vo_dfbmga.c Thu Mar 29 09:27:36 2007 +0000 +++ b/libvo/vo_dfbmga.c Thu Mar 29 17:16:11 2007 +0000 @@ -39,6 +39,7 @@ #include "sub.h" #include "mp_msg.h" #include "aspect.h" +#include "mp_fifo.h" static vo_info_t info = { "DirectFB / Matrox G200/G400/G450/G550", @@ -1425,8 +1426,6 @@ return VO_NOTIMPL; } -extern void mplayer_put_key( int code ); - #include "osdep/keycodes.h" static void diff -r 79cac4f79e36 -r 98eaf29b5dee libvo/vo_directfb2.c --- a/libvo/vo_directfb2.c Thu Mar 29 09:27:36 2007 +0000 +++ b/libvo/vo_directfb2.c Thu Mar 29 17:16:11 2007 +0000 @@ -47,6 +47,7 @@ #include "mp_msg.h" #include "aspect.h" #include "subopt-helper.h" +#include "mp_fifo.h" #ifndef min #define min(x,y) (((x)<(y))?(x):(y)) @@ -892,8 +893,6 @@ return 0; } -extern void mplayer_put_key(int code); - #include "osdep/keycodes.h" static void check_events(void) diff -r 79cac4f79e36 -r 98eaf29b5dee libvo/vo_directx.c --- a/libvo/vo_directx.c Thu Mar 29 09:27:36 2007 +0000 +++ b/libvo/vo_directx.c Thu Mar 29 17:16:11 2007 +0000 @@ -34,6 +34,7 @@ #include "mp_msg.h" #include "aspect.h" #include "geometry.h" +#include "mp_fifo.h" #ifdef HAVE_NEW_GUI #include "Gui/interface.h" @@ -85,7 +86,6 @@ static BOOL (WINAPI* myGetMonitorInfo)(HMONITOR, LPMONITORINFO) = NULL; static RECT last_rect = {0xDEADC0DE, 0xDEADC0DE, 0xDEADC0DE, 0xDEADC0DE}; -extern void mplayer_put_key(int code); //let mplayer handel the keyevents extern void vo_draw_text(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)); extern int vidmode; diff -r 79cac4f79e36 -r 98eaf29b5dee libvo/vo_ggi.c --- a/libvo/vo_ggi.c Thu Mar 29 09:27:36 2007 +0000 +++ b/libvo/vo_ggi.c Thu Mar 29 17:16:11 2007 +0000 @@ -26,6 +26,7 @@ #include "video_out_internal.h" #include "fastmemcpy.h" +#include "mp_fifo.h" #include @@ -471,7 +472,6 @@ /* EVENT handling */ #include "osdep/keycodes.h" -extern void mplayer_put_key(int code); static void check_events(void) { diff -r 79cac4f79e36 -r 98eaf29b5dee libvo/vo_quartz.c --- a/libvo/vo_quartz.c Thu Mar 29 09:27:36 2007 +0000 +++ b/libvo/vo_quartz.c Thu Mar 29 17:16:11 2007 +0000 @@ -30,6 +30,7 @@ #include "aspect.h" #include "mp_msg.h" #include "m_option.h" +#include "mp_fifo.h" #include "input/input.h" #include "input/mouse.h" @@ -128,7 +129,6 @@ #include "osdep/keycodes.h" -extern void mplayer_put_key(int code); extern void vo_draw_text(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)); //PROTOTYPE///////////////////////////////////////////////////////////////// diff -r 79cac4f79e36 -r 98eaf29b5dee libvo/vo_sdl.c --- a/libvo/vo_sdl.c Thu Mar 29 09:27:36 2007 +0000 +++ b/libvo/vo_sdl.c Thu Mar 29 17:16:11 2007 +0000 @@ -125,6 +125,7 @@ #include "input/input.h" #include "input/mouse.h" #include "subopt-helper.h" +#include "mp_fifo.h" static vo_info_t info = { @@ -1160,7 +1161,6 @@ **/ #include "osdep/keycodes.h" -extern void mplayer_put_key(int code); #define shift_key (event.key.keysym.mod==(KMOD_LSHIFT||KMOD_RSHIFT)) static void check_events (void) diff -r 79cac4f79e36 -r 98eaf29b5dee libvo/vo_winvidix.c --- a/libvo/vo_winvidix.c Thu Mar 29 09:27:36 2007 +0000 +++ b/libvo/vo_winvidix.c Thu Mar 29 17:16:11 2007 +0000 @@ -22,11 +22,11 @@ #include "aspect.h" #include "mp_msg.h" +#include "mp_fifo.h" #include "vosub_vidix.h" #include "vidix/vidixlib.h" -extern void mplayer_put_key(int code); static vo_info_t info = { diff -r 79cac4f79e36 -r 98eaf29b5dee libvo/w32_common.c --- a/libvo/w32_common.c Thu Mar 29 09:27:36 2007 +0000 +++ b/libvo/w32_common.c Thu Mar 29 17:16:11 2007 +0000 @@ -10,8 +10,8 @@ #include "video_out.h" #include "aspect.h" #include "w32_common.h" +#include "mp_fifo.h" -extern void mplayer_put_key(int code); extern int enable_mouse_movements; #ifndef MONITOR_DEFAULTTOPRIMARY diff -r 79cac4f79e36 -r 98eaf29b5dee libvo/x11_common.c --- a/libvo/x11_common.c Thu Mar 29 09:27:36 2007 +0000 +++ b/libvo/x11_common.c Thu Mar 29 17:16:11 2007 +0000 @@ -6,6 +6,7 @@ #include "config.h" #include "mp_msg.h" +#include "mp_fifo.h" #include "x11_common.h" #ifdef X11_FULLSCREEN @@ -557,8 +558,6 @@ #include "osdep/keycodes.h" #include "wskeys.h" -extern void mplayer_put_key(int code); - #ifdef XF86XK_AudioPause static void vo_x11_putkey_ext(int keysym) { diff -r 79cac4f79e36 -r 98eaf29b5dee mp_fifo.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mp_fifo.c Thu Mar 29 17:16:11 2007 +0000 @@ -0,0 +1,70 @@ +#include +#include "osdep/timer.h" +#include "input/input.h" +#include "input/mouse.h" + + +int key_fifo_size = 7; +static int *key_fifo_data = NULL; +static int key_fifo_read=0; +static int key_fifo_write=0; + +static void mplayer_put_key_internal(int code){ + int fifo_free = key_fifo_read - key_fifo_write - 1; + if (fifo_free < 0) fifo_free += key_fifo_size; +// printf("mplayer_put_key(%d)\n",code); + if (key_fifo_data == NULL) + key_fifo_data = malloc(key_fifo_size * sizeof(int)); + if(!fifo_free) return; // FIFO FULL!! + // reserve some space for key release events to avoid stuck keys + if((code & MP_KEY_DOWN) && fifo_free < (key_fifo_size >> 1)) + return; + 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_data == NULL) + return MP_INPUT_NOTHING; + 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; +} + + +unsigned doubleclick_time = 300; + +static void put_double(int code) { + if (code >= MOUSE_BTN0 && code <= MOUSE_BTN9) + mplayer_put_key_internal(code - MOUSE_BTN0 + MOUSE_BTN0_DBL); +} + +void mplayer_put_key(int code) { + static unsigned last_key_time[2]; + static int last_key[2]; + unsigned now = GetTimerMS(); + // ignore system-doubleclick if we generate these events ourselves + if (doubleclick_time && + (code & ~MP_KEY_DOWN) >= MOUSE_BTN0_DBL && + (code & ~MP_KEY_DOWN) <= MOUSE_BTN9_DBL) + return; + mplayer_put_key_internal(code); + if (code & MP_KEY_DOWN) { + code &= ~MP_KEY_DOWN; + last_key[1] = last_key[0]; + last_key[0] = code; + last_key_time[1] = last_key_time[0]; + last_key_time[0] = now; + if (last_key[1] == code && + now - last_key_time[1] < doubleclick_time) + put_double(code); + return; + } + if (last_key[0] == code && last_key[1] == code && + now - last_key_time[1] < doubleclick_time) + put_double(code); +} diff -r 79cac4f79e36 -r 98eaf29b5dee mplayer.c --- a/mplayer.c Thu Mar 29 09:27:36 2007 +0000 +++ b/mplayer.c Thu Mar 29 17:16:11 2007 +0000 @@ -188,7 +188,7 @@ //**************************************************************************// // Common FIFO functions, and keyboard/event FIFO code -#include "fifo.c" +#include "mp_fifo.h" int noconsolecontrols=0; //**************************************************************************//