? fm-radio-emphasis2.patch
Index: apps/settings.c
===================================================================
RCS file: /cvsroot/rockbox/apps/settings.c,v
retrieving revision 1.412
diff -u -r1.412 settings.c
--- apps/settings.c	2 Sep 2006 17:30:30 -0000	1.412
+++ apps/settings.c	2 Sep 2006 23:06:08 -0000
@@ -320,7 +320,7 @@
             "backlight filters first remote keypress", off_on },
 #endif
 #endif /* CONFIG_BACKLIGHT */
-
+    {1, S_O(fm_emphasis), 0, "fm_emphasis", "50,75" },
     /* new stuff to be added here */
     /* If values are just added to the end, no need to bump the version. */
 
Index: apps/settings.h
===================================================================
RCS file: /cvsroot/rockbox/apps/settings.h,v
retrieving revision 1.236
diff -u -r1.236 settings.h
--- apps/settings.h	2 Sep 2006 19:11:00 -0000	1.236
+++ apps/settings.h	2 Sep 2006 23:06:08 -0000
@@ -480,6 +480,7 @@
 #endif
     bool hold_lr_for_scroll_in_list; /* hold L/R scrolls the list left/right */
     int show_path_in_browser; /* 0=off, 1=current directory, 2=full path */
+    bool fm_emphasis;
 };
 
 enum optiontype { INT, BOOL };
Index: apps/lang/english.lang
===================================================================
RCS file: /cvsroot/rockbox/apps/lang/english.lang,v
retrieving revision 1.275
diff -u -r1.275 english.lang
--- apps/lang/english.lang	28 Aug 2006 22:43:46 -0000	1.275
+++ apps/lang/english.lang	2 Sep 2006 23:06:09 -0000
@@ -9792,3 +9792,43 @@
     *: "kilobits per second"
   </voice>
 </phrase>
+<phrase>
+  id: LANG_FM_EMPHASIS
+  desc: fm tuner emphasis setting
+  <source>
+    *: "Emphasis"
+  </source>
+  <dest>
+    *: "Emphasis"
+  </dest>
+  <voice>
+    *: "Emphasis"
+  </voice>
+</phrase>
+<phrase>
+  id: LANG_FM_EMPHASIS_50
+  desc: fm tuner emphasis 50us
+  <source>
+    *: "50µs (Europe)"
+  </source>
+  <dest>
+    *: "50µs (Europe)"
+  </dest>
+  <voice>
+    *: "50µs (Europe)"
+  </voice>
+</phrase>
+<phrase>
+  id: LANG_FM_EMPHASIS_75
+  desc: fm tuner emphasis 75us
+  <source>
+    *: "75µs (US)"
+  </source>
+  <dest>
+    *: "75µs (US)"
+  </dest>
+  <voice>
+    *: "75µs (US)"
+  </voice>
+</phrase>
+
Index: apps/recorder/radio.c
===================================================================
RCS file: /cvsroot/rockbox/apps/recorder/radio.c,v
retrieving revision 1.103
diff -u -r1.103 radio.c
--- apps/recorder/radio.c	28 Aug 2006 22:38:40 -0000	1.103
+++ apps/recorder/radio.c	2 Sep 2006 23:06:09 -0000
@@ -1487,6 +1487,26 @@
     return false;
 }
 
+#ifdef TEA5767
+char emphasis_menu_string[32];
+static void create_emphasis_menu(void)
+{
+    snprintf(emphasis_menu_string, sizeof emphasis_menu_string,
+	    "%s: %s", str(LANG_FM_EMPHASIS),
+	    global_settings.fm_emphasis?
+	    str(LANG_FM_EMPHASIS_75):str(LANG_FM_EMPHASIS_50));
+}
+
+static bool toggle_emphasis_mode(void)
+{
+    global_settings.fm_emphasis = !global_settings.fm_emphasis;
+    radio_set(RADIO_SET_EMPHASIS, global_settings.fm_emphasis);
+    settings_save();
+    create_emphasis_menu();
+    return false;
+}
+#endif
+
 #ifndef FM_MODE
 char radiomode_menu_string[32];
 
@@ -1677,6 +1697,9 @@
 #ifndef FM_MODE
         { radiomode_menu_string          , toggle_radio_mode     },
 #endif
+#ifdef TEA5767
+        { emphasis_menu_string           , toggle_emphasis_mode  },
+#endif
         { ID2P(LANG_SOUND_SETTINGS)      , sound_menu            },
 #ifndef SIMULATOR
 #if defined(HAVE_FMRADIO_IN) || CONFIG_CODEC != SWCODEC
@@ -1691,6 +1714,9 @@
 #ifndef FM_MODE
     create_radiomode_menu();
 #endif
+#ifdef TEA5767
+    create_emphasis_menu();
+#endif
     m = menu_init(items, sizeof(items) / sizeof(*items),
                   radio_menu_cb, NULL, NULL, NULL);
     result = menu_run(m);
Index: firmware/tuner_philips.c
===================================================================
RCS file: /cvsroot/rockbox/firmware/tuner_philips.c,v
retrieving revision 1.9
diff -u -r1.9 tuner_philips.c
--- firmware/tuner_philips.c	24 Sep 2005 09:06:31 -0000	1.9
+++ firmware/tuner_philips.c	2 Sep 2006 23:06:09 -0000
@@ -73,6 +73,11 @@
             fmradio_i2c_write(I2C_ADR, write_bytes, sizeof(write_bytes));
             break;
 
+	case RADIO_SET_EMPHASIS:
+	    write_bytes[4] = (write_bytes[4] & ~(1<<6)) | (value ? (1<<6) : 0);
+	    fmradio_i2c_write(I2C_ADR, write_bytes, sizeof(write_bytes));
+	    break;
+
         default:
             return;
     }
Index: firmware/export/tuner.h
===================================================================
RCS file: /cvsroot/rockbox/firmware/export/tuner.h,v
retrieving revision 1.3
diff -u -r1.3 tuner.h
--- firmware/export/tuner.h	19 Oct 2004 08:20:38 -0000	1.3
+++ firmware/export/tuner.h	2 Sep 2006 23:06:09 -0000
@@ -27,6 +27,7 @@
 #define RADIO_IF_MEASUREMENT 3
 #define RADIO_SENSITIVITY 4
 #define RADIO_FORCE_MONO 5
+#define RADIO_SET_EMPHASIS 6
 /* readback from the tuner layer */
 #define RADIO_PRESENT 0
 #define RADIO_TUNED 1
