MPRIS stands for Media Player Remote Interfacing Specification. It is a DBUS
interface that lets other programs to control a media player. This include
going to the next or previous songs, obtaining the track list, being
notified whenever a song starts to play, etc. There are a couple of clients
out there, but standard programs like dbus-send and dbus-monitor can be used
also.
Spec 1.0 (http://www.mpris.org/1.0/spec.html) has been implemented, since
most clients only support it. However, porting the current implementation
to the new spec shouldn't be too difficult. The implementation is partial,
though, since more things should be implemented in Enjoy before MPRIS
support can make use of it.
SVN revision: 54439
bit more scale and finger_size friendly, but there are other things to do;
- add missing elm.swallow.pad to all genlist items (test with finger size)
- ensure scale works properly
- check/fix now playing screen (not even looked yet)
I have no idea why, but genlists are not updating dynamically. It does
work with elementary_test, but not within enjoy, so probably some
widget is broken wrt propagating theme changes to children. To test
you need to exit the list and enter it again.
SVN revision: 53827
If shuffle is selected, enjoy will play a random song from playlist when
current song finishes or when next button is pressed.
If repeat is selected it will repeat current song when it finishes.
SVN revision: 53623
this is basically a stub, with covers being fetched from local
directories. Further on they must be added to some DB and queried to
avoid dir walks every time. Maybe we should also do the lookups in
ecore_thread, using a placeholder image while it is fetched. [even
more future, but maybe you want to help]
listings got customized, with genres -> albums, artists -> albums, and
albums show song length and track number. album listings shows
covers. I guess this is the way it is gonna be (much like my ipod), so
people can start helping with genlist item theme.
my future work will be on "nowplaying" mode screen, then theme, then
storing covers in db.
SVN revision: 52766
seriously, still nothing to see here, just tests to get page
switching. Now we have few folders that lead to songs.
tomorrow I'll add more meat to it. artists should lead to
albums. genre should to albums. Albums must be specialized to provide
artist id as well, so we can have "Album - Artist" in the list (seems
every group like the similar album names ;-))
SVN revision: 52676
correctness: do not do the join of all audio tables, so we still get
those music without albums, artist or genres.
faster: this is also faster, as there is less data comming in, and
during db_song_copy() we do not have to handle album, artist and genre
strings.
laziness: do just when item requests such information. So if you open
the list but never scrolls, just a few will be fetched. And the
information is saved for future reuse.
SVN revision: 52664
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