1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
NOTE: This file is for significant code changes and improvements that have a
high probability of happening. General feature requests and bugs should go
on launchpad instead.
add good album-level handling to xl.trax
- what features are needed here?
- current modules that need this:
xl.covers
xl.playlist (for album shuffle)
backwards-incompatible changes to make (0.4?):
database:
use tuples instead of lists to store multiple values (saves
16 bytes or more per use)
divide tracknumber and discnumber into separate tags
instead of using /
- tracknumber/trackcount, discnumber/disccount?
get rid of __basedir and __compilation as they are unnecessary
and waste LOTS of space
- replace __compilation with just an __is_compilation boolean
flag, move heuristics elsewhere
- basedir can be gotten with gio.File.get_basedir, no need to
store it
make db into a dir so it can be split into multiple files as needed
db/
music
music-libraries
music-blacklist
use pickle instead of shelve to persist the database
- scales better, more compact
playlists:
remove internal format in favor of an extension of XSPF
- more future-proof, extensible, and compatible
- use XML namespaces to separate exaile-specific tags
event:
make events capable of sending variable numbers of arguments
change argument order to be more like gobject signals?
make all events synchronous - event listeners can add async trivially
with glib.idle_add or @common.threaded
settings:
make settings have a registered default value, so that defaults
don't have to be passed to EVERY instance of get_option.
- maybe make type explicit too.
misc:
store volume and mute separately so they persist properly.
TODO: figure out some way of dealing with Collections that have overlapping
sets of Tracks - right now if you load both from disk one after the other
one's data for the intersecting Tracks gets clobbered
|