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

📄 vlm.c

📁 VLC Player Source Code
💻 C
📖 第 1 页 / 共 2 页
字号:
    libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );    return VLC_EGENERIC;#endif}#define VLM_CHANGE(psz_error, code ) do {   \    vlm_media_t *p_media;   \    vlm_t *p_vlm;           \    int64_t id;             \    VLM(p_vlm);             \    if( vlm_Control( p_vlm, VLM_GET_MEDIA_ID, psz_name, &id ) ||    \        vlm_Control( p_vlm, VLM_GET_MEDIA, id, &p_media ) ) {       \        libvlc_exception_raise( p_exception, psz_error, psz_name ); \        return;             \    }                       \    if( !p_media ) goto error;                                      \                            \    code;                   \                            \    if( vlm_Control( p_vlm, VLM_CHANGE_MEDIA, p_media ) ) {         \        vlm_media_Delete( p_media );                                \        goto error;         \    }                       \    vlm_media_Delete( p_media );                                    \    return;                 \  error:                    \    libvlc_exception_raise( p_exception, psz_error, psz_name );\  } while(0)void libvlc_vlm_set_enabled( libvlc_instance_t *p_instance, char *psz_name,                             int b_enabled, libvlc_exception_t *p_exception ){#ifdef ENABLE_VLM#define VLM_CHANGE_CODE { p_media->b_enabled = b_enabled; }    VLM_CHANGE( "Unable to delete %s", VLM_CHANGE_CODE );#undef VLM_CHANGE_CODE#else    libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );    return VLC_EGENERIC;#endif}void libvlc_vlm_set_loop( libvlc_instance_t *p_instance, char *psz_name,                          int b_loop, libvlc_exception_t *p_exception ){#ifdef ENABLE_VLM#define VLM_CHANGE_CODE { p_media->broadcast.b_loop = b_loop; }    VLM_CHANGE( "Unable to change %s loop property", VLM_CHANGE_CODE );#undef VLM_CHANGE_CODE#else    libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );    return VLC_EGENERIC;#endif}void libvlc_vlm_set_mux( libvlc_instance_t *p_instance, char *psz_name,                         char *psz_mux, libvlc_exception_t *p_exception ){#ifdef ENABLE_VLM#define VLM_CHANGE_CODE { if( p_media->b_vod ) { \                            free( p_media->vod.psz_mux ); \                            p_media->vod.psz_mux = psz_mux ? strdup( psz_mux ) : NULL; \                          } }    VLM_CHANGE( "Unable to change %s mux property", VLM_CHANGE_CODE );#undef VLM_CHANGE_CODE#else    libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );    return VLC_EGENERIC;#endif}void libvlc_vlm_set_output( libvlc_instance_t *p_instance, char *psz_name,                            char *psz_output,  libvlc_exception_t *p_exception ){#ifdef ENABLE_VLM#define VLM_CHANGE_CODE { free( p_media->psz_output ); \                          p_media->psz_output = strdup( psz_output ); }    VLM_CHANGE( "Unable to change %s output property", VLM_CHANGE_CODE );#undef VLM_CHANGE_CODE#else    libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );    return VLC_EGENERIC;#endif}void libvlc_vlm_set_input( libvlc_instance_t *p_instance, char *psz_name,                           char *psz_input,  libvlc_exception_t *p_exception ){#ifdef ENABLE_VLM#define VLM_CHANGE_CODE { while( p_media->i_input > 0 ) \                            free( p_media->ppsz_input[--p_media->i_input] );\                          TAB_APPEND( p_media->i_input, p_media->ppsz_input, strdup(psz_input) ); }    VLM_CHANGE( "Unable to change %s input property", VLM_CHANGE_CODE );#undef VLM_CHANGE_CODE#else    libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );    return VLC_EGENERIC;#endif}void libvlc_vlm_add_input( libvlc_instance_t *p_instance, char *psz_name,                           char *psz_input,  libvlc_exception_t *p_exception ){#ifdef ENABLE_VLM#define VLM_CHANGE_CODE { TAB_APPEND( p_media->i_input, p_media->ppsz_input, strdup(psz_input) ); }    VLM_CHANGE( "Unable to change %s input property", VLM_CHANGE_CODE );#undef VLM_CHANGE_CODE#else    libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );    return VLC_EGENERIC;#endif}void libvlc_vlm_change_media( libvlc_instance_t *p_instance, char *psz_name,                              char *psz_input, char *psz_output, int i_options,                              char **ppsz_options, int b_enabled, int b_loop,                              libvlc_exception_t *p_exception ){#ifdef ENABLE_VLM#define VLM_CHANGE_CODE { int n;        \    p_media->b_enabled = b_enabled;     \    p_media->broadcast.b_loop = b_loop; \    while( p_media->i_input > 0 )       \        free( p_media->ppsz_input[--p_media->i_input] );    \    if( psz_input )                     \        TAB_APPEND( p_media->i_input, p_media->ppsz_input, strdup(psz_input) ); \    free( p_media->psz_output );        \    p_media->psz_output = psz_output ? strdup( psz_output ) : NULL; \    while( p_media->i_option > 0 )     \        free( p_media->ppsz_option[--p_media->i_option] );        \    for( n = 0; n < i_options; n++ )    \        TAB_APPEND( p_media->i_option, p_media->ppsz_option, strdup(ppsz_options[n]) );   \  }    VLM_CHANGE( "Unable to change %s properties", VLM_CHANGE_CODE );#undef VLM_CHANGE_CODE#else    libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );    return VLC_EGENERIC;#endif}void libvlc_vlm_play_media( libvlc_instance_t *p_instance, char *psz_name,                            libvlc_exception_t *p_exception ){#ifdef ENABLE_VLM    vlm_t *p_vlm;    int64_t id;    VLM(p_vlm);    if( vlm_Control( p_vlm, VLM_GET_MEDIA_ID, psz_name, &id ) ||        vlm_Control( p_vlm, VLM_START_MEDIA_BROADCAST_INSTANCE, id, NULL, 0 ) )    {        libvlc_exception_raise( p_exception, "Unable to play %s", psz_name );    }#else    libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );    return VLC_EGENERIC;#endif}void libvlc_vlm_stop_media( libvlc_instance_t *p_instance, char *psz_name,                            libvlc_exception_t *p_exception ){#ifdef ENABLE_VLM    vlm_t *p_vlm;    int64_t id;    VLM(p_vlm);    if( vlm_Control( p_vlm, VLM_GET_MEDIA_ID, psz_name, &id ) ||        vlm_Control( p_vlm, VLM_STOP_MEDIA_INSTANCE, id, NULL ) )    {        libvlc_exception_raise( p_exception, "Unable to stop %s", psz_name );    }#else    libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );    return VLC_EGENERIC;#endif}void libvlc_vlm_pause_media( libvlc_instance_t *p_instance, char *psz_name,                            libvlc_exception_t *p_exception ){#ifdef ENABLE_VLM    vlm_t *p_vlm;    int64_t id;    VLM(p_vlm);    if( vlm_Control( p_vlm, VLM_GET_MEDIA_ID, psz_name, &id ) ||        vlm_Control( p_vlm, VLM_PAUSE_MEDIA_INSTANCE, id, NULL ) )    {        libvlc_exception_raise( p_exception, "Unable to pause %s", psz_name );    }#else    libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );    return VLC_EGENERIC;#endif}void libvlc_vlm_seek_media( libvlc_instance_t *p_instance, char *psz_name,                            float f_percentage, libvlc_exception_t *p_exception ){#ifdef ENABLE_VLM    vlm_t *p_vlm;    int64_t id;    VLM(p_vlm);    if( vlm_Control( p_vlm, VLM_GET_MEDIA_ID, psz_name, &id ) ||        vlm_Control( p_vlm, VLM_SET_MEDIA_INSTANCE_POSITION, id, NULL, f_percentage ) )    {        libvlc_exception_raise( p_exception, "Unable to seek %s to %f", psz_name, f_percentage );    }#else    libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );    return VLC_EGENERIC;#endif}#define LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( attr, returnType, getType, ret, code )\returnType libvlc_vlm_get_media_instance_## attr( libvlc_instance_t *p_instance, \                        char *psz_name, int i_instance, libvlc_exception_t *p_exception ) \{ \    vlm_media_instance_t *p_mi = libvlc_vlm_get_media_instance( p_instance, psz_name, i_instance, \                                                                p_exception );  \    if( p_mi ) {                            \        returnType ret_value;               \        code;                               \        vlm_media_instance_Delete( p_mi );  \        return ret_value;                   \    }                                       \    libvlc_exception_raise( p_exception, "Unable to get %s "#attr "attribute" ); \    return ret; \}LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( position, float, Float, -1, ret_value = p_mi->d_position; );LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( time,     int, Integer, -1, ret_value = p_mi->i_time );LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( length,   int, Integer, -1, ret_value = p_mi->i_length );LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( rate,     int, Integer, -1, ret_value = p_mi->i_rate );/* FIXME extend vlm_media_instance_t to be able to implement them */LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( title,    int, Integer,  0, ret_value = 0 );LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( chapter,  int, Integer,  0, ret_value = 0 );LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( seekable, int, Bool,     0, ret_value = false );#undef LIBVLC_VLM_GET_MEDIA_ATTRIBUTEchar* libvlc_vlm_show_media( libvlc_instance_t *p_instance, char *psz_name,                             libvlc_exception_t *p_exception ){    (void)p_instance;    /* FIXME is it needed ? */    libvlc_exception_raise( p_exception, "Unable to call show %s", psz_name );    return NULL;}

⌨️ 快捷键说明

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