RDS-TMC FM Radio R&D: Get radio text, Alt Freqency
I searched and didnt see this posted Still Beta but looks good and very handy if you use the radio on your phone like I do...
This is a project that still under development stage. Many people ask questions about FM radio in the forum can be solved by this project. Problems to be solved by this project for on HTC diamond/Raphael/blackstone etc: * Does FM Radio supports RDS text and traffic information? * Does FM Radio supports more than 20 saved channels? * Can I give a channel a friendly alias, such as "BB Radio 4" rather than 920.2MHz ? * Does FM Radio supports automatically or manually change frequency when signal getting pool during traveling? * Does FM Radio support RDS-TMC traffic information for navigation system? The answer is yes. The Bluetooth/FM radio chip BRF6350 on your phone is very powerful but HTC FM radio only provides basic functionality and unfortunately HTC doesn't publish FM Service API to us. So I disassembled FM player by using IDA pro and know usages of FMS api. After a week sleepless night, I wrote my FM radio tool, xFMRadio, utilizes most functions provided by FMS API, provides RDS and other data for further research. With help from this thread, we have exposed most secret of FM and RDS system on HTC devices and we can make useful applications now. We are currently working on a RDS TMC driver for navigation system. [IMG]file:///C:/DOCUME%7E1/Owner/LOCALS%7E1/Temp/moz-screenshot.jpg[/IMG][IMG]file:///C:/DOCUME%7E1/Owner/LOCALS%7E1/Temp/moz-screenshot-1.jpg[/IMG] Download xFM Radio v0.4 If doesn't have sound on your device, try xFM Radio v0.4B, which removed audio volume initialization. Brief user guide for xFMRadio Default settings: Audio Source: 1 (earphone), RDS =1, Verbose =1, AF = 1. ( but I don't know if automatic AF is working. have to verify during long distance traveling.) Verbose: 0 -no log; 1 - status only; 2 - TMC raw data; 3 - all types of log Row 1: Input argument. Set Frequency in KHz, AF list: alternative frequencies for the current station. Row 2: Frequency, station name, Band: World/Japan - use this to listen police station etc Row 3: Signal Strength, Stereo/Mono, UTC Date/Time (update once per min if supported) Row 4: -100KHz, Previous Channel, Next Channel, +100Hz, Mute, Mono/Stereo Row 5: Headset/Speaker, De-emphasis, Stereo blend Row 6: Radio Text Row 7: status such as Music/Speech, TP, TA, PTY, TMC etc Check if the channel support TMC: ROW 7 should display [TMC]. You can see TMC data by setting the top left input box to 2, and click on Menu->Verbose. The current xFMRadio v0.4 does not display RDS raw data anymore. You can use Save log menu to save log data. FMS API version is displayed in the About dialog. Mine is 1.2. Supported devices HTC Diamond HTC Raphael (not CDMA yet) HTC Blackstone (confirmed by kaefert) HTC Polaris (confirmeded by iseeka) SE Xperia X1 (confirmed by fards) NOTE: if your X1 has new media panel that integrated with FM Radio function, you may have to disable this panel (I don't know how). HTC Rhodium HTC Topaz Maybe more Click here for Samsung i9x0 Omnia Call other device owners to test on your device. Please tell me if it is working or not. If cannot run it, you may need to download and copy FMS.dll and FMS_API.DLL into your device (see johnpatcher's post below). History Update on 22 April 09: xFMRadio 0.4 Implemented AF parser Improved AF selection usability Support TMC status - so you don't have to change verbose to check if a station supports TMC Integrate with system volume control Setting of RSSI search level - default 10. Fix bug: Application didn't show at foreground if run app again. Update on 18 April 09: xFMRadio 0.3. Use RDS parser. It gets much more information and must faster from RDS than build in API now. Add Bigger box for RT. Add Status box for TP, TA, PTY etc Display station Date/Time and timezone Display TMC raw data if verbose >=2 Display ProgramItem, paging id, language id etc in log if the station supports them. Radio 0.3 API Note: methods in IFMEvents are running in another thread from FM API functions. Update on 5 April 09: I've uploaded FMRadioAPI wrapper. It is a C++ class. Please read comments in the header file, which should provide sufficient information to use it. You may implement FMRadioAPI::IFMEvents::OnFMRadioRDSData(const FMRadioAPI::TFMRDSData & aRDSData) to get raw RDS data. Note that event functions are running in different thread so you may need synch objects. OP http://forum.xda-developers.com/showthread.php?t=497977 Last edited by rdavidsmith; 05-04-2009 at 11:36 AM. |
|
|
|