⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hotkeys.c

📁 VLC Player Source Code
💻 C
📖 第 1 页 / 共 3 页
字号:
                playlist_Play( p_playlist );            }        }        else if( i_action == ACTIONID_AUDIODEVICE_CYCLE )        {            vlc_value_t val, list, list2;            int i_count, i;            aout_instance_t *p_aout =                vlc_object_find( p_intf, VLC_OBJECT_AOUT, FIND_ANYWHERE );            var_Get( p_aout, "audio-device", &val );            var_Change( p_aout, "audio-device", VLC_VAR_GETCHOICES,                    &list, &list2 );            i_count = list.p_list->i_count;            /* Not enough device to switch between */            if( i_count <= 1 )                continue;            for( i = 0; i < i_count; i++ )            {                if( val.i_int == list.p_list->p_values[i].i_int )                {                    break;                }            }            if( i == i_count )            {                msg_Warn( p_aout,                        "invalid current audio device, selecting 0" );                var_Set( p_aout, "audio-device",                        list.p_list->p_values[0] );                i = 0;            }            else if( i == i_count -1 )            {                var_Set( p_aout, "audio-device",                        list.p_list->p_values[0] );                i = 0;            }            else            {                var_Set( p_aout, "audio-device",                        list.p_list->p_values[i+1] );                i++;            }            vout_OSDMessage( p_intf, DEFAULT_CHAN,                    _("Audio Device: %s"),                    list2.p_list->p_values[i].psz_string);            vlc_object_release( p_aout );        }        /* Input options */        else if( p_input )        {            bool b_seekable = var_GetBool( p_input, "seekable" );            int i_interval =0;            if( i_action == ACTIONID_PAUSE )            {                var_Get( p_input, "state", &val );                if( val.i_int != PAUSE_S )                {                    ClearChannels( p_intf, p_vout );                    vout_OSDIcon( VLC_OBJECT( p_intf ), DEFAULT_CHAN,                                  OSD_PAUSE_ICON );                    val.i_int = PAUSE_S;                    var_Set( p_input, "state", val );                }            }            else if( i_action == ACTIONID_JUMP_BACKWARD_EXTRASHORT                     && b_seekable )            {#define SET_TIME( a, b ) \    i_interval = config_GetInt( p_input, a "-jump-size" ); \    if( i_interval > 0 ) { \        val.i_time = (mtime_t)(i_interval * b) * 1000000L; \        var_Set( p_input, "time-offset", val ); \        DisplayPosition( p_intf, p_vout, p_input ); \    }                SET_TIME( "extrashort", -1 );            }            else if( i_action == ACTIONID_JUMP_FORWARD_EXTRASHORT && b_seekable )            {                SET_TIME( "extrashort", 1 );            }            else if( i_action == ACTIONID_JUMP_BACKWARD_SHORT && b_seekable )            {                SET_TIME( "short", -1 );            }            else if( i_action == ACTIONID_JUMP_FORWARD_SHORT && b_seekable )            {                SET_TIME( "short", 1 );            }            else if( i_action == ACTIONID_JUMP_BACKWARD_MEDIUM && b_seekable )            {                SET_TIME( "medium", -1 );            }            else if( i_action == ACTIONID_JUMP_FORWARD_MEDIUM && b_seekable )            {                SET_TIME( "medium", 1 );            }            else if( i_action == ACTIONID_JUMP_BACKWARD_LONG && b_seekable )            {                SET_TIME( "long", -1 );            }            else if( i_action == ACTIONID_JUMP_FORWARD_LONG && b_seekable )            {                SET_TIME( "long", 1 );#undef SET_TIME            }            else if( i_action == ACTIONID_AUDIO_TRACK )            {                vlc_value_t val, list, list2;                int i_count, i;                var_Get( p_input, "audio-es", &val );                var_Change( p_input, "audio-es", VLC_VAR_GETCHOICES,                            &list, &list2 );                i_count = list.p_list->i_count;                if( i_count <= 1 )                {                    continue;                }                for( i = 0; i < i_count; i++ )                {                    if( val.i_int == list.p_list->p_values[i].i_int )                    {                        break;                    }                }                /* value of audio-es was not in choices list */                if( i == i_count )                {                    msg_Warn( p_input,                              "invalid current audio track, selecting 0" );                    var_Set( p_input, "audio-es",                             list.p_list->p_values[0] );                    i = 0;                }                else if( i == i_count - 1 )                {                    var_Set( p_input, "audio-es",                             list.p_list->p_values[1] );                    i = 1;                }                else                {                    var_Set( p_input, "audio-es",                             list.p_list->p_values[i+1] );                    i++;                }                vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,                                 _("Audio track: %s"),                                 list2.p_list->p_values[i].psz_string );            }            else if( i_action == ACTIONID_SUBTITLE_TRACK )            {                vlc_value_t val, list, list2;                int i_count, i;                var_Get( p_input, "spu-es", &val );                var_Change( p_input, "spu-es", VLC_VAR_GETCHOICES,                            &list, &list2 );                i_count = list.p_list->i_count;                if( i_count <= 1 )                {                    vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,                                     _("Subtitle track: %s"), _("N/A") );                    continue;                }                for( i = 0; i < i_count; i++ )                {                    if( val.i_int == list.p_list->p_values[i].i_int )                    {                        break;                    }                }                /* value of spu-es was not in choices list */                if( i == i_count )                {                    msg_Warn( p_input,                              "invalid current subtitle track, selecting 0" );                    var_Set( p_input, "spu-es", list.p_list->p_values[0] );                    i = 0;                }                else if( i == i_count - 1 )                {                    var_Set( p_input, "spu-es", list.p_list->p_values[0] );                    i = 0;                }                else                {                    var_Set( p_input, "spu-es", list.p_list->p_values[i+1] );                    i = i + 1;                }                vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,                                 _("Subtitle track: %s"),                                 list2.p_list->p_values[i].psz_string );            }            else if( i_action == ACTIONID_ASPECT_RATIO && p_vout )            {                vlc_value_t val={0}, val_list, text_list;                var_Get( p_vout, "aspect-ratio", &val );                if( var_Change( p_vout, "aspect-ratio", VLC_VAR_GETLIST,                                &val_list, &text_list ) >= 0 )                {                    int i;                    for( i = 0; i < val_list.p_list->i_count; i++ )                    {                        if( !strcmp( val_list.p_list->p_values[i].psz_string,                                     val.psz_string ) )                        {                            i++;                            break;                        }                    }                    if( i == val_list.p_list->i_count ) i = 0;                    var_SetString( p_vout, "aspect-ratio",                                   val_list.p_list->p_values[i].psz_string );                    vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,                                     _("Aspect ratio: %s"),                                     text_list.p_list->p_values[i].psz_string );                    var_Change( p_vout, "aspect-ratio", VLC_VAR_FREELIST, &val_list, &text_list );                }                free( val.psz_string );            }            else if( i_action == ACTIONID_CROP && p_vout )            {                vlc_value_t val={0}, val_list, text_list;                var_Get( p_vout, "crop", &val );                if( var_Change( p_vout, "crop", VLC_VAR_GETLIST,                                &val_list, &text_list ) >= 0 )                {                    int i;                    for( i = 0; i < val_list.p_list->i_count; i++ )                    {                        if( !strcmp( val_list.p_list->p_values[i].psz_string,                                     val.psz_string ) )                        {                            i++;                            break;                        }                    }                    if( i == val_list.p_list->i_count ) i = 0;                    var_SetString( p_vout, "crop",                                   val_list.p_list->p_values[i].psz_string );                    vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,                                     _("Crop: %s"),                                     text_list.p_list->p_values[i].psz_string );                    var_Change( p_vout, "crop", VLC_VAR_FREELIST, &val_list, &text_list );                }                free( val.psz_string );            }            else if( i_action == ACTIONID_DEINTERLACE && p_vout )            {                vlc_value_t val={0}, val_list, text_list;                var_Get( p_vout, "deinterlace", &val );                if( var_Change( p_vout, "deinterlace", VLC_VAR_GETLIST,                                &val_list, &text_list ) >= 0 )                {                    int i;                    for( i = 0; i < val_list.p_list->i_count; i++ )                    {                        if( !strcmp( val_list.p_list->p_values[i].psz_string,                                     val.psz_string ) )                        {                            i++;                            break;                        }                    }                    if( i == val_list.p_list->i_count ) i = 0;                    var_SetString( p_vout, "deinterlace",                                   val_list.p_list->p_values[i].psz_string );                    vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,                                     _("Deinterlace mode: %s"),                                     text_list.p_list->p_values[i].psz_string );                    var_Change( p_vout, "deinterlace", VLC_VAR_FREELIST, &val_list, &text_list );                }                free( val.psz_string );            }            else if( ( i_action == ACTIONID_ZOOM || i_action == ACTIONID_UNZOOM ) && p_vout )            {                vlc_value_t val={0}, val_list, text_list;                var_Get( p_vout, "zoom", &val );                if( var_Change( p_vout, "zoom", VLC_VAR_GETLIST,                                &val_list, &text_list ) >= 0 )                {                    int i;                    for( i = 0; i < val_list.p_list->i_count; i++ )                    {                        if( val_list.p_list->p_values[i].f_float                           == val.f_float )                        {                            if( i_action == ACTIONID_ZOOM )                                i++;                            else /* ACTIONID_UNZOOM */                                i--;                            break;                        }                    }                    if( i == val_list.p_list->i_count ) i = 0;                    if( i == -1 ) i = val_list.p_list->i_count-1;                    var_SetFloat( p_vout, "zoom",                                  val_list.p_list->p_values[i].f_float );                    vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,                                     _("Zoom mode: %s"),                                text_list.p_list->p_values[i].var.psz_name );                    var_Change( p_vout, "zoom", VLC_VAR_FREELIST, &val_list, &text_list );                }            }            else if( i_action == ACTIONID_CROP_TOP && p_vout )                var_IncInteger( p_vout, "crop-top" );            else if( i_action == ACTIONID_UNCROP_TOP && p_vout )                var_DecInteger( p_vout, "crop-top" );            else if( i_action == ACTIONID_CROP_BOTTOM && p_vout )                var_IncInteger( p_vout, "crop-bottom" );            else if( i_action == ACTIONID_UNCROP_BOTTOM && p_vout )                 var_DecInteger( p_vout, "crop-bottom" );            else if( i_action == ACTIONID_CROP_LEFT && p_vout )                 var_IncInteger( p_vout, "crop-left" );            else if( i_action == ACTIONID_UNCROP_LEFT && p_vout )                 var_DecInteger( p_vout, "crop-left" );            else if( i_action == ACTIONID_CROP_RIGHT && p_vout )                 var_IncInteger( p_vout, "crop-right" );            else if( i_action == ACTIONID_UNCROP_RIGHT && p_vout )                 var_DecInteger( p_vout, "crop-right" );            else if( i_action == ACTIONID_NEXT )            {                vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN, _("Next") );                playlist_Next( p_playlist );            }            else if( i_action == ACTIONID_PREV )            {                vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,                                 _("Previous") );                playlist_Prev( p_playlist );            }            else if( i_action == ACTIONID_STOP )            {                playlist_Stop( p_playlist );            }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -