OOFE, a modular object oriented front end aimed for button control that supports IBUS
I have made a ”front end” that I call OOFE, short for “Object Oriented Front End”. I've used Visual studio 2010, C# and .NET 4.0.
The reason why I did this work is that
a) I wanted a simple to configure system that is adapted to button control rather than touchpad.
b) I tend to update and change applications a lot, and did not want to be limited to a certain version of winamp for audio for instance.
c) I want control over the code to be able to taylor it for myself.
These reasons are more important to me than to have a uniform appearance of all applications. Obviously the applications themselves can be skinned or wrapped to look alike.
So what do this frontend do for me?
- Setting up the system is easy. Adding an application, or changing what GPS to use is a few mouse clicks away.
- I can configure the system in the comfort at my home, and import them confirming each and every individual change in the car. This without changing the path to the executables for instance. Dropbox is a great package for aiding this.
- I can configure the system to simulate a number of actions on the system.
o Mouse clicks on positions or defined windows (like the connect button window in my
internet connection app),
o keyboard input including virtual keys and combination of keys,
o sending of IBus messages. This means that I can turn on the LCD panel when boot is
complete, and turn on the green led on the BM when internet connection is present.
You can also set the car clock, control the AC, dim the dash, control LCD panel LED backlight
etc. Sky is the limit.
o switching to a certain application,
o toggle between applications like GPS and Spotify without loosing sound, but if I toggle
between iTunes and spotify playback will be stopped
o I can also generate voice output, for instance when changing application.
- IBus messages, Keyboard presses and mouse clicks can trigger these actions.
- Applications that require internet is not started before internet connection is established.
- There is a C# module where specific things can be added that require code. I have added speed adjusted volume control. A trip computer etc could be added here for instance.
Planned future development is
- Voice control. I have tried it, but it is not easy especially not on different windows versions and languages.
- A gateway like the ibusgateway for OBDII, fusions brain, TPMS etc. OOFE is made to be able to plug in new features like that.
The design is modular to make it easy to add your own features. The modules (3) are generic and uses pipes to communicate, and they are configured with XMl files. I will share the C# application source code that I call MainMenu. This is where I’ve added the speed controlled volume adjustment. Your imagination is the limit.
I have written a manual on how to operate it included in download zip file.
This is how my current configuration is setup:
This is what my simple main menu looks like:
I have used the sw in my car for about a month, but I have not tried to install at that many PC's, so let me know if you have problems.
I hope you'll enjoy!