blob: 12b18535d17d2e10e55286914e50d482d2313f74 (
plain) (
tree)
|
|
1) play streams
a) for mp3, remember to turn off IGNORECRC for mp3 streams
b) make deal with non-blocking in the beginning better.
c) check inStream->seekable after opening and store this in
decoderControl to deal with seeking better
d) fetch metadata and store in DecoderControl and pass to
PlayerControl
1) eventually deal with icy-metadata
2) parse metadata on the fly in decoders
e) command for dealing with the changing metadata, currentsonginfo
or something
2) how to deal with streams and the db
a) should streams be stored in the db?
b) handle url playlists!
1) have one fd for opening playlists in a url (allow only
loading of one of these at a time).
2) check for new data on it in the main while(select()) loop
3) block client requesting the log until the load is finished
4) need a timeout for this, 10 seconds, configurable?
3) streaming and playing in general
a) put errors in error stuff of PlayerControl and report this to
status and print to error logs
4) resampling audio for compatibility, and better gapless/crossfading
a) use resampling from oggenc (is it fast enough for realtime?)
5) when writing combined interface for all decodes to use, be sure to add a
common function and abstrct dealing with DecoderControl * and put
cycleLogFiles in there, so we cycleLogFiles while decoding, not just when
decoding has stopped.
6) ACK error codes
7) cleanup main()
8) handle '\n' in filenames
9) allow "add" command to load playlists, then depricate "load" command, this
will be benneficial for adding m3u url's
10) compute average replaygain to use for non-replaygain songs
Post-1.0
--------
1) crosslink "list" stuff, for example, artists are crosslinked to alubms and
vice versa, this way you can do list album artists or list artist albums, this
will make life easier when we add genre and other metadata
2) rewrite linked list impelmentation to be more flexible
a) remove "key" stuff
b) allow assigning a compare function for a list
|