48 lines
1.7 KiB
Plaintext
48 lines
1.7 KiB
Plaintext
1) play streams
|
|
a) don't use libcurl, too messy, instead write own http code. lots of
|
|
examples in alsaplayer, xine, xmms, etc. THis will be
|
|
much more flexible and prevent from needing to spawn an extra
|
|
process!
|
|
b) pass decoderControl to inputStream, so that if we are doing blocking
|
|
stuff, its easy to halt it and return
|
|
|
|
2) streaming and playing in general
|
|
a) determine a clever interface to play, so that play doesn't block
|
|
until the file is opened, but just returns when the command
|
|
is accepted.
|
|
b) put errors in error stuff of PlayerControl and report this to
|
|
status and print to error logs
|
|
c) this will help streaming from blocking indefinetly or waiting
|
|
on a response
|
|
|
|
3) resampling audio for compatibility, and better gapless/crossfading
|
|
a) default audio format is (44.1khz, 16-bit, stereo)
|
|
b) 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) allow "add" command to load playlists, then depricate "load" command, this
|
|
will be benneficial for adding m3u url's
|
|
|
|
9) 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
|