Elfe and the composited windows list

There is something annoying with the Illume profile, you can’t switch from a window to another easily. Well you can, but you need to use the illume soft key module, and cycle between windows. This module works great but it takes too much place on the screen, specially for small devices.
On a regular desktop, you can use the so beautiful jefdameth’s comp-scale module, and the exposé mode. But it doesn’t works well on illume profile, so i decided to add this windows list directly in Elfe. It uses the composite module (in gl/gles of software mode). So if you are not running a composite desktop you can not use this effect. to use it you have to bind an Enlightenment action to it. In the demo below, i choose to bind the Edje Top screen bindings to launch this effect.

And here the demo :

Say hello to enna-explorer

And Enna come back to Enlightenment SVN …. in a different way, with a different goal.
Enna was intented to be a mediacenter for home theater pc, with support of audio, video and music files. For a while it was hosted on Geexbox server, and it will stay there.
But this version is completely different. It’s named enna-explorer, the source code is based on enna mediacenter, as it took me a long time to have a good implementation of the virtual file mechanism (in my point of view) and I like my theme (almost).

So this version is intented to be a file explorer for phones and embedded devices, to be used with a touchscreen and use EFL of course. For now the theme is phones oriented, and doesn’t fit well on tablets.
But well it’s a first shoot, so please, be kind :P

Currently, enna-explorer is able to browse your hard drive and it uses Eio for that. You can remove files selected on the user interface. You can’t copy/paste yet but i planned to add this features soon.
There is still some issues in eio to have a full user experience, like displaying a progress bar during copying/deleting files. But it’s planned. (Cedricccccccc :P )

When you select a file, it takes the default program viewer to display it.
Enna-explorer is able to browse upnp devices, and uses gupnp for this purpose. For now you can’t display files of upnp shares.
NFS shares are automatically detected if they are already mounted, but you can’t yet browse them.
If your samba shares are mounted with fstab it should also detect them but you can’t browse them.

I know there is a lot of people that are using EFL tehcnos on embedded devices , i think about SHR guys, Bodhilinux guys … Please report bugs, and features you would like to see in it. And patches are always accepted !

And as people like screenshots, here it is :

screenshot

Enna-Explorer

Enna Compilation on Ubuntu #4

My previous blog post about installing Enna on an Ubunu seems to interrest a lot of people if I refer at the website stats.
So I decide to write a new short tutorial about how to install Enna on Ubuntu, 10.10 this time.
An Enna package is present the 10.04 release of Ubuntu. But as you should already know Enna depends intensively on EFL’s. These libraries have not yet been released. I hope that we will have a good news in the comming week(s), but before distributions like ubuntu integrates EFL, they may be a while, and thus this kind of tutorial is not a waste of time in my opinion.
Enna is not yet ready for a new release, so if you want to give it a try, you have to build it from scratch. You have been warned :) And as usual if you find bugs, you can send me patches. It’s more than welcome !
How to proceed :
You will need Efls, Libplayer Libvalhalla and Enna.
Before compiling anything we will installed all the packages needed for the compilation of all these libs. I have update this list since the last time.
sudo apt-get install xterm make gcc bison flex subversion automake autoconf autotools-dev \
autoconf-archive libtool gettext \
libpam0g-dev libfreetype6-dev libpng12-dev zlib1g-dev libjpeg62-dev \
libtiff4-dev libungif4-dev librsvg2-dev libx11-dev libxcursor-dev \
libxrender-dev libxrandr-dev libxfixes-dev libxdamage-dev \
libxcomposite-dev libxss-dev libxp-dev libxext-dev libxinerama-dev \
libxft-dev libxfont-dev libxi-dev libxv-dev libxkbfile-dev \
libxres-dev libxtst-dev libltdl7-dev libglu1-xorg-dev \
libglut3-dev xserver-xephyr libdbus-1-dev cvs subversion mercurial \
liblua5.1-dev libavformat-dev mplayer libxine-dev libxml2-dev \
libcurl4-openssl-dev wget libexif-dev libsqlite3-dev libxine1-all-plugins libxine1-ffmpeg \
autopoint libudev-dev

I just added autopoint for the autogen.sh of ecore and enna and the udev developpement package for eeze.

EFL libraries :

For EFL’s compilation we will use Brian ‘morlenxus’ Miculcy script : easy_e17.sh

wget http://omicron.homeip.net/projects/easy_e17/easy_e17.sh
chmod +x easy_e17.sh

We need to change a bit this script to suit our needs.
edit this script with the editor of your choice and change :
line 28:

