summaryrefslogtreecommitdiff
path: root/firmware/export
diff options
context:
space:
mode:
authorBertrik Sikken <bertrik@sikken.nl>2011-12-17 20:24:19 +0000
committerBertrik Sikken <bertrik@sikken.nl>2011-12-17 20:24:19 +0000
commit8c19dcd598144d028ff1647d850d3a17483e6b9c (patch)
treeb1baea8ffcf26bedf0dea800c62ad33df9fa18f0 /firmware/export
parent17ed3253fc98bcca59d70531a4d81b3be75dc7ea (diff)
downloadrockbox-8c19dcd598144d028ff1647d850d3a17483e6b9c.zip
rockbox-8c19dcd598144d028ff1647d850d3a17483e6b9c.tar.gz
rockbox-8c19dcd598144d028ff1647d850d3a17483e6b9c.tar.bz2
rockbox-8c19dcd598144d028ff1647d850d3a17483e6b9c.tar.xz
FS#12370: Initial RDS support for Si4701/Si4703 tuner (beast and clip zip)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31346 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export')
-rw-r--r--firmware/export/config/gigabeats.h4
-rw-r--r--firmware/export/config/sansaclipzip.h5
-rw-r--r--firmware/export/rds.h33
-rw-r--r--firmware/export/si4700.h14
4 files changed, 55 insertions, 1 deletions
diff --git a/firmware/export/config/gigabeats.h b/firmware/export/config/gigabeats.h
index 0171dd8..04e7b15 100644
--- a/firmware/export/config/gigabeats.h
+++ b/firmware/export/config/gigabeats.h
@@ -89,6 +89,8 @@
/* Define this if you have a SI4700 fm radio tuner */
#define CONFIG_TUNER SI4700
+#define HAVE_RDS_CAP
+
/* Define this if you have the WM8978 audio codec */
#define HAVE_WM8978
@@ -161,7 +163,7 @@
#define GPIO_EVENT_MASK (USE_GPIO1_EVENTS)
/* Define this if target has an additional number of threads specific to it */
-#define TARGET_EXTRA_THREADS 2
+#define TARGET_EXTRA_THREADS 3
/* Type of mobile power - check this out */
#define BATTERY_CAPACITY_DEFAULT 700 /* default battery capacity */
diff --git a/firmware/export/config/sansaclipzip.h b/firmware/export/config/sansaclipzip.h
index 1eaa67f..1ff41a0 100644
--- a/firmware/export/config/sansaclipzip.h
+++ b/firmware/export/config/sansaclipzip.h
@@ -34,6 +34,8 @@
explicitly if different */
#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_FMRADIO)
+#define HAVE_RDS_CAP
+
/* define this if you have a bitmap LCD display */
#define HAVE_LCD_BITMAP
/* define this if you have a colour LCD */
@@ -138,6 +140,9 @@
/* define this if the flash memory uses the SecureDigital Memory Card protocol */
#define CONFIG_STORAGE STORAGE_SD
+/* Define this if target has an additional number of threads specific to it */
+#define TARGET_EXTRA_THREADS 1 /* RDS thread */
+
#define BATTERY_CAPACITY_DEFAULT 300 /* default battery capacity */
#define BATTERY_CAPACITY_MIN 300 /* min. capacity selectable */
#define BATTERY_CAPACITY_MAX 300 /* max. capacity selectable */
diff --git a/firmware/export/rds.h b/firmware/export/rds.h
new file mode 100644
index 0000000..990f9b4
--- /dev/null
+++ b/firmware/export/rds.h
@@ -0,0 +1,33 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (c) 2011 by Bertrik Sikken
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+#include <stdint.h>
+#include <stdbool.h>
+
+void rds_init(void);
+
+void rds_reset(void);
+bool rds_process(uint16_t data[4]);
+
+uint16_t rds_get_pi(void);
+char* rds_get_ps(void);
+char* rds_get_rt(void);
+
+
diff --git a/firmware/export/si4700.h b/firmware/export/si4700.h
index 06a87c4..761ad1c 100644
--- a/firmware/export/si4700.h
+++ b/firmware/export/si4700.h
@@ -39,10 +39,24 @@ void si4700_init(void);
int si4700_set(int setting, int value);
int si4700_get(int setting);
void si4700_dbg_info(struct si4700_dbg_info *nfo);
+/* For interrupt-based mono/stereo indicator */
+bool si4700_st(void);
+
+/** RDS support **/
+void si4700_rds_init(void);
+/* Read raw RDS info for processing */
+bool si4700_rds_read_raw(uint16_t data[4]);
+/* Radio is fully powered up or about to be powered down */
+void si4700_rds_powerup(bool on);
+/* Obtain specified string */
+char* si4700_get_rds_info(int setting);
+/* Set the event flag */
+void si4700_rds_set_event(void);
#ifndef CONFIG_TUNER_MULTI
#define tuner_set si4700_set
#define tuner_get si4700_get
+#define tuner_get_rds_info si4700_get_rds_info
#endif
#endif /* _SI4700_H_ */