forked from exaile/exaile
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFUTURE
57 lines (46 loc) · 2.25 KB
/
FUTURE
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
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/tracktotal, discnumber/disctotal, as picard uses
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