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

📄 hotkeys.c

📁 uclinux 下的vlc播放器源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
                }            }        }        else if( i_action == ACTIONID_PLAY_PAUSE )        {            val.i_int = PLAYING_S;            if( p_input )            {                ClearChannels( p_intf, p_vout );                var_Get( p_input, "state", &val );                if( val.i_int != PAUSE_S )                {                    vout_OSDIcon( VLC_OBJECT( p_intf ), DEFAULT_CHAN,                                  OSD_PAUSE_ICON );                    val.i_int = PAUSE_S;                }                else                {                    vout_OSDIcon( VLC_OBJECT( p_intf ), DEFAULT_CHAN,                                  OSD_PLAY_ICON );                    val.i_int = PLAYING_S;                }                var_Set( p_input, "state", val );            }            else            {                p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,                                              FIND_ANYWHERE );                if( p_playlist )                {                    playlist_Play( p_playlist );                    vlc_object_release( p_playlist );                }            }        }        else if( p_input )        {            /* FIXME --fenrir             * How to get a valid value ?             * That's not that easy with some special stream             */            vlc_bool_t b_seekable = VLC_TRUE;            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 \                       * ((mtime_t)(1 << i_times))); \        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 );                }                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 );                }                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 );                }                free( val.psz_string );            }            else if( i_action == ACTIONID_CROP_TOP && p_vout )            {                int i_val = var_GetInteger( p_vout, "crop-top" );                var_SetInteger( p_vout, "crop-top", i_val+1 );            }            else if( i_action == ACTIONID_UNCROP_TOP && p_vout )            {                int i_val = var_GetInteger( p_vout, "crop-top" );                if( i_val != 0 )                    var_SetInteger( p_vout, "crop-top", i_val-1 );            }            else if( i_action == ACTIONID_CROP_BOTTOM && p_vout )            {                int i_val = var_GetInteger( p_vout, "crop-bottom" );                var_SetInteger( p_vout, "crop-bottom", i_val+1 );            }            else if( i_action == ACTIONID_UNCROP_BOTTOM && p_vout )            {                int i_val = var_GetInteger( p_vout, "crop-bottom" );                if( i_val != 0 )                    var_SetInteger( p_vout, "crop-bottom", i_val-1 );            }            else if( i_action == ACTIONID_CROP_LEFT && p_vout )            {                int i_val = var_GetInteger( p_vout, "crop-left" );                var_SetInteger( p_vout, "crop-left", i_val+1 );            }            else if( i_action == ACTIONID_UNCROP_LEFT && p_vout )            {                int i_val = var_GetInteger( p_vout, "crop-left" );                if( i_val != 0 )                    var_SetInteger( p_vout, "crop-left", i_val-1 );            }            else if( i_action == ACTIONID_CROP_RIGHT && p_vout )            {                int i_val = var_GetInteger( p_vout, "crop-right" );                var_SetInteger( p_vout, "crop-right", i_val+1 );            }            else if( i_action == ACTIONID_UNCROP_RIGHT && p_vout )            {                int i_val = var_GetInteger( p_vout, "crop-right" );                if( i_val != 0 )                    var_SetInteger( p_vout, "crop-right", i_val-1 );            }            else if( i_action == ACTIONID_NEXT )            {                p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,                                              FIND_ANYWHERE );                if( p_playlist )                {                    vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,                                     _("Next") );                    playlist_Next( p_playlist );                    vlc_object_release( p_playlist );                }            }            else if( i_action == ACTIONID_PREV )            {                p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,                                              FIND_ANYWHERE );                if( p_playlist )                {                    vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,                                     _("Previous") );                    playlist_Prev( p_playlist );                    vlc_object_release( p_playlist );                }            }            else if( i_action == ACTIONID_STOP )

⌨️ 快捷键说明

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