efl_basic="eina eet evas ecore efreet eio eeze e_dbus embryo edje emotion ethumb elementary"

And line 30 :

bin_basic=""

Save your changes.
This script will download, build and install EFL in /opt/e17 and set all environnement variable you need to execute an EFL binary.
Sources will be download in $HOME/e17_src.
execute the script with :

./easy_e17.sh -i

Compilation begins. Later if you want to update EFL you just have to execute

./easy_e17.sh -u

And only changes since the last check out will be compiled.

Gb libs

You need the HEAD version of GeexBoX libs. In the previous post the 1.0.0 version was enough but Mat has made interresting changes in these libs, and Enna depends on them.
create a new directory :

mkdir gb_src && cd gb_src
hg clone http://hg.geexbox.org/libplayer
hg clone http://hg.geexbox.org/libnfo
hg clone http://hg.geexbox.org/libvalhalla
hg clone http://hg.geexbox.org/enna

When EFL compilation is finished and succesfull, you can verify if all is working fine by executing : elementary_test
If something happens, congrats, EFL are correctly installed :)
Ok, now GB libs. We will installed all libs in /opt/e17 as easy_e17 script do for EFLs.

cd libplayer
./configure --prefix=/opt/e17
make
sudo make install
cd .. && cd libnfo
./configure --prefix=/opt/e17
make
sudo make install
cd .. && cd libvalhalla
./configure --prefix=/opt/e17
make
sudo make install
cd .. && cd enna
./autogen.sh --prefix=/opt/e17
make
sudo make install

At this point you should launch enna.
You can run it with :

enna

The default theme is currently completly broke, so if you want to have something usable, you have to launch enna with the stb theme.

enna -t stb

Configuration

In previous version of Enna the configuration file was created in $HOME/.enna/enna.cfg. We try to follow freedesktop guidelines, and so are now using the $XDG_CONFIG_DIRS     $XDG_DATA_DIRS.
The configuration is now saved in $HOME/.config/enna/enna.cfg
The libvalhalla database, fanarts, covers and all informations grabbed by libvalhlla are saved in $HOME/.local/share/enna/
The configuration is still created at enna startup.
To use the stb thme by default you can change the theme=default line in enna configuration by theme=stb in the [enna] section

Enjoy!

A new theme for Enna

I have not post for a while, busy by my work. But I continue working hard on Enna.

In the current 0.4.0 release, I’m not satisfied by the theme. Some people complained about the backgrounds transitions in the main menu when you select a new item. It’s slow on some hardware, especially on embedded card like the Beagle Board, where CPU and RAM ressources are low.

So I have decided to rewrite a new theme from scratch. You can find it in the source code, in the mercurial repository, in data/themes/stb. I called it STB, as I would like it fits well on Settop Boxes and on HD screens from 720p to 1080p resolutions.

Here some Screenshots of the current theme.

Stb theme mainmenu

Stb theme mainmenu


Stb theme video infos

Stb theme video infos


Stb theme disk infos

Stb theme disk infos


stb theme music info

stb theme music info

For the fonst, I’m using the Comfortaa font : http://aajohan.deviantart.com/art/Comfortaa-font-105395949. And icons comes from the Faenza gnome icons theme : http://tiheum.deviantart.com/art/Faenza-Icons-173323228

I Add some cool effects between mediaplayer and informations panel, thanks to the more and more powerfull Elementary library. And I plan to add more.

More work, is need to polish the UI, All infos are not yet well placed. But as you can see there is more informations than in the previous release. I had have to change a lot of code in the core, to achieve this goal, and for informations, libvahalla helps more than ever.The Informations retrieval is as usual entirely asynchronous, and on demand. So the database is created while you browse you disks.

I hope that you like this new UI.
See you soon.

Enna use case

Let me introduce you a very cool usage of Enna (v0.4.0 from Ubuntu Packages). These photos have been taken at the home of a coworker of mine. He have integrate a PC running GNU/Linux and a 17″ touchscreen  in his wall. The mediacenter has two video outputs, one for the touchsreen and another for a video projector.
This is so funny !!!

Don’t blame me these pictures have been taken with an iPhone (bouhh!)

Enna on Windows and Macos, step 1

One critisism the more heard during the Enna’s release was the fact that it only runs on GNU/Linux.
Enna depends of EFL and of GeeXBoX’s libs. EFL are already ready for Windows. I want to thanks Vincent Torri who has made an HUUUGGGGE work to have the EFL on this system.

