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

📄 var.c

📁 uclinux 下的vlc播放器源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
    for( i = 0; i <  t->i_seekpoint; i++ )    {        vlc_value_t text;        val.i_int = i;        if( t->seekpoint[i]->psz_name == NULL ||            *t->seekpoint[i]->psz_name == '\0' )        {            /* Default value */            asprintf( &text.psz_string, _("Chapter %i"),                      i + p_input->i_seekpoint_offset );        }        else        {            text.psz_string = strdup( t->seekpoint[i]->psz_name );        }        var_Change( p_input, "chapter", VLC_VAR_ADDCHOICE, &val, &text );        if( text.psz_string ) free( text.psz_string );    }}/***************************************************************************** * input_ConfigVarInit: *  Create all config object variables *****************************************************************************/void input_ConfigVarInit ( input_thread_t *p_input ){    vlc_value_t val;    /* Create Object Variables for private use only */    var_Create( p_input, "video", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );    var_Create( p_input, "audio", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );    var_Create( p_input, "spu", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );    var_Create( p_input, "audio-track", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT );    var_Create( p_input, "sub-track", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT );    var_Create( p_input, "audio-language", VLC_VAR_STRING|VLC_VAR_DOINHERIT );    var_Create( p_input, "sub-language", VLC_VAR_STRING|VLC_VAR_DOINHERIT );    var_Create( p_input, "audio-track-id", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT );    var_Create( p_input, "sub-track-id", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT );    var_Create( p_input, "sub-file", VLC_VAR_FILE | VLC_VAR_DOINHERIT );    var_Create( p_input, "sub-autodetect-file", VLC_VAR_BOOL |                VLC_VAR_DOINHERIT );    var_Create( p_input, "sub-autodetect-path", VLC_VAR_STRING |                VLC_VAR_DOINHERIT );    var_Create( p_input, "sub-autodetect-fuzzy", VLC_VAR_INTEGER |                VLC_VAR_DOINHERIT );    var_Create( p_input, "sout", VLC_VAR_STRING | VLC_VAR_DOINHERIT );    var_Create( p_input, "sout-all",   VLC_VAR_BOOL | VLC_VAR_DOINHERIT );    var_Create( p_input, "sout-audio", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );    var_Create( p_input, "sout-video", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );    var_Create( p_input, "sout-spu", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );    var_Create( p_input, "sout-keep",  VLC_VAR_BOOL | VLC_VAR_DOINHERIT );    var_Create( p_input, "input-repeat", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT );    var_Create( p_input, "start-time", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT );    var_Create( p_input, "stop-time", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT );    var_Create( p_input, "minimize-threads", VLC_VAR_BOOL|VLC_VAR_DOINHERIT );    var_Create( p_input, "demuxed-id3", VLC_VAR_BOOL ); /* FIXME beurk */    val.b_bool = VLC_FALSE;    var_Change( p_input, "demuxed-id3", VLC_VAR_SETVALUE, &val, NULL );    var_Create( p_input, "audio-desync", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );    var_Create( p_input, "cr-average", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );    var_Create( p_input, "clock-synchro", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT);    var_Create( p_input, "seekable", VLC_VAR_BOOL );    val.b_bool = VLC_TRUE; /* Fixed later*/    var_Change( p_input, "seekable", VLC_VAR_SETVALUE, &val, NULL );    var_Create( p_input, "input-slave", VLC_VAR_STRING | VLC_VAR_DOINHERIT );    /* */    var_Create( p_input, "access-filter", VLC_VAR_STRING | VLC_VAR_DOINHERIT );    var_Create( p_input, "access", VLC_VAR_STRING | VLC_VAR_DOINHERIT );    var_Create( p_input, "demux", VLC_VAR_STRING | VLC_VAR_DOINHERIT );    /* Meta */    var_Create( p_input, "meta-title", VLC_VAR_STRING | VLC_VAR_DOINHERIT );    var_Create( p_input, "meta-author", VLC_VAR_STRING | VLC_VAR_DOINHERIT );    var_Create( p_input, "meta-artist", VLC_VAR_STRING | VLC_VAR_DOINHERIT );    var_Create( p_input, "meta-genre", VLC_VAR_STRING | VLC_VAR_DOINHERIT );    var_Create( p_input, "meta-copyright", VLC_VAR_STRING | VLC_VAR_DOINHERIT);    var_Create( p_input, "meta-description", VLC_VAR_STRING|VLC_VAR_DOINHERIT);    var_Create( p_input, "meta-date", VLC_VAR_STRING | VLC_VAR_DOINHERIT );    var_Create( p_input, "meta-url", VLC_VAR_STRING | VLC_VAR_DOINHERIT );}/***************************************************************************** * All Callbacks: *****************************************************************************/static int StateCallback( vlc_object_t *p_this, char const *psz_cmd,                          vlc_value_t oldval, vlc_value_t newval,                          void *p_data ){    input_thread_t *p_input = (input_thread_t*)p_this;    if( newval.i_int == PLAYING_S || newval.i_int == PAUSE_S )    {        input_ControlPush( p_input, INPUT_CONTROL_SET_STATE, &newval );        return VLC_SUCCESS;    }    return VLC_EGENERIC;}static int RateCallback( vlc_object_t *p_this, char const *psz_cmd,                         vlc_value_t oldval, vlc_value_t newval, void *p_data ){    input_thread_t *p_input = (input_thread_t*)p_this;    /* Problem with this way: the "rate" variable is update after the input thread do the change */    if( !strcmp( psz_cmd, "rate-slower" ) )    {        input_ControlPush( p_input, INPUT_CONTROL_SET_RATE_SLOWER, NULL );    }    else if( !strcmp( psz_cmd, "rate-faster" ) )    {        input_ControlPush( p_input, INPUT_CONTROL_SET_RATE_FASTER, NULL );    }    else    {        input_ControlPush( p_input, INPUT_CONTROL_SET_RATE, &newval );    }    return VLC_SUCCESS;}static int PositionCallback( vlc_object_t *p_this, char const *psz_cmd,                             vlc_value_t oldval, vlc_value_t newval,                             void *p_data ){    input_thread_t *p_input = (input_thread_t*)p_this;    vlc_value_t val, length;    if( !strcmp( psz_cmd, "position-offset" ) )    {        input_ControlPush( p_input, INPUT_CONTROL_SET_POSITION_OFFSET, &newval );        val.f_float = var_GetFloat( p_input, "position" ) + newval.f_float;        if( val.f_float < 0.0 ) val.f_float = 0.0;        if( val.f_float > 1.0 ) val.f_float = 1.0;        var_Change( p_input, "position", VLC_VAR_SETVALUE, &val, NULL );    }    else    {        val.f_float = newval.f_float;        input_ControlPush( p_input, INPUT_CONTROL_SET_POSITION, &newval );    }    /* Update "position" for better intf behavour */    var_Get( p_input, "length", &length );    if( length.i_time > 0 && val.f_float >= 0.0 && val.f_float <= 1.0 )    {        val.i_time = length.i_time * val.f_float;        var_Change( p_input, "time", VLC_VAR_SETVALUE, &val, NULL );    }    return VLC_SUCCESS;}static int TimeCallback( vlc_object_t *p_this, char const *psz_cmd,                         vlc_value_t oldval, vlc_value_t newval, void *p_data ){    input_thread_t *p_input = (input_thread_t*)p_this;    vlc_value_t val, length;    if( !strcmp( psz_cmd, "time-offset" ) )    {        input_ControlPush( p_input, INPUT_CONTROL_SET_TIME_OFFSET, &newval );        val.i_time = var_GetTime( p_input, "time" ) + newval.i_time;        if( val.i_time < 0 ) val.i_time = 0;        /* TODO maybe test against i_length ? */        var_Change( p_input, "time", VLC_VAR_SETVALUE, &val, NULL );    }    else    {        val.i_time = newval.i_time;        input_ControlPush( p_input, INPUT_CONTROL_SET_TIME, &newval );    }    /* Update "position" for better intf behavour */    var_Get( p_input, "length", &length );    if( length.i_time > 0 && val.i_time >= 0 && val.i_time <= length.i_time )    {        val.f_float = (double)val.i_time/(double)length.i_time;        var_Change( p_input, "position", VLC_VAR_SETVALUE, &val, NULL );    }    return VLC_SUCCESS;}static int ProgramCallback( vlc_object_t *p_this, char const *psz_cmd,                            vlc_value_t oldval, vlc_value_t newval,                            void *p_data ){    input_thread_t *p_input = (input_thread_t*)p_this;    input_ControlPush( p_input, INPUT_CONTROL_SET_PROGRAM, &newval );    return VLC_SUCCESS;}static int TitleCallback( vlc_object_t *p_this, char const *psz_cmd,                          vlc_value_t oldval, vlc_value_t newval,                          void *p_data ){    input_thread_t *p_input = (input_thread_t*)p_this;    vlc_value_t val, count;    if( !strcmp( psz_cmd, "next-title" ) )    {        input_ControlPush( p_input, INPUT_CONTROL_SET_TITLE_NEXT, NULL );        val.i_int = var_GetInteger( p_input, "title" ) + 1;        var_Change( p_input, "title", VLC_VAR_CHOICESCOUNT, &count, NULL );        if( val.i_int < count.i_int )            var_Change( p_input, "title", VLC_VAR_SETVALUE, &val, NULL );    }    else if( !strcmp( psz_cmd, "prev-title" ) )    {        input_ControlPush( p_input, INPUT_CONTROL_SET_TITLE_PREV, NULL );        val.i_int = var_GetInteger( p_input, "title" ) - 1;        if( val.i_int >= 0 )            var_Change( p_input, "title", VLC_VAR_SETVALUE, &val, NULL );    }    else    {        input_ControlPush( p_input, INPUT_CONTROL_SET_TITLE, &newval );    }    return VLC_SUCCESS;}static int SeekpointCallback( vlc_object_t *p_this, char const *psz_cmd,                              vlc_value_t oldval, vlc_value_t newval,                              void *p_data ){    input_thread_t *p_input = (input_thread_t*)p_this;    vlc_value_t val, count;    if( !strcmp( psz_cmd, "next-chapter" ) )    {        input_ControlPush( p_input, INPUT_CONTROL_SET_SEEKPOINT_NEXT, NULL );        val.i_int = var_GetInteger( p_input, "chapter" ) + 1;        var_Change( p_input, "chapter", VLC_VAR_CHOICESCOUNT, &count, NULL );        if( val.i_int < count.i_int )            var_Change( p_input, "chapter", VLC_VAR_SETVALUE, &val, NULL );    }    else if( !strcmp( psz_cmd, "prev-chapter" ) )    {        input_ControlPush( p_input, INPUT_CONTROL_SET_SEEKPOINT_PREV, NULL );        val.i_int = var_GetInteger( p_input, "chapter" ) - 1;        if( val.i_int >= 0 )            var_Change( p_input, "chapter", VLC_VAR_SETVALUE, &val, NULL );    }    else    {        input_ControlPush( p_input, INPUT_CONTROL_SET_SEEKPOINT, &newval );    }    return VLC_SUCCESS;}static int NavigationCallback( vlc_object_t *p_this, char const *psz_cmd,                               vlc_value_t oldval, vlc_value_t newval,                               void *p_data ){    input_thread_t *p_input = (input_thread_t*)p_this;    vlc_value_t     val;    /* Issue a title change */    val.i_int = (int)p_data;    input_ControlPush( p_input, INPUT_CONTROL_SET_TITLE, &val );    var_Change( p_input, "title", VLC_VAR_SETVALUE, &val, NULL );    /* And a chapter change */    input_ControlPush( p_input, INPUT_CONTROL_SET_SEEKPOINT, &newval );    var_Change( p_input, "chapter", VLC_VAR_SETVALUE, &newval, NULL );    return VLC_SUCCESS;}static int ESCallback( vlc_object_t *p_this, char const *psz_cmd,                       vlc_value_t oldval, vlc_value_t newval, void *p_data ){    input_thread_t *p_input = (input_thread_t*)p_this;    if( newval.i_int < 0 )    {        vlc_value_t v;        /* Hack */        if( !strcmp( psz_cmd, "audio-es" ) )            v.i_int = -AUDIO_ES;        else if( !strcmp( psz_cmd, "video-es" ) )            v.i_int = -VIDEO_ES;        else if( !strcmp( psz_cmd, "spu-es" ) )            v.i_int = -SPU_ES;        else            v.i_int = 0;        if( v.i_int != 0 )            input_ControlPush( p_input, INPUT_CONTROL_SET_ES, &v );    }    else    {        input_ControlPush( p_input, INPUT_CONTROL_SET_ES, &newval );    }    return VLC_SUCCESS;}static int EsDelayCallback ( vlc_object_t *p_this, char const *psz_cmd,                             vlc_value_t oldval, vlc_value_t newval, void *p ){    input_thread_t *p_input = (input_thread_t*)p_this;    if( !strcmp( psz_cmd, "audio-delay" ) )    {        /*Change i_pts_delay to make sure es are decoded in time*/        if (newval.i_int < 0 || oldval.i_int < 0 )        {            p_input->i_pts_delay -= newval.i_int - oldval.i_int;        }        input_ControlPush( p_input, INPUT_CONTROL_SET_AUDIO_DELAY, &newval );    }    else if( !strcmp( psz_cmd, "spu-delay" ) )        input_ControlPush( p_input, INPUT_CONTROL_SET_SPU_DELAY, &newval );    return VLC_SUCCESS;}static int BookmarkCallback( vlc_object_t *p_this, char const *psz_cmd,                             vlc_value_t oldval, vlc_value_t newval,                             void *p_data ){    input_thread_t *p_input = (input_thread_t*)p_this;    input_ControlPush( p_input, INPUT_CONTROL_SET_BOOKMARK, &newval );    return VLC_SUCCESS;}

⌨️ 快捷键说明

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