Some progress on the application...

After re-doing the installation with Mac mini, I have finally spent some time on the application. Since the attachments do not seem to be working here at the moment, I have made a simple page with few screenshots here:

The main changes in the software are:
- module can now activate sheets with generic dialogs, not just one view
- improved support for spoken messages in the host application (queue)
- semi-transparent pop-up messages (like the windows shown when adjusting sound volume or screen brightness in OS X)
- modules can now be written using AppleScript with minimum ObjC code
- actions (ie warning, SMS message etc.) can now be triggered by entering a pre-defined circle around a GPS position
- data logs are now handled by the host application, not modules
- changes in GUI (buttons arranged into a circle in some modules)
- new module for access to online services (traffic info, webcams, weather)
- new module to display status of the Airport or GPRS connection
- new module for phone functionality of my GSM/GPS module
- speedometer can now use GPS data as well as vehicle's own sensor data

The app is written completely in Cocoa and should compile fine under XCode. You can play around with the resources, but do not change sizes of standard module views. Currently there is no real support for skins and appearance, but it should be possible to achieve this by sub-classing NSView and using your own class as the background for the modules (or the main window). An example can be seen in the "Temperature" module (class ThermoBackgroundView).

The whole thing consists of the host application (folder MainApp) and plug-ins. For the plug-ins to work, they need to be located in the same folder as the application. The plug-ins are regular Cocoa bundles, that can use some services provided by the host application (such as displaying GUI - description in "Server.h"). The modules can communicate between themselves using notifications (ie. the GPS module sends a notification with position - any module that needs any of this info can subscribe to these notifications and when the data arrives, respond appropriately). One plug-in can both send and receive notifications.

Please note that there are three kinds of modules/plug-ins
1. Modules you can use right away (MP3 player, clock, stop watch, countdown...) or with easy modification (Online services)
2. Modules you can use, but you have to write your own module to provide them with data using the host application's notification system (speedometer, distance counters, fuel counters)
3. Modules that are probably worthless to you, because they are too tightly bound to the hardware I use. You can use them as starting point for your own modules (GB600Input, T613Input, Phone).

Currently the app only runs in 800x600 resolution, but it is relatively easy to change this (as well as the number of module slots for example) by altering few things in the host application.

You need to compile the "Compass" target/plugin in the main app project. For historical reasons, the compass module is required and without it, the main app will get stuck and not load other modules. I know that placing this into the main project may be a bit confusing...