- p_sys->b_auto = true;
- }
-
- /* tty handling */
- if( p_sys->b_tty )
- {
- GfxMode( p_sys->i_tty );
-
- /* Set keyboard settings */
- if( tcgetattr(0, &p_vout->p_sys->old_termios) == -1 )
- {
- msg_Err( p_vout, "tcgetattr failed" );
- }
-
- if( tcgetattr(0, &new_termios) == -1 )
- {
- msg_Err( p_vout, "tcgetattr failed" );
- }
-
- /* new_termios.c_lflag &= ~ (ICANON | ISIG);
- new_termios.c_lflag |= (ECHO | ECHOCTL); */
- new_termios.c_lflag &= ~ (ICANON);
- new_termios.c_lflag &= ~(ECHO | ECHOCTL);
- new_termios.c_iflag = 0;
- new_termios.c_cc[VMIN] = 1;
- new_termios.c_cc[VTIME] = 0;
-
- if( tcsetattr(0, TCSAFLUSH, &new_termios) == -1 )
- {
- msg_Err( p_vout, "tcsetattr failed" );
- }
-
- ioctl( p_sys->i_tty, VT_RELDISP, VT_ACKACQ );
-
- /* Set-up tty signal handler to be aware of tty changes */
- memset( &sig_tty, 0, sizeof( sig_tty ) );
- sig_tty.sa_handler = SwitchDisplay;
- sigemptyset( &sig_tty.sa_mask );
- if( sigaction( SIGUSR1, &sig_tty, &p_vout->p_sys->sig_usr1 ) ||
- sigaction( SIGUSR2, &sig_tty, &p_vout->p_sys->sig_usr2 ) )
- {
- msg_Err( p_vout, "cannot set signal handler (%m)" );
- tcsetattr(0, 0, &p_vout->p_sys->old_termios);
- TextMode( p_sys->i_tty );
- free( p_vout->p_sys );
- return VLC_EGENERIC;
- }
-
- /* Set-up tty according to new signal handler */
- if( -1 == ioctl( p_sys->i_tty, VT_GETMODE, &p_vout->p_sys->vt_mode ) )
- {
- msg_Err( p_vout, "cannot get terminal mode (%m)" );
- sigaction( SIGUSR1, &p_vout->p_sys->sig_usr1, NULL );
- sigaction( SIGUSR2, &p_vout->p_sys->sig_usr2, NULL );
- tcsetattr(0, 0, &p_vout->p_sys->old_termios);
- TextMode( p_sys->i_tty );
- free( p_vout->p_sys );