45 lines
1.5 KiB
Plaintext
45 lines
1.5 KiB
Plaintext
1) rewrite outputBuffer to be nonBlocking-esqe to handle seek better
|
|
while paused
|
|
a) pass sendToBuffer() a argument indicating seekability, whether
|
|
or not to exit on a dc->seek
|
|
b) if not seekable, then set dc->seekError and dc->seek = 0
|
|
|
|
2) play streams
|
|
a) put some sort of error reporting for streaming/inputStream!
|
|
b) fetch metadata and store in DecoderControl and pass to
|
|
PlayerControl
|
|
1) eventually deal with icy-metadata
|
|
2) parse metadata on the fly in decoders
|
|
c) command for dealing with the changing metadata, currentsonginfo
|
|
or something
|
|
d) in songinfo add a metadata tag item for indicating stream
|
|
|
|
3) resampling audio for compatibility, and better gapless/crossfading
|
|
a) use resampling from oggenc (is it fast enough for realtime?)
|
|
|
|
4) 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.
|
|
|
|
5) ACK error codes
|
|
|
|
6) cleanup main()
|
|
|
|
7) handle '\n' in filenames
|
|
|
|
8) compute average replaygain to use for non-replaygain songs
|
|
|
|
9) pid file
|
|
|
|
|
|
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
|