vlc | branch: master | Felix Paul Kühne <[email protected]> | Sat Apr 27 17:09:40 2019 +0200| [7f9a2f8a848edb7c2fcf671387e4b193f89a4160] | committer: Felix Paul Kühne
macosx/playlist: add API to append items if we already have an input item > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7f9a2f8a848edb7c2fcf671387e4b193f89a4160 --- .../gui/macosx/playlist/VLCPlaylistController.h | 11 +++++++++++ .../gui/macosx/playlist/VLCPlaylistController.m | 23 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/modules/gui/macosx/playlist/VLCPlaylistController.h b/modules/gui/macosx/playlist/VLCPlaylistController.h index cc5b4abf31..639e5f2459 100644 --- a/modules/gui/macosx/playlist/VLCPlaylistController.h +++ b/modules/gui/macosx/playlist/VLCPlaylistController.h @@ -121,6 +121,17 @@ extern NSString *VLCPlaylistItemsRemoved; startPlayback:(BOOL)startPlayback; /** + * Add new item to the playlist if you already have an input item + * @param p_inputItem the input item you already from somewhere + * @param insertionIndex index for new item, -1 for appending at end + * @param startPlayback starts playback of the item if true + * @return returns VLC_SUCCESS or an error + */ +- (int)addInputItem:(input_item_t *)p_inputItem + atPosition:(size_t)insertionIndex + startPlayback:(BOOL)startPlayback; + +/** * Remove the item at the given index (if any) * @param index the index to remove */ diff --git a/modules/gui/macosx/playlist/VLCPlaylistController.m b/modules/gui/macosx/playlist/VLCPlaylistController.m index aea9cfeecb..49b05714da 100644 --- a/modules/gui/macosx/playlist/VLCPlaylistController.m +++ b/modules/gui/macosx/playlist/VLCPlaylistController.m @@ -363,6 +363,29 @@ static const struct vlc_playlist_callbacks playlist_callbacks = { } } +- (int)addInputItem:(input_item_t *)p_inputItem atPosition:(size_t)insertionIndex startPlayback:(BOOL)startPlayback +{ + if (p_inputItem == NULL) { + return VLC_EBADVAR; + } + int ret = 0; + + vlc_playlist_Lock(_p_playlist); + if (insertionIndex == -1) { + insertionIndex = vlc_playlist_Count(_p_playlist); + } + ret = vlc_playlist_InsertOne(_p_playlist, insertionIndex, p_inputItem); + if (ret != VLC_SUCCESS) { + vlc_playlist_Unlock(_p_playlist); + return ret; + } + if (startPlayback) { + ret = vlc_playlist_PlayAt(_p_playlist, insertionIndex); + } + vlc_playlist_Unlock(_p_playlist); + return ret; +} + - (void)removeItemAtIndex:(size_t)index { /* note: we don't remove the cached data from the model here _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
