Stuff to cleanup before the first release:
- Pick a consistent way to organize #include's and change all files to match
- Pick a consistent way to name class members (m_ vs _) and change all files to match
- Pick a consistent coding style in general and try to make all files match (look at the coding
style used by other projects: firefox, linux kernel, gnome, etc.)
- 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
- Check every member variable of every class to make sure it's initialized in a constructor
- 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)
- Find out why virtual destructors are important and make sure the classes that need them have them
and the classes that don't, don't
- 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 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?