summaryrefslogtreecommitdiff
path: root/firmware/drivers/rds.c
AgeCommit message (Collapse)Author
2017-04-21RDS: Fix a few goofs in the unicode tableMichael Sevakis
Change-Id: I54c681a9eb3d5e90ee4aeedc3ec5dbd6243cb208
2017-02-11Improve radio RDS driver and frameworkMichael Sevakis
* Remove unused bits like the radio event and simplify basic radio interface. It can be more self-contained with rds.h only required by radio and tuner code. * Add post-processing to text a-la Silicon Labs AN243. The chip's error correction can only do so much; additional checks are highly recommended. Simply testing for two identical messages in a row is extremely effective and I've never seen corrupted text since doing that, even with mediocre reception. Groups segments must arrive in order, not randomly; logic change only accepts them in order, starting at 0. Time readout was made a bit better but really we'd need to use verbose mode and ensure that no errors were seen during receiving of time and more checks would be need to have a stable PI. The text is the important bit anyway. * Time out of stale text. * Text is no longer updated until a complete group has been received, as is specified in the standard. Perhaps go back to scrolling text lines in the radio screen? * Add proper character conversion to UTF-8. Only the default G0 table for the moment. The other two could be added in. * Add variants "RDS_CFG_PROCESS" and "RDS_CFG_PUSH" to allow the option for processed RDS data to be pushed to the driver and still do proper post-processing (only text conversion for now for the latter). Change-Id: I4d83f8b2e89a209a5096d15ec266477318c66925
2012-11-09Fix uninitialized variable in decoding of RDS radio textBertrik Sikken
Change-Id: Ifc678166ac70cc8fc76897c76ccbc4bc3f88cc14
2012-05-31Fix redAmaury Pouly
Change-Id: Ifa8b360c97bb1036210b2563cfb87be2630eaab6
2012-05-31rds: implement more robust PS/RT parsingAmaury Pouly
Our current PS and RT parser is very strict: it requires all segments to be received in order. This is too strong of an assumption even when the reception in good, particularly for long RT messages. This parser handles segments in any order and completes a message only when all segments are present. To avoid keeping obsolete segments, each segment has an associated timeout and is trashed if not updated for a certain period. Change-Id: I79841bb5ab1f838c7702d8281044e226f6510199 Reviewed-on: http://gerrit.rockbox.org/237 Tested-by: Bertrik Sikken <bertrik@sikken.nl> Reviewed-by: Bertrik Sikken <bertrik@sikken.nl>
2012-02-18rds: add basic RDS clock-time supportBertrik Sikken
Change-Id: I931182ccd20cf8899f3ce9b6b8d7c7c5f4ea006f
2012-02-16rds: make programme identification (pi) decoding safer, show pi in the debug ↵Bertrik Sikken
screen Change-Id: I8b547400f4a28ee387157848b9640a3361df937f
2011-12-29RDS: Use a define that doesn't imply any particular hardware dependency.Michael Sevakis
Theoretically, anything with the capability could implement the decoding action in an ISR on any radio chip supporting RDS. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31464 a1c6a512-1295-4272-9138-f99709370657
2011-12-29Gigabeat S: Update RDS processing to use asynchronous I2C rather than thread.Michael Sevakis
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31462 a1c6a512-1295-4272-9138-f99709370657
2011-12-17FS#12370: Initial RDS support for Si4701/Si4703 tuner (beast and clip zip)Bertrik Sikken
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31346 a1c6a512-1295-4272-9138-f99709370657