What is currently broken:
* Some playlist demuxers (shout, dvb and pls)
* DAAP
* BeOS playlist
* GPE playlist, I suppose
What has some trouble:
* Meta handling in several demuxers (most notably TS)
* Skins2 playlist (doesn't refresh correctly)
* OS X playlist (see bigben's latest commits)
* playlist.m: implements full drag and drop of playlist items. Drop of multiple items and of items and nodes at the same time should be supported. You cannot mode service discovery items. This is a choice and can be changed if wanted.
* Hopes that compiles on current trunk (cannot check since latest comits on net functions broke the built of a half the modules and core of the OSX port...)
- fix crash when deleting current item
- SAP: don't store pointers
- don't pass pointers to interface in item-appended
- remove VIEW_SIMPLE that was confusing and bug-generating
* wx:
- Fix open layout
- Fix slider behaviour, patch by Greg Hazel
I only changed two things in the patch
* added a check for wx2.4 that does not seem to have sizer->Detach
* commented out the wxCheckVersion in open.cpp, which broke layouting under wx2.5.3
(what was the intended behaviour ?)
* Added core support for a sorted by genre view
hopefully prevent deadlocks
* API : add the b_force parameter to playlist_NodeDelete. If TRUE, nodes that are marked as read-only will also be deleted. Use with care.
* SAP/DAAP : Ensure that the node gets removed on quit
* HAL : Remove the node on quit and fix f**age of the Close function
Won't work for many things (only those for which metadata can be gotten during initialization).
Processing is done asynchronously, use playlist_PreparseEnqueue to add an item to the queue.
* src/input/input.c:
+ introduced input_item_t that is shared between the playlist/vlm and the input thread (contains input name, options, infos, etc...).
+ changed prototype of input_CreateThread() to input_thread_t *input_CreateThread( vlc_object_t *, input_item_t * ).
* ALL: use input_item_t and INPUT_ADD_INFO when necessary.
much memory, and was inconsistent, especially with input_CreateThread
taking an array of options
* Revert to using array of options
* To add an item with options:
- either use playlist_ItemNew, ItemAddOption, and then AddItem
(useful if you don't have all your options in an array)
- either use playlist_AddExt (use this if all your options are
already in an array)
* To add an item without options: use playlist_Add
You can still add options after an item has been added by using either
playlist_AddOption or playlist_ItemAddOption
* Attempt to improve API and solve thread safety issues.
- playlist_Item* functions allow to touch items only.
p_item->lock must be used when needed
(playlist_ItemNew, playlist_ItemDelete, playlist_Item*Info,
playlist_ItemSet* )
- playlist_ItemGetById and ItemGetByPos give you playlist_items
for GetByPos, you should have the playlist lock
At the moment, the playlist_Set* and playlist_*Info functions are kept (they work with position) but should be avoided.
* New playlist import/export system:
-export plugin in misc/playlist (contains one module for each file type)
-open plugin = special demuxer2, that can be opened from the command
line or the graphical interface.
NB: the demuxer "playlist" is forced to earn speed, but this does not
work yet, as we have a demux2
* modules/gui/wxwindows: use the new import/export.
* src/playlist/group.c : fixed boundary check
* src/playlist/item-ext.c: correctly reset stuff when clearing the playlist
check that command line parsing still works for items and options? )
- src/libvlc.c
include/vlc/vlc.h : New libvlc functions to get playlist status and
clear the playlist
Patch by Tong Ka Man
- src/playlist/* : Update copyrights
- src/playlist/playlist.c:
-When a user explicitely asks for an item, do play it, even if random mode
-Do not stop playlist upon deletion of an autodelete item
-playlist_Clear (Patch by Tong Ka Man)
* src/playlist/item.c
src/playlist/info.c
src/playlist/item-ext.c
src/playlist/group.c
src/playlist/sort.c
src/playlist/loadsave.c
include/vlc_playlist.h
- New playlist_info structures and accessors
It works pretty like the old input_info (with categories)
It provides modularity to the playlist
- Removed ppsz_options and i_options from playlist_item
(we use the special category Options)
- Added a unique id to each playlist_item to be able to track the
items accross playlist reorders
- Simplified adding of items.
- playlist_AddExt is removed
- playlist_AddItem is still here and exported but should not be used
- use playlist_Add( p_playlist, uri, name, duration, mode, pos )
and use the accessors for all other things
- Added setters for fields of the playlist_item structure
- Introduced "item-change" and "playlist-current" playlist variables
to give more flexibility than only intf-change
At the moment, duration is still in the structure (easier to use, IMHO)
* src/input/input.c
src/libvlc.c :
playlist item options parsing changed
* include/vlc_common.h : added playlist_info structures
* in vlc, times are stored in microseconds. playlist_item_t::i_duration
shouldn't be an exception
modules/gui/wxwindows/playlist.cpp:
* fixed indentation