GPS Software - iGuidance
One of the most important parts, I finally decided on
iNav's
iGuidance. I had tried other applications, but
found this was the most reliable and most consistent. Since
it is a natvie Windows Program, and my GPS computer is linux based, I
needed to get an emulation package to handle it. After
searchingt he forums on
mp3car.com,
I found Crossover Office was capable. I used version 3.01 of
iGuidance.
I decided to create a bottle (see crossover office) just for iGuidance,
then link the maps to a standard folder in the Linux Filesystem.
Eventually, the environment gets corrupted, and must be
restored. The use of a bottle makes this much easier.
I Guidance is well worth the money, and I've converted to using it for
my Pocket PC as well.
Emulation - Crossover Office
The only thing lacking in Linux is good GPS navigation software, at
least for my requirements. Unfortunately, I had to rely on
Windows for this. I purchased
Crossover Office from
CodeWeavers, which is built on
WINE. This
worked
almost right out of the box, and I had no difficulties getting
iGuidance installed. I used version 5.0, and it has been
stable (over a year of running).
I tried using just WINE, but was not able to get all aspects working
properly. Crossover worked, and made everything easier.
If a true linux GPS Navigation package becomes available, I
would definitely switch and get rid of this configuration.
Don't get me wrong, the setup works well, it is just more
complex than need be.
DVD Playback - Xine
For DVD Playback, there's only one solution for me,
Xine. Xine
works. That's all there is to it. It is
very configurable, and works with all the media I was throwing at it,
including Dolby Digital streams. I like it over mplayer, and
think it's just a preference thing. I compiled this from
source, and installed it from it's own customized package in Puppy.
Music/Media - MythTV
MythTV forms the
heart of the entrie system, and handles management and playback of the
media types. MythTV is the best multimedia aplication for
mixed media types. Ever. Seriously, it serves the
purpose of being a simple controllable and customizeable "frontend",
and was designed around using a remote control. The options
are clear, easy to read, and easy to navigate.
In order to get this working, I had to modify the source to accept
touchscreen input. The designers of MythTV used
Trolltech's QT
as the
User Interface Library, but did not carry through all the mouse handler
code. The main task for me was to add back mouse handler code
for each of the widgets and on screen elements. My patches
are available
here,
and are against MythTV SVN 14491 and MythPlugins SVN 14485.
Now, the new MythTV code apparently supports mouse handler
code. I have not tried this, and don't know if the code is
real mouse handler code or gesture support.
I also created a custom
menu
and
theme.
These were designed to make use in the car much easier.
Also necessary was
this
.pup file to enable mp3 playback in Puppy. There's a host of
required libraries to get MythTV to compile, so all of these had to be
provided. There are too many to provide links, but some were
available as packages. Either way, this was a large
undertaking, but payed off in the end.
MythTV calls Xine to handle DVD and Video Playback, and starts the
emulation environment and calls iGuidance for GPS. For
everything else (DVD Ripping, CD Ripping, Video management, MP3
playback, Menuing, I use the standard MythTV interface. The
only disadvantage is the GPS Software is not natvie, so integration
with MythTV is just to launch iGuidance. One neat thing about MythTV is
it works with Infra-red remotes.
I compiled MythTV from source and made a package to install it and the
plugins.
Remote Control - LIRC
Linux support for infra-red remotes is through
LIRC. I
compiled and installed this, and built my own receiver. I
connected this to the serial port and configured it. That's
really all there is to it.
Desktop Shell - FluxBox
FluxBox
is a minimal desktop shell. It is small, customizeable, and
very fast. It was ideal for use in this project. I
compiled this from source, and created a puppy package for installation.