Proper check for interactive support (termios and conio).

Originally committed as revision 9597 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Ramiro Polla 2007-07-11 14:04:54 +00:00
parent 6ffa87d325
commit e16e49ac90
2 changed files with 12 additions and 7 deletions

5
configure vendored
View File

@ -651,6 +651,7 @@ HAVE_LIST="
arpa_inet_h
byteswap_h
cmov
conio_h
dcbzl
dev_bktr_ioctl_bt848_h
dev_bktr_ioctl_meteor_h
@ -681,6 +682,7 @@ HAVE_LIST="
soundcard_h
sys_poll_h
sys_soundcard_h
termios_h
threads
"
@ -1510,6 +1512,9 @@ check_header byteswap.h
check_func mkstemp
check_header termios.h
check_header conio.h
check_header arpa/inet.h
check_func inet_aton

View File

@ -34,9 +34,9 @@
#include "fifo.h"
#include "avstring.h"
#ifdef __MINGW32__
#if defined(HAVE_CONIO_H)
#include <conio.h>
#else
#elif defined(HAVE_TERMIOS_H)
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
@ -277,7 +277,7 @@ typedef struct AVInputFile {
int nb_streams; /* nb streams we are aware of */
} AVInputFile;
#ifndef __MINGW32__
#ifdef HAVE_TERMIOS_H
/* init terminal so that we can grab keys */
static struct termios oldtty;
@ -285,7 +285,7 @@ static struct termios oldtty;
static void term_exit(void)
{
#ifndef __MINGW32__
#ifdef HAVE_TERMIOS_H
tcsetattr (0, TCSANOW, &oldtty);
#endif
}
@ -301,7 +301,7 @@ sigterm_handler(int sig)
static void term_init(void)
{
#ifndef __MINGW32__
#ifdef HAVE_TERMIOS_H
struct termios tty;
tcgetattr (0, &tty);
@ -334,10 +334,10 @@ static void term_init(void)
/* read a key without blocking */
static int read_key(void)
{
#ifdef __MINGW32__
#if defined(HAVE_CONIO_H)
if(kbhit())
return(getch());
#else
#elif defined(HAVE_TERMIOS_H)
int n = 1;
unsigned char ch;
#ifndef CONFIG_BEOS_NETSERVER