[vlc-devel] [PATCH 00/12] New playlist
Romain Vimont
rom1v at videolabs.io
Thu Oct 11 23:14:38 CEST 2018
I posted a RFC few weeks ago:
<https://mailman.videolan.org/pipermail/vlc-devel/2018-September/121253.html>
In addition to the current master branch, it requires:
- vlc_vector:
<https://mailman.videolan.org/pipermail/vlc-devel/2018-October/121393.html>
- vlc_shared_data_ptr:
<https://mailman.videolan.org/pipermail/vlc-devel/2018-October/121451.html>
- the current player branch from Thomas (will be posted soon):
<https://mailman.videolan.org/pipermail/vlc-devel/2018-August/121076.html>
The result is available here:
<https://github.com/rom1v/vlc/commits/newplaylist>
There is a "rendered" documentation (also available in code comments
where relevant):
<https://github.com/rom1v/vlc/blob/newplaylist/WIP-playlist.md>
Patch 1 exposes a locked version of input_item_GetMeta(), useful for
playlist sorting.
Patch 2 adds the playlist API and the "essential" implementation.
Patch 3 adds the "request" functions (see
<https://github.com/rom1v/vlc/blob/newplaylist/WIP-playlist.md#ui-to-core>)
Patch 4 and 5 implement the random playback order (the order of items in
the playlist does not change).
Patch 6 implements shuffle (items are physically moved)
Patch 7 implements sorting.
Patch 8 adds the possibility for a client to receive the current state of the
playlist when it registers a listener (all UI will do that).
Patch 9 exposes a main playlist instance in the core.
Patch 10 and 11 configure the main playlist and its player from VLC
variables.
Patch 12 implements a Qt playlist list model, to be plugged in a Qt
view.
Pierre is currently working on a new Qt UI, which uses this playlist.
Romain Vimont (12):
input item: expose locked version of GetMeta()
core: playlist: new playlist API
core: playlist: expose "request" functions
core: playlist: add random playback helper
core: playlist: handle random playback order
core: playlist: implement shuffle
core: playlist: implement sorting
core: playlist: notify on AddListener()
core: playlist: expose a main playlist instance
core: playlist: configure main playlist from vars
core: player: configure main player from vars
qt: playlist: implement Qt playlist list model
include/vlc_fixups.h | 4 +
include/vlc_input_item.h | 2 +
include/vlc_interface.h | 4 +
include/vlc_playlist_new.h | 835 ++++
modules/gui/qt/Makefile.am | 8 +
.../gui/qt/components/playlist_new/media.hpp | 78 +
.../qt/components/playlist_new/playlist.cpp | 261 ++
.../qt/components/playlist_new/playlist.hpp | 104 +
.../components/playlist_new/playlist_item.hpp | 96 +
.../playlist_new/playlist_model.cpp | 184 +
.../playlist_new/playlist_model.hpp | 80 +
modules/gui/qt/qt.cpp | 16 +
src/Makefile.am | 12 +-
src/input/item.c | 24 +-
src/interface/interface.c | 6 +
src/libvlc.c | 56 +
src/libvlc.h | 2 +
src/libvlccore.sym | 40 +
src/playlist/playlist.c | 3836 +++++++++++++++++
src/playlist/randomizer.c | 1100 +++++
src/playlist/randomizer.h | 148 +
21 files changed, 6884 insertions(+), 12 deletions(-) ¯\_(ツ)_/¯
create mode 100644 include/vlc_playlist_new.h
create mode 100644 modules/gui/qt/components/playlist_new/media.hpp
create mode 100644 modules/gui/qt/components/playlist_new/playlist.cpp
create mode 100644 modules/gui/qt/components/playlist_new/playlist.hpp
create mode 100644 modules/gui/qt/components/playlist_new/playlist_item.hpp
create mode 100644 modules/gui/qt/components/playlist_new/playlist_model.cpp
create mode 100644 modules/gui/qt/components/playlist_new/playlist_model.hpp
create mode 100644 src/playlist/playlist.c
create mode 100644 src/playlist/randomizer.c
create mode 100644 src/playlist/randomizer.h
--
2.19.1
More information about the vlc-devel
mailing list