Description:
Power Radio - a FM player with RDS decoding for VGA, WVGA, QVGA, WQVGA devices.
Why PowerRadio?
The built-im FM player - at least on HTC HD - misses many features I'd like to have in a FM radio. PowerRadio delivers many data available via RDS which would otherwise be invisible to the listener.
Here are just a few examples:
- Radiotext: contains information broadcast by the respective station. What you get here totally depens on the broadcaster. You might see title and interpret, call-in numbers, SMS trafficservice numbers, URL's etc.
- Traffic announcements.
- Program type.
- Coverage area.
- Date, time, timezone.
- Various status flags.
If you are interested in details about RDS please see this thread. At post #2 you'll find a big list with references for further reading.

Note: symbolic picture. HD2 is not currently supported.
Making of:
- PowerRadio is built on top of flywhc's GFMAPI, which currently supports Diamond, Raphael, Blackstone, Polaris, X1, Rhodium, Topaz.
- Screen resolution is designed to work with VGA and WVGA devices only.
- FM bandswitching is partially hardcoded for CCIR band (i might rework that in the future).
Credits:
Full credits to flywhc for his GFMAPI, which brings full RDS power to the developer.
Usage:
After setup when started for the first time, PowerRadio will scan the whole band for stations, storing them to the available preset buttons.
Manual scan: long-press "scan" button to get context menu with various options.
Preset buttons: long-press a button to get context menu with options for store, delete, rename.
Ear/spk: switch between earphones and speaker.
Mute/unmute: self explanatory.
Blend: improves stereo reception and/or expands stereo base.
Stereo: switch between mono/stereo.
All settings are saved in PowerRadio.ini.
If you like this project, please consider donate to the developer.
Update Description:
v2.3.0.0:
- Power Radio got gesture support! Please note that this is only supported on Windows Mobile 6.5 or greater.
The following gestures are available:
- Swipe right/left to switch to next/previous preset bank.
- Pan a preset to another (free) location. It wont let you overwrite existing presets.
v2.2.3.0:
- Removed check for FMS_API.DLL.
- Tuner sensitivity setting reverted to previous versions, as it led to problems on some devices.
- Changed signal strength calcucation: as there is no absolute maximum to use as a percentage indicator, the strongest station is used for that purpose. Maximum value is saved in PowerRadio.ini.
v2.2.2.1:
- Fixed bug in logging.
v2.2.2.0:
- Added battery status display.
- Additional actions for preset buttons: previous preset, seek rev.
- Changed behaviour: when device is suspended it wakes up on headsetbutton press. Now its sent to suspend after processing the buttonpress.
v2.2.0.1:
- Changed PowerOff behaviour as some devices/ROMs waked up itself after pressing power off.
v2.2.0.0:
- New function: handle alternate frequencies:
This implies a couple of changes. First, if a station transmits AF lists via RDS they are collected (this has been done in the past too). Now additionally, they are assigned to the current preset, saved in PowerRadio.ini, and retrieved from there respectively. That means, even if you dont receive the station you want to tune, the previously saved AF list is available for action.
The action may be to manually scan for the best frequency, or assign a AF autoscan level. When current reception level is below the AF autoscan level, Power Radio will initiate an AF scan and choose the strongest station. To do it manually, use the "choose best" option on the "Tune alternate frequencies" menu.
This is very handy if you are on travel or go abroad and want to follow your favorite station.
- PowerRadio.ini now contains PI and AF's for presets.
- Fixed a couple of minor glitches.
- Added some internal stuff (extended logging etc.).
v2.1.0.0:
- New function: TA volume, will be used when a traffic announcement is active on the channel, even when mute is active.
- Reworked / bugfixed reception strength display and handling. This also effects tuner sensitivity.
- Corrected a bug which lead to increased power consumption when screen is off.
- RDS messagepipeline performance tuning (avoid messagestorms).
- Introduced a new color definition for EON TP available.
- Minor fixes and adaptions.
v2.0.9.0:
- Bugfix at RDS message rendering, causing delays during message reception.
- Additional info fields for Program Reference, country and language information. Currently i get strange language codes from the RDS stream so this needs further investigation, consider it not fully functional at this time.
- With the help of beemer (the TMC guru) i was able to nail the crash-on-exit problem, so this should be history.
- Changed textmessages scrolling behaviour.
v2.0.8.0:
- When storing a preset, name may be changed instantly.
v2.0.7.0:
- Headsetbuttonhandler reworked: GUI during install lets you watch/modify which events to capture.
- Choose which action is executed on button presses captured by Headsetbuttonhandler (see menu "extra").
- RDS reception improvements for station names and date reception: plausibility checks added to avoid transmission errors.
v2.0.3.0:
- Changed edit handling: inputfield for (nearly) all edit functions is now in the display area (overlays the RDS textmessages during editing).
- Textbox now uses masked fields to reduce input errors.
- Implemented wakeup timer, rearranged menu items for better handling.
v2.0.2.0:
- Modified preset button behaviour: station icons are now drawn with rounded corners, to allow a framed background. PresetbuttonPressed reactivated, has red frame when presetbutton is pressed. Additionally, an active preset will be drawn with a green frame to indicate its selected (colors relate to default skin of course).
- Minor corrections.
- Modified save presets on exit.
KNOWN ISSUES:
- Icons with black background are drawn transparent.
- Algorithm for painting rounded corners needs improvement to smooth corner roundings.
v2.0.1.0:
- Bugfix: RDS strings (station names, text messages) containing a "&" have been doubled to "&&".
- Added compatibility mode for v1.x skins.
- Skin check on startup. If skin is not availabe, the default skin will be used (this corrects problems after updating from v1.x resulting in an exception when skin_brown is no longer available).
- Fullscreen should now work as expected, although there seems to be a problem: when exiting PR in fullscreen an exception is thrown.
- Corrected a couple of display flaws.
- App close handling restructured (brought back "x" to exit).
- Keyboard icon handling, shouldnt annoy any longer.
- Speedup app screen painting.
- Plus a zillion minor correctionsi now longer remember.
v2.0.0.0:
UI now allows for transparency. Sounds unimpressive, but was a) a LOT of work (had to re/write a couple of classes/custom controls to achieve that), and b) allows for a LOT of cool stuff. One thing you sure notice is the background image. This is not hardcoded, you may choose whatever image you like as long as its 480x800 in size. See skin_default.ini if you want to experiment. Another thing is that the control buttons (lower panel) are now made of 2 images: one for the button itself, and one for the symbol which is overlayed over the button. Check the supplied skin_default folder how its done. You may want to check the menu-extras-help too, which gives an idea of the possibilities.
The downside is (yes, there's always one), skins for v1.x cant be used any more, as they are simply not designed to make use of transparency.
Of course, the custom controls are reusable, so if i ever intend to write another piece of code for WinMo, its a great starting point.
Remember, this is an early beta, so please be gentle and report bugs you have found, or other annoyances you come across.
And yes, i didnt forget about (W)QVGA, it still works (at least it should), and still doesnt need extra treatment in regard of images, resizing is all done within the app.
Web Documentation is currently not up-to-date for v2, if you need samples check the supplied skin (its not that hard) or drop a msg in the thread.
v1.5.0.5:
- New icon, big thanks to bluemetalaxe.
- Borderstyle changed due to reported problems with some taskmanagers.
v1.5.0.4:
- Exception handling on invalid input in numeric fields.
- RDS textmessages codepage handling (charmap E1 implemented). If you encountered unprintable chars in textmessages, this should fix it.
v1.5.0.3:
- Bugfix: exception when registry key not found.
- Presets manipulation: cut/copy/paste/insert/delete.
- Headsetbutton longpress executes seek fwd.
v1.5.0.2:
- Bugfix: preset lost >30.
- Bugfix: squelch unmute not appropriate when muted manually.
- NEW: AppToDate support.
v1.5.0.0:
- New option: Squelchlevel, mutes audio when signal strength falls under a specified limit.
- Added commandline control options via HeadsetButtonHandler, see Power Radio Doc.
- RDS status infos are written to registry (frequency, stationname, RDS textmessage), an external script/program may be called on update, see Documentation.
- PowerRadio.ini will not be overwritten any more when updating Power Radio with a new version.