It would be super cool if xfmedia could sort files. When I add an album, they're added in the incorrect order, while I have the files sorted in both tag and filename. Thanks!
i'm not sure what you mean by you "have the files sorted". how can you have them sorted? they're just on disk... unfortunately, xine doesn't support getting track numbers, so it's not possible to sort by album order. it's possible to sort by the displayed title, but the problem with that is, if it's not visible when you do the sort, it may not have the real file info loaded (xfmedia doesn't load metadata tags until you scroll across the entry for performance reasons). at that point, it just displays a sanitised version of the file name. the act of playing one of the files would resort it and move it in the list, which is probably undesirable. i guess sorting could be a one-time thing, so it sorts everything at its current state and doesn't do anything if the titles are updated later.
Yes, you could add an optional sort on load (XMMS does that, but I certainly don't use it... or XMMS :), because the user could turn it on knowing the performance implications. Or, you could have a sort button which would force the reading of tags/metadata which would be acceptable because the user just pushed a button and expected some CPU usage. :) Just my .02, yet again... feel free to disregard if you wish. :P (Programmer's prerogative, I suppose.)
Ok, so my track number patch got integrated into xine-lib quite a while ago, and I've finally set up xfmedia's playlist adding functionality so it's possible to grab metadata as we're adding files. So this is pretty possible, and I'll try to get this done for 0.9.0.
Ok, this is implemented, but only for adding directories. Also, if you add a directory that has subdirectories, they'll only be sorted within each directory, basically like so: add_files(directory) { foreach(subdirectory in directory) add_files(subdirectory); list = empty List; foreach(file in directory) list_push(list, file); sort(list); add_to_playlist(list); } There may also be some nice happy memleaks introduced, though hopefully not.