v2.3.2.0
- bugfix: some registry settings didnt get updated when using headset button
- doc error: script command "AudioPath" should be "AudioPathToggle"
v2.3.1.0
- additional skin "brown", thats the v1 default retro skin :)
- experimental landscape support. Be aware this is still buggy - in development
- Battery Info can be switched on/off via menu layout
- psname (StationName) is trimmed when writing to registry
- fixed: frequency didnt get updated in registry when using presetprev/presetnext buttonhandler commands
- additional values are written to registry for evaluation via scripts: status of audiopath, mute, blend, stereo. For details see documentation.
- bugfix: blend settings showed inverted status
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
v1.4.0.6
- fixed QVGA display problems
- new option FullScreen: you gain an additional line of presets with this
- rearranged menu items
- new exit option: if you experience exceptions when closing Power Radio, try setting menu-extras-set exit option to 1
- fixed display problem in RDS timeout setting
- frequency, stationname, rdstextmessage are written to the registry HKLM\Software\PowerRadio. This allows script access to the current values. Values are updated as they arrive from the RDS stream.
- KNOWN ISSUES: on some devices, PowerRadio crashes on exit.
v1.4.0.0
This version contains massive changes compared to previous releases. As of this, i consider it BETA for the time being. Please report if you encounter unusual behaviours.
- even more eyecandy: presets can have station images
- various bugfixes (see readme.txt in download package)
- support for QVGA devices
- additional skinning options (see skinning.rtf in download package)
- NEW: sleep timer
- thanks to jolas, Power Radio has a new fancy icon
first, and most important, this is BETA stuff. It will NOT be updated via AppToDate!
currently no Beta versions are available.
next release
soon
later
- save/load presets
- add weblinks to buttons
- language localizations
- landscape support
investigations
- currently none
discontinued / oddities
- usage of EON traffic announcements
Basically, the idea is brilliant. Imagine, your favorite station has no traffic program, thus you're unable to listen to traffic announcements. But hey, there's EON, named enhanced other networks. This way you get a list of alternate networks (stations) that carry a traffic program; in case something important happens (a traffic announcement) your radio simply switches frequency to the other station, lets you hear the TA and switches back afterwards. So far the theory. According to RDS definitions, active traffic announcements on other networks should be signalled by RDS packet 14B. When i tested this it showed that such packets never arrive, although other networks correctly arrived via 14A packets. So, whats the use of propagating other stations frequencies when the most important event (TA) isnt transmitted? To be honest, i dont know. The only reason i can imagine is that broadcasters simply assume everyone out there has a dual FM tuner/RDS decoder. While this is usually the case in car stereo's, its not on PDA's.
- country codes and languages
RDS country codes are transmitted in 2 parts; one is the first digit of the program identification, the other is RDS packet 1A. To get the *real* country you have to receive both values of course. While the PI is transmitted 10 times a second, some stations simply dont send 1A packets. Isnt that annoying?
Another weird thing is language codes. They are also transmitted via packet 1A. Interestingly though, only 2 stations in my reception area (a major city in Austria) even transmit these packets, and of these 2 stations, both seem to speak italian - well in fact they do not, otherwise i wouldnt understand a single word.
- stereo indicator derived from pilot signal:
not possible, seems to be not supported by FMSAPI.DLL. Right, there's a property which should return a corresponding value, but instead it returns error 50.
- allow recording of FM broadcasts, or integrate with external audio recording app.
Finally i had some time to make a couple of tests and read a ton of articles regarding that. It was quite easy to get some code samples of how to record an audio signal. After a few hours i had a almost complete audio recorder, and it turned out to work quite well. Also, recording 44.1 kHz stereo format was possible, which i didnt really expect to work flawlessly. But, and this is a big but, all i could record from was the built-in microphone. Time for a couple of more tests. I wrote a few functions for the Windows Mobile audio mixer, which should - similar to the PC - allow to control audio input lines, get info about them, etc. What a surprise, the only mixer input i could get was - right, the microphone. No other device to select from. Now one would expect that a device which has a couple of audio sources (GSM Radio, FM receiver, Microphone) would allow to select among the existing lines, at least that was my rather naive approach. It turned out that the FM radio chip in fact has a connector to deliver digital audio data (named I2S). All it needs is a driver that collects the data from the chip and delivers it to the windows mixer device (ok, there has to be some conversion done), despite there is an electrical connection from the chip's digital audio output to an I/O port which in turn connects the port to the data bus to be accessible by the CPU. Finally, here's the reason why it wont happen that we can get FM audio recording. There is no such driver which would allow a connection to the audio signal. And if one would know how to write such a driver (i admit i dont), it's still not sure that the audio signal from the FM radio chip is even connected to a bus device. The guys who could answer this is of course HTC, but unfortunately they are known to keep their secrets. Now for the last question. How on earth can we hear FM audio, but cant record it? The simple answer is, audio is passed directly from the FM radio chip via analog lines to the amplifier (well, almost...), which means it bypasses all the wonderful stuff which allows recording audio. Sad, isnt it?
- enable logging
create the following registry key: HKLM\Software\PowerRadio, add a DWORD value LogLevel, and set it to either hex 4001 (basic logging) or hex 4301 (full logging).
This will create a logfile in the installation directory (\Program Files\PowerRadio if installed on device).
To save the logfile to a different directory, add a STRING value LogFile with the desired path.
Start PowerRadio and perform the actions in trouble.
A word of WARNING:
When full logging is enabled, the logfile grows rapidly as each RDS packet is logged.
- cant receive RDS data
first, check if your device is supported
additionally, you may run APITest to diagnose the problem, details here
- cant see icons on my preset buttons
edit the name of your preset station to match the name of an icon (without the ending .png)
- Power Radio crashes / throws exception on exit, or
- i have a Polaris and dont get RDS data after start
try disabling FM driver debugging. To do so, check this registry value:
HKLM\Drivers\BuiltIn\FMS\HTCdebug
and set it to 0. This might need a softreset.
Thanks to DmK75 for the hint.
If this doesnt solve the problem, try setting an alternate exit option: menu-extras-set exit option: 1
exitoption 0 is the default behaviour which seems to work on most devices. After the screen is gone, the app is really terminated.
exitoption 1 handles exit differently. On exit, the Power Radio window closes immediately but the app continues running in background for about 10 secs (maybe longer). If you start PowerRadio or HTC radio during this time, you'll get all kinds of errors. You may view the background process with Fdcsoft taskmanager or SKtools, or simply wait long enough.
- I'd like to tune higher than 108 MHz, receive airtraffic, step in 1 kHz increments
sorry folks, the tuner of PDA devices is limited in what it offers. State of the art chips allow a range of 76-108 MHz, and a tuning step of 50/100 kHz. This is a hardware limit.
If you are interested, see the datasheet of Blackstone's (and possibly other devices) FM radio chip here.
PowerRadio is built on top of flywhc's GFMAPI.
Screen resolution VGA, WVGA, QVGA, WQVGA only.
Credits
- flywhc for his GFMAPI, which brings full RDS power to the developer.
- JHimmelbauer for donating a subdomain for Power Radio
- KUR0I made a black/blue skin for Power Radio, station icons for Germany
- L_o_k_i, JHimmelbauer, supervat, mp1911 for betatesting
- szczecinianin77 provided a colorful magic skin
- k-paul666 provided a white skin
- jolas for providing a couple of quality icons
- mike2nl for tireless cabbing station icons
- bluemetalaxe for providing several high quality icons for Power Radio