Sunday, September 14, 2008

VOIP


Earpiece fix for OMAP phones

If you are trying to use VOIP on many phones you will notice that the audio comes out of the rear speaker. If your phone is based on OMAP and uses the TWL3016 baseband process (e.g. excalibur, herald, Pheobus) then I have a fix for you. This fix should work with Skype too.

It is a service that overrides settings inside the baseband processor by watching the registry value for the Speaker setting:

HKLM\System\State\Hardware\
Speaker

When it sees a change in the value of this key it will change the audio routing. This key is changed whenever the Speaker option is changed in the phone canvas.

Currently it will only take action when there is a change! This is important as the routing gets reset whenever the phone mode changes, whenever the media player runs and so on.

It also monitors a system wide named events "AUDIO_SPKON" and "AUDIO_SPKOFF". Kick either event and it will see it and make the change.

If anyone wants to write a home screen plugin then you simply need to add:

HANDLE hSpkOn = CreateEvent( NULL,0,0,L"AUDIO_SPKON")
...
SetEvent( hSpkOn );
...

CAB file automatically starts the service.
- The Source includes a Solution that builds all the pieces. Open with VS2005. You need the WM6 SDKs
- The CAB file install 2 exes in Program Files\AudioRouting. SpkOn and SpkOff i.e. Turn on and off the speaker.


TheSilverRing of XDA-Developers

No comments: