+ case 'Q': /* quit order */
+ case 'q':
+ case 27: /* escape key */
+ case 3: /* ^C */
+ p_intf->b_die = 1;
+ break;
+ case '0': /* source change */
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ /* Change channel - return code is ignored since SelectChannel displays
+ * its own error messages */
+ intf_SelectChannel( p_intf, i_key - '0' );
+ break;
+ case '+': /* volume + */
+ if( (p_main->p_aout != NULL) && (p_main->p_aout->vol < VOLMAX) )
+ p_main->p_aout->vol += VOLSTEP;
+ break;
+ case '-': /* volume - */
+ if( (p_main->p_aout != NULL) && (p_main->p_aout->vol > VOLSTEP) )
+ p_main->p_aout->vol -= VOLSTEP;
+ break;
+ case 'M': /* toggle mute */
+ case 'm':
+ if( (p_main->p_aout != NULL) && (p_main->p_aout->vol))
+ {
+ i_volbackup = p_main->p_aout->vol;
+ p_main->p_aout->vol = 0;
+ }
+ else if( (p_main->p_aout != NULL) && (!p_main->p_aout->vol))
+ p_main->p_aout->vol = i_volbackup;
+ break;
+ case 'g': /* gamma - */
+ if( (p_intf->p_vout != NULL) && (p_intf->p_vout->f_gamma > -INTF_GAMMA_LIMIT) )
+ {
+ vlc_mutex_lock( &p_intf->p_vout->change_lock );
+ p_intf->p_vout->f_gamma -= INTF_GAMMA_STEP;
+ p_intf->p_vout->i_changes |= VOUT_GAMMA_CHANGE;
+ vlc_mutex_unlock( &p_intf->p_vout->change_lock );
+ }
+ break;
+ case 'G': /* gamma + */
+ if( (p_intf->p_vout != NULL) && (p_intf->p_vout->f_gamma < INTF_GAMMA_LIMIT) )
+ {
+ vlc_mutex_lock( &p_intf->p_vout->change_lock );
+ p_intf->p_vout->f_gamma += INTF_GAMMA_STEP;
+ p_intf->p_vout->i_changes |= VOUT_GAMMA_CHANGE;
+ vlc_mutex_unlock( &p_intf->p_vout->change_lock );
+ }
+ break;
+ case 'c': /* toggle grayscale */
+ if( p_intf->p_vout != NULL )
+ {
+ vlc_mutex_lock( &p_intf->p_vout->change_lock );
+ p_intf->p_vout->b_grayscale = !p_intf->p_vout->b_grayscale;
+ p_intf->p_vout->i_changes |= VOUT_GRAYSCALE_CHANGE;
+ vlc_mutex_unlock( &p_intf->p_vout->change_lock );
+ }
+ break;
+ case ' ': /* toggle interface */
+ if( p_intf->p_vout != NULL )
+ {
+ vlc_mutex_lock( &p_intf->p_vout->change_lock );
+ p_intf->p_vout->b_interface = !p_intf->p_vout->b_interface;
+ p_intf->p_vout->i_changes |= VOUT_INTF_CHANGE;
+ vlc_mutex_unlock( &p_intf->p_vout->change_lock );
+ }
+ break;
+ case 'i': /* toggle info */
+ if( p_intf->p_vout != NULL )
+ {
+ vlc_mutex_lock( &p_intf->p_vout->change_lock );
+ p_intf->p_vout->b_info = !p_intf->p_vout->b_info;
+ p_intf->p_vout->i_changes |= VOUT_INFO_CHANGE;
+ vlc_mutex_unlock( &p_intf->p_vout->change_lock );
+ }
+ break;
+ case 's': /* toggle scaling */
+ if( p_intf->p_vout != NULL )
+ {
+ vlc_mutex_lock( &p_intf->p_vout->change_lock );
+ p_intf->p_vout->b_scale = !p_intf->p_vout->b_scale;
+ p_intf->p_vout->i_changes |= VOUT_SCALE_CHANGE;
+ vlc_mutex_unlock( &p_intf->p_vout->change_lock );
+ }
+ break;
+ default: /* unknown key */
+ return( 1 );
+ }