[vlc-devel] [PATCH] intf: use new playlist
Victorien Le Couviour--Tuffet
victorien.lecouviour.tuffet at gmail.com
Mon Dec 3 14:37:43 CET 2018
---
missed a review:
ret = vlc_playlist_InsertOne(...);
instead of:
if (vlc_playlist_InsertOne(...) == VLC_SUCCESS)
ret = 0;
src/interface/interface.c | 39 +++++++++++++++++++--------------------
1 file changed, 19 insertions(+), 20 deletions(-)
diff --git a/src/interface/interface.c b/src/interface/interface.c
index 0f47e06fd8..b09d2a1968 100644
--- a/src/interface/interface.c
+++ b/src/interface/interface.c
@@ -43,6 +43,7 @@
#include <vlc_modules.h>
#include <vlc_interface.h>
#include <vlc_playlist_legacy.h>
+#include <vlc_playlist.h>
#include "libvlc.h"
#include "playlist_legacy/playlist_internal.h"
#include "../lib/libvlc_internal.h"
@@ -155,17 +156,13 @@ vlc_intf_GetMainPlaylist(intf_thread_t *intf)
/**
* Inserts an item in the playlist.
*
- * This function is used during initialization. Unlike playlist_Add() and
- * variants, it inserts an item to the beginning of the playlist. That is
- * meant to compensate for the reverse parsing order of the command line.
- *
- * @note This function may <b>not</b> be called at the same time as
- * intf_DestroyAll().
+ * This function is used during initialization. It inserts an item to the
+ * beginning of the playlist. That is meant to compensate for the reverse
+ * parsing order of the command line.
*/
int intf_InsertItem(libvlc_int_t *libvlc, const char *mrl, unsigned optc,
const char *const *optv, unsigned flags)
{
- playlist_t *playlist = intf_GetPlaylist(libvlc);
input_item_t *item = input_item_New(mrl, NULL);
if (unlikely(item == NULL))
@@ -175,11 +172,10 @@ int intf_InsertItem(libvlc_int_t *libvlc, const char *mrl, unsigned optc,
if (input_item_AddOptions(item, optc, optv, flags) == VLC_SUCCESS)
{
- playlist_Lock(playlist);
- if (playlist_NodeAddInput(playlist, item, playlist->p_playing,
- 0) != NULL)
- ret = 0;
- playlist_Unlock(playlist);
+ vlc_playlist_t *playlist = libvlc_priv(libvlc)->main_playlist;
+ vlc_playlist_Lock(playlist);
+ ret = vlc_playlist_InsertOne(playlist, 0, item);
+ vlc_playlist_Unlock(playlist);
}
input_item_Release(item);
return ret;
@@ -187,14 +183,17 @@ int intf_InsertItem(libvlc_int_t *libvlc, const char *mrl, unsigned optc,
void libvlc_InternalPlay(libvlc_int_t *libvlc)
{
- playlist_t *pl;
-
- vlc_mutex_lock(&lock);
- pl = libvlc_priv(libvlc)->playlist;
- vlc_mutex_unlock(&lock);
-
- if (pl != NULL && var_GetBool(pl, "playlist-autostart"))
- playlist_Control(pl, PLAYLIST_PLAY, false);
+ if (!var_InheritBool(VLC_OBJECT(libvlc), "playlist-autostart"))
+ return;
+ vlc_playlist_t *playlist = libvlc_priv(libvlc)->main_playlist;
+ vlc_playlist_Lock(playlist);
+ if (vlc_playlist_Count(playlist) > 0)
+ {
+ if (vlc_playlist_GetCurrentIndex(playlist) < 0)
+ vlc_playlist_GoTo(playlist, 0);
+ vlc_playlist_Start(playlist);
+ }
+ vlc_playlist_Unlock(playlist);
}
/**
--
2.19.2
More information about the vlc-devel
mailing list