About the GeeXBoX’s libs, Mat has already fixed the configure script, and some other fixes in order to have libvalhalla and libplayer running on Windows. Now the big work is to have an libplayer backend that can play videos and music on windows. The natural choice is to rewrite the VLC backend. VLC is a really good at solid software, for years now, and is working on mostly all OS. With it, we should have a backend for all of enna’s port, MacOS, Windows, and of course Linux.

About the MacOS port.
Here there is a lot of work, mostly on evas and ecore. The Evas Quartz engine is not in a good shape. And the ecore Quartz code just doesn’t work. I begin to write a new engine for MacOS, based on OpenGL cocoa. It’s not ready for prime time now, but I can run all expedite test, and I get an Evas Speed arround 250fps on my MacMini with an Intel GMA500.

There is a lot of work to have Enna running on them, but it’s a first step :)

If you have skills on these systems, contact me, help is always welcome.

You guys that will be on fosdem this yea…

You guys that will be on fosdem this year, book your Saturday 6th February 2010 at 18h40, Ben should have 15 min of presentation about Enna :P

Enna v0.4.0 is out

After many month of development effort we are pround to annouce the release of Enna v0.4.0.

Enna is an *opensource* mediaplayer application, and for this release
the licence has switched from BSD to LGPLv2.1.

Tarball can be download at this address :
http://enna.geexbox.org/releases/enna-0.4.0.tar.bz2

Or you can retrieve enna v0.4.0 tag with mercurial:
hg clone v0.4.0 http://hg.geexbox.org/enna


As a convenience, EFL, GeeXboX libraries and Enna have already been
packaged for Ubuntu 9.10 (Karmic Koala) users.
Packages can be found here :
http://packages.geexbox.org/

just add this line on your /etc/apt/sources.list file :

deb http://packages.geexbox.org/ karmic main

and

sudo apt-get update

sudo apt-get install enna

You should  find enna icon in Applications/Audio and video

For more informations, report bugs, or to  help us I invite you to
read the main enna website.
http://enna.geexbox.org

You can read Ben’s post on his blog : http://gxben.wordpress.com/2010/01/03/first-public-enna-0-4-0-release/ it talk a bit more on enna and integration with next geeXboX 2.0

Enna Compilation on Ubuntu #3

Ok Here an update of compiling enna for Ubuntu. Previous post about enna’s compilation is now verry old.
Enna has changed, EFL has changed and geexbox has new rocking libs that enna uses.
As explain by Mathieu in his blog post (in french) Geexbox libs have reached stability.
When I talk about geexbox libs, i’m talking about libplayer, libnfo and libvalhalla.
What are these libs for ?

Libplayer :

If you have already compiled enna, you should know about libplayer. Libplayer is a wrapper for common mediaplayer binary and libs. The most used in enna is mplayer. But we are also using xine (for DVD player). To avoid code duplication to control this different mediaplayers, libplayer implement a set of common functions to use all of this backend. It’s very usefull.

Libnfo

Libnfo is a really tiny lib, and his goal is to implement XBMC NFO specifications. NFO are XML files that you can put in your directories, which describes a media file. You can add in this XML file a synopsys of a movie, add actors, directors …. This lib is used in a libvalhalla grabber.

Libvalhalla.

You can see this lib as the Enna media database, but it’s more than that. During enna initialization, libvalhalla is launched and begin to parse all the files that it can (those specified in enna.cfg). It parses videos, musics and pictures files and add them in a sqlite database. Tags embedded in medias are parsed and insert and when it’s done it tries to get more inforations from the  internet. Currently ther is a dozen of grabbers availaible for libvalhalla, like amazon, lastfm, lyricswiki, imdb, allocine, the movie db, the TV db and more…
By this way we can displayed synopsys, covers or fanart in Enna’s UI.
Libvalhalla is really powerfull, but it is also really fast.
For example parsing 1000 files (Ogg and MP3) take less than 25seconds ! Of course it’s only the time to parse ID3 tags and add them in database, without grabbers. Time to get infos with grabbers depends on you network access and on web services used, it can be really fast for some services, but can take about 50 seconds sometimes. Anyway libvalhlla grab files in parallel, so you should not noticed that.

About EFL ?

Enna uses Elementary now. To be short, elementary is a widget library on top of Evas and Edje so we don’t have to rewrite code ever and ever, we are using elementary list (genlist), elementary buttons and label ….
There is less code in enna core and we can focus on usability.

The easy method :

