enjoy: update to-do list.
Want to help enjoy? There are plenty of things to do, at various difficulty levels. I can help with mentoring, but I can't code them all by myself. So let's publish ideas and hope people will contribute :-) SVN revision: 62828
This commit is contained in:
parent
15957b61a2
commit
ea1e80ef11
173
TODO
173
TODO
|
@ -1,99 +1,106 @@
|
|||
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")
|
||||
-------------------------
|
||||
Library (from "Preferences")
|
||||
----------------------------
|
||||
* manager:
|
||||
- allows add directories; - DONE
|
||||
- allows remove directories;
|
||||
- maybe limit to one single folder to simplify GUI?
|
||||
- or settle with $XDG_MUSIC_DIR and no need for GUI?
|
||||
* rescan: allows rescan media immediately
|
||||
* stop-scan: while scanning, allows cancel the process
|
||||
* provide progress feedback;
|
||||
* put all this stuff into the UI (currently scan just works from the cmd line);
|
||||
* while scan remember to stop any access to database to avoid locks;
|
||||
* option to choose rescan schedule: always, every day/week/month, never
|
||||
* remove command line scan?
|
||||
|
||||
|
||||
Plugins
|
||||
-------
|
||||
|
||||
Must cover the following cases:
|
||||
|
||||
* [EASY] Listeners: It should be done in a way to allow things like
|
||||
last.fm to be informed of favorite musics, chats, twitter,
|
||||
facebook, osd-notify, MPRIS dbus interface. Basically post
|
||||
meaningful ecore_events to main loop.
|
||||
|
||||
* [HARD] Providers: It should be done to provide new lists or items
|
||||
to lists. Needs thinking if the plugin should provide the full
|
||||
widget (ie: genlist) or just the contents. How to cope with
|
||||
filtering. How to do navigation.
|
||||
|
||||
* [MEDIUM] Settings: similar to providers, but auguments simpler
|
||||
configurations. Likely should provide the full widget, unless we
|
||||
create a configuration UI standard. Examples: Cover lookup from
|
||||
filesystem, amazon.com or last.fm
|
||||
|
||||
* [MEDIUM] Playback Gadgets: random Evas_Object that will react to
|
||||
music playback, things like showing wikipedia for band, lyrics,
|
||||
etc. They can use Listeners case to udpate themselves, but needs
|
||||
thinking how to show them on the screen. Maybe another tab/area on
|
||||
the now playing screen?
|
||||
|
||||
|
||||
Work to cover the above cases:
|
||||
|
||||
* create plugin loading infrastructure using eina_module;
|
||||
* create ecore_events to notify listeners plugins.
|
||||
- database contents changed;
|
||||
- list contents changed;
|
||||
- current music changed;
|
||||
- rating changed;
|
||||
- progress/position changed (manually);
|
||||
- volume changed;
|
||||
- repeat changed;
|
||||
- shuffle changed;
|
||||
* query plugins for available settings:
|
||||
- give a context path with settings area. like "/", "/library/", "/$plugin/"
|
||||
- allow plugins to specify priority (list positioning)?
|
||||
- allow plugins to specify relative positioning (above/below "$plugin")
|
||||
* query plugins for available major providers (root list entries):
|
||||
- similar to settings, may require priority/relative positioning
|
||||
* query plugins for available minor providers (item providers):
|
||||
- needs requirements... postponed
|
||||
* query plugins for available playback gadgets:
|
||||
- needs requirements... postponed
|
||||
|
||||
|
||||
More
|
||||
----
|
||||
* Single instance using dbus (otherwise configuration will be screwed with
|
||||
multiple processes writing it);
|
||||
* Save/Resume state between runs (start from the same place as last time);
|
||||
- window geometry
|
||||
- volume
|
||||
- current playing
|
||||
- repeat and shuffle states
|
||||
- navigation (full, or at least current list)
|
||||
* Preferences:
|
||||
* choose media backend (xine, gstreamer)
|
||||
* Bookmarks? (show list of songs with bookmarked positions)
|
||||
- choose media backend (xine, gstreamer)
|
||||
- choose to resume media playback on restart
|
||||
- list/enable/disable plugins
|
||||
|
||||
|
||||
Media List
|
||||
----------
|
||||
* filter limits the current section and thus creates a dynamic playlist
|
||||
|
||||
|
||||
Misc
|
||||
----
|
||||
* single instance using dbus
|
||||
* support for e_notify (libnotify)
|
||||
* read cover from id3? requires id3 image loader in evas
|
||||
* fetch lyrics from webservices (maybe use webkit)
|
||||
* fetch track/artist/album info from webservices (wikipedia? uses webkit)
|
||||
* audio bookmarks
|
||||
* plugin: search covers locally. For every music in the database
|
||||
without associated cover, walk the music directory and look for
|
||||
jpeg (Currently done from inside enjoy/list, must be moved)
|
||||
* playlist support (use lms to scan for playlists, etc)
|
||||
* on-the-go playlist (dynamic playlist). Hold items to add to
|
||||
playlist, be a virtual-folder or a single song.
|
||||
* plugin: search covers at amazon.com
|
||||
* plugin: search covers at last.fm
|
||||
* plugin: internet radio (shoutcast.com? tunein.com?)
|
||||
* plugin: inform now playing music to webservices
|
||||
* plugin: fetch lyrics from webservices (maybe use webkit)
|
||||
* plugin: fetch track/artist/album info from webservices (wikipedia?
|
||||
uses webkit)
|
||||
* plugin: support for e_notify (libnotify)
|
||||
* evas: read cover from id3? requires id3 image loader in evas
|
||||
* plugin: audio bookmarks
|
||||
|
|
Loading…
Reference in New Issue