aboutsummaryrefslogtreecommitdiffstats
path: root/TODO
blob: fada5bd29943c0e13eb9da3771cb399f216cf647 (plain) (blame)
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
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