Mercurial > mplayer.hg
changeset 3016:ea414257856f
Hide terminal's output and text-mode cursor for LCD and DFP
author | nick |
---|---|
date | Tue, 20 Nov 2001 07:55:34 +0000 |
parents | 8bf21c807656 |
children | fb792e58aac5 |
files | linux/vbelib.c |
diffstat | 1 files changed, 23 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/linux/vbelib.c Tue Nov 20 07:53:20 2001 +0000 +++ b/linux/vbelib.c Tue Nov 20 07:55:34 2001 +0000 @@ -89,6 +89,27 @@ #define VBE_LRMI_int(int_no,regs) (VBE_LRMI_int(int_no,regs)) #endif +static FILE *my_stdin; +static FILE *my_stdout; +static FILE *my_stderr; + +static void __set_cursor_type(FILE *stdout_fd,int cursor_on) +{ + fprintf(stdout_fd,"\033[?25%c",cursor_on?'h':'l'); +} + +/* TODO: do it only on LCD or DFP. We should extract such info from DDC */ +static void hide_terminal_output( void ) +{ + my_stdin = fopen(ttyname(fileno(stdin )),"r"); + my_stdout = fopen(ttyname(fileno(stdout)),"w"); + my_stderr = fopen(ttyname(fileno(stderr)),"w"); + __set_cursor_type(stdout,0); +/*if(isatty(fileno(stdin ))) stdin =freopen("/dev/null","r",stdin );*/ + if(isatty(fileno(stdout))) stdout=freopen("/dev/null","w",stdout); + if(isatty(fileno(stderr))) stderr=freopen("/dev/null","w",stderr); +} + static unsigned hh_int_10_seg; static int fd_mem; int vbeInit( void ) @@ -115,11 +136,13 @@ && vbe_pm_info.iopl_ports[i++] > 1023) ioperm(iopl_port,1,1); iopl(3); fd_mem = open("/dev/mem",O_RDWR); + hide_terminal_output(); return VBE_OK; } int vbeDestroy( void ) { + __set_cursor_type(my_stdout,1); close(fd_mem); return VBE_OK; }