On Ubuntu Karmic :
Add this line to /etc/apt/sources.list :
deb http://packages.geexbox.org/ karmic main
and install development packages :
apt-get update
apt-get install libeina-dev libeet-dev libevas-dev libevas-engines libevas-engines-extras libecore-dev libefreet-dev libembryo-dev libedje-dev libedje-bin libedbus-dev libhal-dev libhal-storage-dev libnfo-dev libplayer-dev libvalhalla-dev
Get enna :
hg clone http://hg.geexbox.org/enna
cd enna
./autogen.sh
make
sudo make install
and that’s all :)

For experts : EFL + GB + enna compilation from sources

If you are on a Ubuntu machine, you can install these libs :

sudo apt-get install xterm make gcc bison flex subversion automake autoconf autotools-dev \
autoconf-archive libtool gettext \
libpam0g-dev libfreetype6-dev libpng12-dev zlib1g-dev libjpeg62-dev \
libtiff4-dev libungif4-dev librsvg2-dev libx11-dev libxcursor-dev \
libxrender-dev libxrandr-dev libxfixes-dev libxdamage-dev \
libxcomposite-dev libxss-dev libxp-dev libxext-dev libxinerama-dev \
libxft-dev libxfont-dev libxi-dev libxv-dev libxkbfile-dev \
libxkbui-dev libxres-dev libxtst-dev libltdl7-dev libglu1-xorg-dev \
libglut3-dev xserver-xephyr libdbus-1-dev cvs subversion mercurial \
liblua5.1-dev libavformat-dev mplayer libxine-dev libxml2-dev \
libcurl4-openssl-dev wget libexif-dev libsqlite3-dev libxine1-all-plugins libxine1-ffmpeg
This should be enough to compile EFL and GeeXboX libs.

Easy_e17 :

EFL compilation will be done with Brian ‘morlenxus’ Miculcy script : easy_e17.sh
wget http://omicron.homeip.net/projects/easy_e17/easy_e17.sh
We need to change a bit this script to suit our needs.
edit this script with the editor of your choice and change :
line 26 :
change     efl_basic="eina eet evas ecore efreet e_dbus embryo edje esmart"
with       efl_basic="eina eet evas ecore efreet e_dbus embryo edje elementary"
line 29 :
change     bin_basic="exchange e entrance"
with       bin_basic="expedite"
line 44 :
change     autogen_args=""		# evas:--enable-gl-x11
with       autogen_args="evas:--enable-gl-x11"
Save your changes.
This script will download, build and install EFL in /opt/e17 and set all environnement variable you need to execute an EFL binary.
Sources will be download in $HOME/e17_src.
execute the script with :
./easy_e17.sh -i
Compilation begins. Later if you want to update EFL you just have to execute
./easy_e17.sh -u
And only changes will be compiled.

Gb libs

You can open a new terminal, while EFL compilation we will download geexbox libs and enna tip.
create a new directory : mkdir gb_src && cd gb_src
Enne uses for now stable versions of geexbox libs.
hg clone -r v1.0.0 http://hg.geexbox.org/libplayer
hg clone -r v1.0.0 http://hg.geexbox.org/libnfo
hg clone -r v1.0.0 http://hg.geexbox.org/libvalhalla
hg clone http://hg.geexbox.org/enna
When EFL compilation is done and succesfull, you can verify if all is working fine by executing : elementary_test
If something happens, congrats, EFL are correctly installed :)
Ok, now GB libs. We will installed all libs in /opt/e17.
cd libplayer
./configure --prefix=/opt/e17
make
sudo make install
cd .. && cd libnfo
./configure --prefix=/opt/e17
make
sudo make install
cd .. && cd libvalhalla
./configure --prefix=/opt/e17
make
sudo make install
cd .. && cd enna
./autogen.sh --prefix=/opt/e17
make
sudo make install
At this point you should have enna functionnal.
You can run it with : enna

Configuration

A new configuration file is created at the first execution in $HOME/.enna/enna.cfg
You can change settings in this file to suit your needs :
in [localfiles] section you can change path of you Media files :
For example if you have an music directory in /home/user/Music
Add this line :
path_music=file:///home/user/Music,Music collection,icon/favorite
You can do the same for video and photos.
just change path_music by path_video of path_photo of course you can remove dummy lines. Change the setiing on line 93 also. It will give to libvalhalla the directories to scan. For the same music direcotry than earlier add the line in [media_db] section :
path=file:///home/user/Music
All files present in this directory will be added to media database AND if you add/remove or change files, modifications will be reflect in database on the fly.
I hope you will enjoy Enna !

Enna's video

I have record a short video of using enna.

You can look at it on youtube :

or you can donwload it directly on ogg format : enna_august_2009.ogv (29MB)

EDIT: I had a hard disk crash on my personnal server, on wich this video was hosted. The link below is dead :(