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

📄 vlc_playlist.h

📁 mips版本的VLC视频服务器
💻 H
📖 第 1 页 / 共 2 页
字号:
/* Used by playlist_Import */#define PLAYLIST_INSERT          0x0001#define PLAYLIST_APPEND          0x0002#define PLAYLIST_GO              0x0004#define PLAYLIST_PREPARSE        0x0008#define PLAYLIST_SPREPARSE       0x0010#define PLAYLIST_NO_REBUILD      0x0020#define PLAYLIST_END           -666enum pl_locked_state{    pl_Locked = true,    pl_Unlocked = false};/***************************************************************************** * Prototypes *****************************************************************************//* Helpers */#define PL_LOCK vlc_object_lock( p_playlist )#define PL_UNLOCK vlc_object_unlock( p_playlist )VLC_EXPORT( playlist_t *, __pl_Hold, ( vlc_object_t * ) );#define pl_Hold( a ) __pl_Hold( VLC_OBJECT(a) )VLC_EXPORT( void, __pl_Release, ( vlc_object_t * ) );#define pl_Release(a) __pl_Release( VLC_OBJECT(a) )/* Playlist control */#define playlist_Play(p) playlist_Control(p,PLAYLIST_PLAY, pl_Unlocked )#define playlist_Pause(p) playlist_Control(p,PLAYLIST_PAUSE, pl_Unlocked )#define playlist_Stop(p) playlist_Control(p,PLAYLIST_STOP, pl_Unlocked )#define playlist_Next(p) playlist_Control(p,PLAYLIST_SKIP, pl_Unlocked, 1)#define playlist_Prev(p) playlist_Control(p,PLAYLIST_SKIP, pl_Unlocked, -1)#define playlist_Skip(p,i) playlist_Control(p,PLAYLIST_SKIP, pl_Unlocked,  i)/** * Do a playlist action. * If there is something in the playlist then you can do playlist actions. * Possible queries are listed in vlc_common.h * \param p_playlist the playlist to do the command on * \param i_query the command to do * \param b_locked TRUE if playlist is locked when entering this function * \param variable number of arguments * \return VLC_SUCCESS or an error */VLC_EXPORT( int, playlist_Control, ( playlist_t *p_playlist, int i_query, bool b_locked, ...  ) );/** Get current playing input. The object is retained. */VLC_EXPORT( input_thread_t *, playlist_CurrentInput, ( playlist_t *p_playlist ) );/** Clear the playlist * \param b_locked TRUE if playlist is locked when entering this function */VLC_EXPORT( void,  playlist_Clear, ( playlist_t *, bool ) );/** Enqueue an input item for preparsing */VLC_EXPORT( int, playlist_PreparseEnqueue, (playlist_t *, input_item_t *) );/** Enqueue a playlist item and all of its children if any for preparsing */VLC_EXPORT( int, playlist_PreparseEnqueueItem, (playlist_t *, playlist_item_t *) );/** Request the art for an input item to be fetched */VLC_EXPORT( int, playlist_AskForArtEnqueue, (playlist_t *, input_item_t *) );/* Playlist sorting */VLC_EXPORT( int,  playlist_TreeMove, ( playlist_t *, playlist_item_t *, playlist_item_t *, int ) );VLC_EXPORT( int,  playlist_RecursiveNodeSort, ( playlist_t *, playlist_item_t *,int, int ) );VLC_EXPORT( playlist_item_t *,  playlist_CurrentPlayingItem, ( playlist_t * ) );VLC_EXPORT( int,  playlist_CurrentId, ( playlist_t * ) );VLC_EXPORT( bool,  playlist_IsPlaying, ( playlist_t * ) );VLC_EXPORT( int,   playlist_Status, ( playlist_t * ) );/** * Export a node of the playlist to a certain type of playlistfile * \param p_playlist the playlist to export * \param psz_filename the location where the exported file will be saved * \param p_export_root the root node to export * \param psz_type the type of playlist file to create (m3u, pls, ..) * \return VLC_SUCCESS on success */VLC_EXPORT( int,  playlist_Export, ( playlist_t *p_playlist, const char *psz_name, playlist_item_t *p_export_root, const char *psz_type ) );/********************** Services discovery ***********************//** Add a list of comma-separated service discovery modules */VLC_EXPORT( int, playlist_ServicesDiscoveryAdd, (playlist_t *, const char *));/** Remove a services discovery module by name */VLC_EXPORT( int, playlist_ServicesDiscoveryRemove, (playlist_t *, const char *));/** Check whether a given SD is loaded */VLC_EXPORT( bool, playlist_IsServicesDiscoveryLoaded, ( playlist_t *,const char *));/******************************************************** * Item management ********************************************************//*************************** Item creation **************************/VLC_EXPORT( playlist_item_t* , playlist_ItemNewWithType, ( playlist_t *,const char *,const char *, int , const char *const *, int, int) );/** Create a new item, without adding it to the playlist * \param p_obj a vlc object (anyone will do) * \param psz_uri the mrl of the item * \param psz_name a text giving a name or description of the item * \return the new item or NULL on failure */#define playlist_ItemNew( a , b, c ) \    playlist_ItemNewWithType( VLC_OBJECT(a) , b , c, 0, NULL, -1, 0 )/*************************** Item deletion **************************/VLC_EXPORT( int,  playlist_DeleteFromInput, ( playlist_t *, int, bool ) );/******************** Item addition ********************/VLC_EXPORT( int,  playlist_Add,    ( playlist_t *, const char *, const char *, int, int, bool, bool ) );VLC_EXPORT( int,  playlist_AddExt, ( playlist_t *, const char *, const char *, int, int, mtime_t, const char *const *,int, bool, bool ) );VLC_EXPORT( int, playlist_AddInput, ( playlist_t *, input_item_t *, int, int, bool, bool ) );VLC_EXPORT( int, playlist_BothAddInput, ( playlist_t *, input_item_t *,playlist_item_t *,int , int, int*, int*, bool ) );/********************** Misc item operations **********************/VLC_EXPORT( playlist_item_t*, playlist_ItemToNode, (playlist_t *,playlist_item_t *, bool) );/********************************** Item search *************************/VLC_EXPORT( playlist_item_t *, playlist_ItemGetById, (playlist_t *, int, bool ) );VLC_EXPORT( playlist_item_t *, playlist_ItemGetByInput, (playlist_t *,input_item_t *, bool ) );VLC_EXPORT( playlist_item_t *, playlist_ItemGetByInputId, (playlist_t *, int, playlist_item_t *) );VLC_EXPORT( int, playlist_LiveSearchUpdate, (playlist_t *, playlist_item_t *, const char *) );/******************************************************** * Tree management ********************************************************/VLC_EXPORT( int, playlist_NodeChildrenCount, (playlist_t *,playlist_item_t* ) );/* Node management */VLC_EXPORT( playlist_item_t *, playlist_NodeCreate, ( playlist_t *, const char *, playlist_item_t * p_parent, int i_flags, input_item_t * ) );VLC_EXPORT( int, playlist_NodeAppend, (playlist_t *,playlist_item_t*,playlist_item_t *) );VLC_EXPORT( int, playlist_NodeInsert, (playlist_t *,playlist_item_t*,playlist_item_t *, int) );VLC_EXPORT( int, playlist_NodeRemoveItem, (playlist_t *,playlist_item_t*,playlist_item_t *) );VLC_EXPORT( playlist_item_t *, playlist_ChildSearchName, (playlist_item_t*, const char* ) );VLC_EXPORT( int, playlist_NodeDelete, ( playlist_t *, playlist_item_t *, bool , bool ) );VLC_EXPORT( int, playlist_NodeEmpty, ( playlist_t *, playlist_item_t *, bool ) );VLC_EXPORT( void, playlist_NodesPairCreate, (playlist_t *, const char *, playlist_item_t **, playlist_item_t **, bool ) );VLC_EXPORT( playlist_item_t *, playlist_GetPreferredNode, ( playlist_t *p_playlist, playlist_item_t *p_node ) );VLC_EXPORT( playlist_item_t *, playlist_GetNextLeaf, ( playlist_t *p_playlist, playlist_item_t *p_root, playlist_item_t *p_item, bool b_ena, bool b_unplayed ) );VLC_EXPORT( playlist_item_t *, playlist_GetPrevLeaf, ( playlist_t *p_playlist, playlist_item_t *p_root, playlist_item_t *p_item, bool b_ena, bool b_unplayed ) );VLC_EXPORT( playlist_item_t *, playlist_GetLastLeaf, ( playlist_t *p_playlist, playlist_item_t *p_root ) );/*********************************************************************** * Inline functions ***********************************************************************//** Open a playlist file, add its content to the current playlist */static inline int playlist_Import( playlist_t *p_playlist, const char *psz_file){    char psz_uri[256+10];    input_item_t *p_input;    snprintf( psz_uri, 256+9, "file/://%s", psz_file );    const char *const psz_option = "meta-file";    p_input = input_item_NewExt( p_playlist, psz_uri, psz_file,                                1, &psz_option, -1 );    playlist_AddInput( p_playlist, p_input, PLAYLIST_APPEND, PLAYLIST_END,                       true, false );    input_Read( p_playlist, p_input, true );    return VLC_SUCCESS;}/** Small helper tp get current playing input or NULL. Release the input after use. */#define pl_CurrentInput(a) __pl_CurrentInput( VLC_OBJECT(a) )static  inline input_thread_t * __pl_CurrentInput( vlc_object_t * p_this ){    playlist_t * p_playlist = pl_Hold( p_this );    if( !p_playlist ) return NULL;    input_thread_t * p_input = playlist_CurrentInput( p_playlist );    pl_Release( p_this );    return p_input;}/** Tell if the playlist is empty */#define playlist_IsEmpty( pl ) ( pl->items.i_size == 0 )/** Tell the number of items in the current playing context */#define playlist_CurrentSize( pl ) pl->current.i_size/** Ask the playlist to do some work */VLC_EXPORT( void, playlist_Signal, ( playlist_t * ) );/** @} */# ifdef __cplusplus}# endif#endif

⌨️ 快捷键说明

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