Open Infotainment Navigation Demo

8 03 2012

After month of work here is again a short insight in my current open infotainment prototype. Many work has happened under the hood and hard to visualize. The GUI statemachine concept has been much improved.

The application theme is based on the default Elementary theme. There is an internal design specification that also fits to a future media player and phone application.

Current navigation features are:

  • Show live car position on map read from gpsd
  • Draw map with libosmscout cairo renderer while driving
  • Move map around with joystick control
  • Calculate route with libosmscout from current car position to defined targets
  • Show live GPS position data
  • Emulate driving with gpsfake

Next navigation development target is to have a target destination input screen (country/city/street).

The prototype has already defined an interface for media and phone control, but not yet a really working implementation. I’ll implement a demo, but offer everyone to take over these applications.

Until now I didn’t publish any source code except the statemachine framework ( I plan to release the source code in future if the basic software architecture is more stable. But if you really like the idea and want to participate please write me an E-Mail.

Please note that shown video has some edits regarding route calculation time. The route calculation takes some seconds more, but I cut them away. Just in the spirit of the current iPhone4 advertising. :-)


DBus-C++ 0.9.0 released!

1 12 2011

DBus-C++ attempts to provide a C++ API for D-BUS. The library has a glib and an Ecore mainloop integration. It also offers an optional own main loop.

Since I took over maintainership of DBus-C++ it was sitting around in a GIT repository on Gitorious.

Now I decided to do a release with number 0.9.0 on SourceForge.

And there is a pretty new logo for DBus-C++!

DBus-C++ Logo


New E17 module eooorg in E-SVN

11 07 2010

A solution for all people bugged by a long startup. This module preloads a process and holds in in the memory. So all documents are opened really fast. It only comes with the cost of some memory consumation.

It’s only needed to load the module to activate it. Placing it on the shelf is not needed for the feature. But later some options and easy application starters may be available from the icon. So it doesn’t hurt to place it in a shelf.

Available in E-SVN trunk/E-MODULES-EXTRA/eooorg.

Check out as anonymous:

svn co

Kismet plugin for Mapnik

1 08 2009

Some time ago I wrote a kismet plugin for Mapnik. The OpenSource software Mapnik is a map renderer for e.g. OpenStreetMap data. My Mapnik plugin shows little icons on the map while driving around in a car for each found WLAN spot.

A video says more than thousend words. So view it here:

This is again a little step on my route towards an OpenSource car infotainment system.

EdjePlayer 0.1

25 01 2009

While working with Edje I found the need to have a little application that is able to load a specific group from a edj file. For that reason I wrote EdjePlayer. It’s a simple command line application this is also perfect to run from within a graphical file manager.

Usage: edje_player [OPTION...]
  -g, --group=STRING      The Edje group to display (default: 'main').
  -e, --engine=STRING     The Evas engine type (use environment variable
                          $ECORE_EVAS_ENGINE if not set).
  -b, --borderless        Display window without border.
  -s, --sticky            Display window sticky.
  -p, --shaped            Display window shaped.
  -a, --alpha             Display window with alpha channel (needs composite
  -t, --title=STRING      Define the window title string.
  -l, --list-engines      List all available engines.
  -r, --list-groups       List all available groups in the Edje file.
  -v, --version           show version

Help options:
  -?, --help              Show this help message
  --usage                 Display brief usage message

If you name a group in your edj file “main” then no other command line switches are needed.

It’s possible to set some values in the Edje file data block to control the behaviour of EdjePlayer. These values are supported until now:

alpha: bool
borderless: bool
shaped: bool
sticky: bool
title: string

bool: “TRUE”, “true”, “FALSE”, “false”, “0”, “1”

You’ll find some usefull examples here.

I’ve the vision to move EdjePlayer to something like a FlashPlayer. It seems  Edgar has a nice API for accessing the outer world. In the next version I’ll see if a shared work is possible.

EdjePlayer is available from E SVN.

  svn co

E17 composite managers

9 08 2008

First I created a wiki entry about E17 compatible composite managers. But people told me it doesn’t belong into the official wiki as it has no support at the moment. So I insert it into my Blog to save the links.

There’re several X composite managers that work with E17. This article explains some composite manager that work with E17. See the article Compositing window manager on wikipedia for a formal description.

Xcompmgr is a simple composite window manager, capable of rendering drop shadows and, with the use of the transset utility, primitive window transparency. Designed solely as a proof-of-concept, xcompmgr is a lightweight alternative to Compiz Fusion and similar composite managers.

Because it does not replace any existing window manager, it is an ideal solution for E17 users seeking a more elegant desktop. It’s packaged for the most distributions and easy to install. It runs out of the box with E17, but had some problems. For example the gnome-terminal had no window border.

This composite manager is implemented as module for E17. It’s available in CVS (e_modules/bling). The script installs this module by default. So it’s easy to install. Bling looks not bad, but compared to other composite manager it feels really slow. The source code looks not really extensible.

The Bang composite manager is available here.

The Ecomorph composite manager is available here.

The Egloo composite manager is available here. Update: Egloo host seems to be down. If someone knows what happened to it, please leave a note.

dbus-c++ and Ecore integration

2 08 2008

I think Dbus is a great way to communicate between desktop applications. Currently I need it in my OISP (Open Infotainment Service Provider) prototype. This needs a Dbus binding that integrates with Ecore. There’s the e_dbus in the Enlightenment CVS, but it doesn’t fit into my C++ design with eflpp.

Because of that reason I started to enhance the existing, dbus-c++ library with a Ecore integration. I would like to give back my modifications into the GIT repo on, but the maintainer didn’t apply my patches until now. I think it’s because he’s busy with other activities.

So I started a new GIT repo on

Don’t forget to add –enable-ecore as configure parameter to enable the Ecore integration. There’s a new ecore example application beside the source.

I would be happy to get some feedback or help with dbus-c++.