- nGhost
-
nGhost Media Desktop Developer(s) Kevron Rees Stable release 2.0.2 / September 26, 2008 Operating system Linux Type Desktop Environment License GPL Website http://wiki.openice.org/index.php/The_nGhost_Project nGhost) is a "front-end" interface for Car Infotainment System software written in C++. NGhost was created and currently maintained by Kevron Rees in September 2006. NGhost runs on the Linux Operating system and is Free Software. NGhost is part of the OpenICE platform.
nGhost differs from traditional frontend interfaces that normally "mask" the Windows Operating System by replacing the default graphical user interface with its own. Instead nGhost integrates into the OS as the desktop.
Contents
History
nGhost Pre 1.0
nGhost was conceived in 2006 by Kevron Rees as a frontend application to be run on top of the GeexBox mini Linux distribution. It was initially a means through which Kevron wanted to improve his programming skill. At that time, no freely available and up-to-date frontend existed for the Linux operating system.
Underneath, nGhost was built using SDL and used Mplayer for media playback.
nGhost 1.0
During the 0.x days and with the rise of the LinuxICE project, nGhost gained a few loyal developers. Among them is Chris Eubank who helped design the user-interface and skinning definition. Sergie Golumbovski also jumped on board for a time and helped make the push to 1.0.
During this time, flaws in the current design were making it painful to develop new features. Work soon began on nGhost 2.0.
2.0
nGhost2 was a complete rewrite of nGhost from scratch. The aims for 2.0 were to provide an extensible system that would make adding new features easier. nGhost2 was to not only be an application, but a framework for creating dynamic touchscreen driven applications. Icepanel is another application that implemented the nGhost2 framework
nGhost2 introduced a number of new concepts into the in-vehicle infotainment software space. Notably, nGhost2 introduced a socket-based Inter-process communication (IPC) engine where separate applications could control and provide UI inside nGhost. nGhost2 also introduced the frontend-as-a-desktop idea: instead of nGhost running as the topmost level application, it will run as the bottommost application replacing your desktop.
Post 2.0, nGhost received a plugin system where lib based code could extend nGhost's functionality dynamically.
2.5
After 2.0.2, nGhost underwent some heavy changes. An improved asynchronous/synchronous event system was introduced. This new event system allowed skin developers to "program" functionality into nGhost dynamically by creating, subscribing to and firing events.
3.0 and the future
Months after 2.0 was started, 3.0 was being planned by developers. 3.0 was to improve the framework to make UI creation easier. One of the weaknesses in nGhost2 was the fact that every widget (ie, a button) was written from scratch using SDL. This wasn't able to achieve the eye-candy effects or the speed that developers wanted, and addition functionality to the widget was time consuming and bug-prone. In addition to the weaknesses in the widget, nGhost rewrote many stacks that exist in other toolkits like event systems, concurrency, and IPC communication. The next generation of nGhost would address these issues by using Qt. Nearly all the functionality existed in Qt to allow fast prototyping of applications. Clutter was used in addition to Qt to allow rich graphical eyecandy.
Despite early planning, work didn't begin on 3.0 until May 2009. While Kevron was on vacation in the Philippines, he wrote the base UI framework in about 3 weeks.
nGhost3 leaves the single, monolithic frontend idea completely. Developers decided that through the use of a multi-process design, nGhost would be easier developed and more stable. The 3rd generation nGhost will be completely modular. Plugins will be developed as dynamic libraries and loaded via "client" into their own process space. The plugins communicate with each other through the "server", a daemon that manages plugins.
While still unreleased, nGhost3 aims to be a rich framework for building touchscreen driven applications.
Features
- Audio and video playback using plugable backends such as Gstreamer, Mplayer, and Phonon (KDE).
- Application Launcher with window management support and process management.
- Graphical user interface defined in XML-Like language.
- IPC (Inter-Process Communication) API to allow communication with other applications running locally or on other hardware.
- Plugin API for 3rd party plugins.
Existing plugins
- nVoiceSynth - Voice Synthesis plugin using flite or "swift".
- Weather Plugin
- HD Radio Plugin
Future Plugins
The following is a list of plugins that are in development:
- Traffic Plugin
- Podcast Plugin
- OBD-II Interface Plugin
- Wifi Plugin
Categories:
Wikimedia Foundation. 2010.