Mercurial > mplayer.hg
changeset 113:f6f8f53b75ad
common FIFO code moved to fifo.c
author | arpi_esp |
---|---|
date | Fri, 16 Mar 2001 00:06:50 +0000 |
parents | b69d29c06b3f |
children | 47515462adc0 |
files | codecctrl.c fifo.c |
diffstat | 2 files changed, 80 insertions(+), 84 deletions(-) [+] |
line wrap: on
line diff
--- a/codecctrl.c Fri Mar 16 00:05:52 2001 +0000 +++ b/codecctrl.c Fri Mar 16 00:06:50 2001 +0000 @@ -20,9 +20,6 @@ // codec: static int data_fifo2=-1; static int control_fifo2=-1; -// keyboard: -static int keyb_fifo_put=-1; -static int keyb_fifo_get=-1; // SIGTERM handler of codec controller (2nd process): @@ -54,49 +51,6 @@ exit(0); } - -static void make_pipe(int* pr,int* pw){ - int temp[2]; - if(pipe(temp)!=0) printf("Cannot make PIPE!\n"); - *pr=temp[0]; - *pw=temp[1]; -} - -static inline int my_write(int fd,unsigned char* mem,int len){ - int total=0; - int len2; - while(len>0){ - len2=write(fd,mem+total,len); if(len2<=0) break; - total+=len2;len-=len2; -// printf("%d bytes received, %d left\n",len2,len); - } - return total; -} - -static inline int my_read(int fd,unsigned char* mem,int len){ - int total=0; - int len2; - while(len>0){ - len2=read(fd,mem+total,len); if(len2<=0) break; - total+=len2;len-=len2; -// printf("%d bytes received, %d left\n",len2,len); - } - return total; -} - - -void send_cmd(int fd,int cmd){ - int fifo_cmd=cmd; - write(fd,&fifo_cmd,4); -// fflush(control_fifo); -} - -static const int frameratecode2framerate[16] = { - 0, 24000*10000/1001, 24*10000,25*10000, 30000*10000/1001, 30*10000,50*10000,60000*10000/1001, - 60*10000, 0,0,0,0,0,0,0 -}; - - void mpeg_codec_controller(vo_functions_t *video_out){ //================== CODEC Controller: ========================== signal(SIGTERM,codec_ctrl_sighandler); // set our SIGTERM handler @@ -164,41 +118,3 @@ exit(0); } -void mplayer_put_key(int code){ - fd_set rfds; - struct timeval tv; - - /* Watch stdin (fd 0) to see when it has input. */ - FD_ZERO(&rfds); - FD_SET(keyb_fifo_put, &rfds); - tv.tv_sec = 0; - tv.tv_usec = 0; - - //retval = select(keyb_fifo_put+1, &rfds, NULL, NULL, &tv); - if(select(keyb_fifo_put+1, NULL, &rfds, NULL, &tv)){ - write(keyb_fifo_put,&code,4); -// printf("*** key event %d sent ***\n",code); - } else { -// printf("*** key event dropped (FIFO is full) ***\n"); - } -} - -int mplayer_get_key(){ - fd_set rfds; - struct timeval tv; - int code=-1; - - /* Watch stdin (fd 0) to see when it has input. */ - FD_ZERO(&rfds); - FD_SET(keyb_fifo_get, &rfds); - tv.tv_sec = 0; - tv.tv_usec = 0; - - //retval = select(keyb_fifo_put+1, &rfds, NULL, NULL, &tv); - if(select(keyb_fifo_put+1, &rfds, NULL, NULL, &tv)){ - read(keyb_fifo_get,&code,4); -// printf("*** key event %d read ***\n",code); - } - return code; -} -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fifo.c Fri Mar 16 00:06:50 2001 +0000 @@ -0,0 +1,80 @@ + +// keyboard: +static int keyb_fifo_put=-1; +static int keyb_fifo_get=-1; + +static void make_pipe(int* pr,int* pw){ + int temp[2]; + if(pipe(temp)!=0) printf("Cannot make PIPE!\n"); + *pr=temp[0]; + *pw=temp[1]; +} + +static inline int my_write(int fd,unsigned char* mem,int len){ + int total=0; + int len2; + while(len>0){ + len2=write(fd,mem+total,len); if(len2<=0) break; + total+=len2;len-=len2; +// printf("%d bytes received, %d left\n",len2,len); + } + return total; +} + +static inline int my_read(int fd,unsigned char* mem,int len){ + int total=0; + int len2; + while(len>0){ + len2=read(fd,mem+total,len); if(len2<=0) break; + total+=len2;len-=len2; +// printf("%d bytes received, %d left\n",len2,len); + } + return total; +} + + +void send_cmd(int fd,int cmd){ + int fifo_cmd=cmd; + write(fd,&fifo_cmd,4); +// fflush(control_fifo); +} + + +void mplayer_put_key(int code){ + fd_set rfds; + struct timeval tv; + + /* Watch stdin (fd 0) to see when it has input. */ + FD_ZERO(&rfds); + FD_SET(keyb_fifo_put, &rfds); + tv.tv_sec = 0; + tv.tv_usec = 0; + + //retval = select(keyb_fifo_put+1, &rfds, NULL, NULL, &tv); + if(select(keyb_fifo_put+1, NULL, &rfds, NULL, &tv)){ + write(keyb_fifo_put,&code,4); +// printf("*** key event %d sent ***\n",code); + } else { +// printf("*** key event dropped (FIFO is full) ***\n"); + } +} + +int mplayer_get_key(){ + fd_set rfds; + struct timeval tv; + int code=-1; + + /* Watch stdin (fd 0) to see when it has input. */ + FD_ZERO(&rfds); + FD_SET(keyb_fifo_get, &rfds); + tv.tv_sec = 0; + tv.tv_usec = 0; + + //retval = select(keyb_fifo_put+1, &rfds, NULL, NULL, &tv); + if(select(keyb_fifo_put+1, &rfds, NULL, NULL, &tv)){ + read(keyb_fifo_get,&code,4); +// printf("*** key event %d read ***\n",code); + } + return code; +} +