Stuff to cleanup before the first release:
- Make everything match the preferred coding style
- Function/class/attribute main brackets on new line
- switch statement brackets on new line
- if/for/while/foreach/etc. brackets on same line
- Private variables have _ in front
- space between if/for/while/foreach/etc and the (
- Check every API call and make sure that we handle any errors it can return
- Check every spot that a string is used and make sure any unicode stuff is taken care of
- Look into automated code scanning/bug finding tools?
- Figure out how translations are done
- Make sure that any long running task doesn't block the UI (i.e. drag/dropping a lot of tracks)
- Write unit tests of some kind?
Features to have for the first release:
- Multiple user-defined libraries, configrable in the way they show up in the browser and what icon
they use
- Multiple playlists in each library
- Cover art from mp3 tags, and from cover.jpg/folder.jpg files
- Tabs:
- Now Playing
- Library view
- Album view?
- Playlist from library
- Playlist from file
- Scrobble tracks to last.fm
Features for future releases:
- Ability to change the location of the library without losing all the metadata (ratings, tags, etc)
- Ability to watch videos
- Ability to watch visualizations
- Support for iPods
- Ability to view the Now Playing/Coverart/Video/Visualization thing fullscreen as well as in
the now playing tab, in an external window, and in the TrackInfoPane
- Cover art downloaded automatically
- Ability to edit mp3 id3 info
- Ability to have different views in Library View tab such as ones that show cover art by album
or by artist, and allow you to double click a cover art to see a track list or an album list,
with a bar on the top showing the hierachy you've travelled (like naulatus does)
- Ability to tag songs with arbitrary strings, potentially suggesting tags by looking them up in last.fm
- Smart Playlists based on a search query allowing usage of mp3 id3 info, tags, rating, times
listened, etc.
- "Suggested" song ratings based on times the song has been listened to and/or using last.fm data, etc?