enjoy/TODO

98 lines
3.2 KiB
Plaintext
Raw Normal View History

add basic enjoy code to svn. WARNING: there is not much to see here yet! I'm just adding to svn as people seems interested in help, and it is impossible to help without the base code. IF YOU DON'T WANT TO HELP WITH CODE, DON'T EVEN BOTHER COMPILING IT YET! Enjoy is (will be) a music player fully based on Enlightenment Foundation Libraries (EFL), the goal is to have a simple yet useful music player that works on desktop and mobiles with the minimum set of dependencies and maximum efficiency. It is based on LightMediaScanner (my code[1]) to scan directories for music and create a database and does so in a very and safe efficient way by having a scanner process with lower nice priority. It is also smart enough to hint to your kernel you'll not need the scanned files anymore (posix_fadvise()) and thus it will not pollute your RAM with useless file system cache. So far it is not creating the database on its own, neither have a a library manager to add/remove directories. In order to run Enjoy you must first create your own database using "test" program from lightmediascanner sources: {{{ cd lightmediascanner ./configure && make && make install mkdir -p $HOME/.config/enjoy/media.db ./src/bin/test -i 5000 -p id3 -s $HOME/Music $HOME/.config/enjoy/media.db }}} The GUI is pretty much ugly and needs huge work. It is almost fully done in Edje, so C part is quite lean, however I did no Edje work yet, just the basics to show something (uses r | g | b rectangles for actions, you have to guess what's what ;-)) = HOW TO HELP = Read TODO file. If you're more like a coder: * src/bin/db.c follow the propsed stubs and db_songs_get() example; * src/bin/page.c add recursive paging with "folder" pages; * src/bin/win.c start/stop ecore_thread with lms_process() + lms_check(); * src/bin/win.c write library manager: rescan collection (thread as above item), add directories, remove directories. If you're more like an edje guy: * data/themes: follow eve's style, focus on the bottom toolbar, then the list items, then the page/songs. Use dummy icons (copy from eve or efenniht), we'll provide proper icons soon * add nowplaying screen * add volume using dragable (copy from efenniht's slider) [1] download code from http://git.profusion.mobi/cgit.cgi/lightmediascanner.git/ or http://lms.garage.maemo.org/ SVN revision: 52658
2010-09-23 18:37:54 -07:00
UI - base ui similar to eve (browser)
-------------------------------------
* top one of:
* list + header, allows going back or selecting new + filter
* cover + info
* bottom action bar (always visible):
* volume
* back
* forward
* play/pause (toggle)
* mini-mode (toggle)
* more: preferences, library manager, plugins? (cover fetch, etc)
List Mode:
.-------------------------------------.
| <BACK] Albums by 'Artist' |
}-------------------------------------{
| album name1 |
| album name2 |
| album name3 |
| album name4 |
| ... |
| ... |
| ... |
| ... |
| ... |
}-------------------------------------{
| =====V----------------------------- | <- volume
| | | | | |
| <Prev | Next> | Play | Mode | Prefs |
| | | | | |
`-------------------------------------'
^
|
toggles
|
V
Play Mode:
.-------------------------------------.
| 01 - My Song |
| By Artist |
| Album Name |
| * * * * * [repeat] [random] | <- rating + toggles: repeat, random
| 02:03 ========V------------- -03:04 | <- progress/seek
}-------------------------------------{
| |
| |
| |
| | <- cover area
| |
| |
| |
| |
| |
}-------------------------------------{
| =====V----------------------------- | <- volume
| | | | | |
| <Prev | Next> | Play | Mode | More |
| | | | | |
`-------------------------------------'
Media List
----------
* top shows "<Back", $CURRENT_SECTION [and filter field - later]
* all sections should start with "All songs"
* all sections should contain "Shuffle songs"
* root sections: Songs, Artist, Albums, Genres
* filter limits the current section and thus creates a dynamic playlist
Library (all from "more")
-------------------------
* manager: allows add/remove directories
* rescan: allows rescan media immediately
* stop-scan: while scanning, allows cancel the process
More
----
* Preferences:
* choose media backend (xine, gstreamer)
* Bookmarks? (show list of songs with bookmarked positions)
Misc
----
* single instance using dbus
* export mpris control interface (mini mode could be e17 control using it)
* support for e_notify (libnotify)
* read cover from id3? requires id3 image loader in evas
* fetch covers from webservices (amazon, last.fm)
* fetch lyrics from webservices (maybe use webkit)
* fetch track/artist/album info from webservices (wikipedia? uses webkit)
* audio bookmarks