Commit Graph

15 Commits

Author SHA1 Message Date
Leandro Pereira 026715693f [enjoy] Add MPRIS support.
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
2010-11-10 21:04:56 +00:00
Gustavo Sverzut Barbieri 2649cf41a3 improve enjoy theme.
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
2010-10-24 08:48:02 +00:00
Leandro Pereira 8f68b5e5e9 Adding icon for all songs in artist-albums list.
SVN revision: 53626
2010-10-19 16:06:51 +00:00
Leandro Pereira 715ecddef1 Add shuffle and repeat feature to enjoy.
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
2010-10-19 16:06:34 +00:00
Leandro Pereira 04f84d3dd7 [Enjoy] Prevent crash if Prev/Next buttons are clicked when they shouldn't be.
SVN revision: 53064
2010-10-05 15:19:11 +00:00
Gustavo Sverzut Barbieri f5e8baacdc huge block count makes elm_genlist calculate too many icons and this is slow.
SVN revision: 52969
2010-10-01 21:28:13 +00:00
Nicolas Aguirre 49b7a7f5a5 Set enjoy style for genlist and pager
SVN revision: 52842
2010-09-28 06:49:19 +00:00
Gustavo Sverzut Barbieri 8182ccda33 "All songs" for lists that make sense.
SVN revision: 52778
2010-09-26 15:25:13 +00:00
Gustavo Sverzut Barbieri a881d3d605 more meat: local cover arts, custom listings.
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
2010-09-25 23:34:58 +00:00
Gustavo Sverzut Barbieri eca67db8b8 fix db issues, proper list navigation, action to go to now playing list.
SVN revision: 52696
2010-09-24 18:35:08 +00:00
Gustavo Sverzut Barbieri 81bcbe3ba6 of course, commit then test, then figure you forgot a case ;-P
SVN revision: 52677
2010-09-24 07:01:26 +00:00
Gustavo Sverzut Barbieri 97438b7195 wow, it mostly works ;-)
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
2010-09-24 06:55:40 +00:00
Gustavo Sverzut Barbieri e70a9acb21 we all like correctness + faster + laziness, so we got it all!
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
2010-09-24 04:13:22 +00:00
Gustavo Sverzut Barbieri 966f3e0bae bring in items, as requested by raster
SVN revision: 52662
2010-09-24 02:32:08 +00:00
Gustavo Sverzut Barbieri c010b3433f 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-24 01:37:54 +00:00