From 95dfc489b5a602f68202b206c434f8485e9d3915 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 25 Nov 2021 22:18:44 +0100 Subject: sync clock with RDS time Tested with my SansaClip+. I don't think this will need extra battery but let me know if I am wrong. Change-Id: I287dae134113e0f8a138af68f5087b8ea45b0f4c --- apps/features.txt | 4 ++++ apps/lang/english.lang | 17 +++++++++++++++++ apps/menus/radio_menu.c | 6 ++++++ apps/menus/time_menu.c | 6 ++++++ apps/settings.h | 3 +++ apps/settings_list.c | 3 +++ 6 files changed, 39 insertions(+) (limited to 'apps') diff --git a/apps/features.txt b/apps/features.txt index ec2113cbc8..45e06e5e64 100644 --- a/apps/features.txt +++ b/apps/features.txt @@ -105,6 +105,10 @@ radio_remote #endif #endif +#if defined(HAVE_RDS_CAP) +rds +#endif + #if defined(HAVE_RECORDING) recording #if defined(HAVE_LINE_IN) diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 43d73a8445..c951028494 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -16229,3 +16229,20 @@ *: "Prefer Image File" + + id: LANG_FM_SYNC_RDS_TIME + desc: in radio screen and Settings + user: core + + *: none + rds: "Sync RDS Time" + + + *: none + rds: "Sync RDS Time" + + + *: none + rds: "Sync RDS Time" + + diff --git a/apps/menus/radio_menu.c b/apps/menus/radio_menu.c index a6d259a21d..682cecf2b4 100644 --- a/apps/menus/radio_menu.c +++ b/apps/menus/radio_menu.c @@ -87,6 +87,9 @@ MENUITEM_FUNCTION(presetclear_item, 0, ID2P(LANG_FM_PRESET_CLEAR), MENUITEM_SETTING(set_region, &global_settings.fm_region, NULL); MENUITEM_SETTING(force_mono, &global_settings.fm_force_mono, NULL); +#if defined(HAVE_RDS_CAP) && defined(CONFIG_RTC) +MENUITEM_SETTING(sync_rds_time, &global_settings.sync_rds_time, NULL); +#endif #ifndef FM_MODE extern int radio_mode; @@ -146,6 +149,9 @@ MAKE_MENU(radio_settings_menu, ID2P(LANG_FM_MENU), NULL, #endif #ifdef FM_RECORDING_SETTINGS &recsettings_item, +#endif +#if defined(HAVE_RDS_CAP) && defined(CONFIG_RTC) + &sync_rds_time, #endif &scan_presets_item); diff --git a/apps/menus/time_menu.c b/apps/menus/time_menu.c index edd2e19a2b..674279c01a 100644 --- a/apps/menus/time_menu.c +++ b/apps/menus/time_menu.c @@ -242,6 +242,9 @@ static int time_menu_callback(int action, return action; } +#if defined(HAVE_RDS_CAP) && defined(CONFIG_RTC) +MENUITEM_SETTING(sync_rds_time, &global_settings.sync_rds_time, NULL); +#endif MAKE_MENU(time_menu, ID2P(LANG_TIME_MENU), time_menu_callback, Icon_NOICON, &time_set, @@ -250,6 +253,9 @@ MAKE_MENU(time_menu, ID2P(LANG_TIME_MENU), time_menu_callback, Icon_NOICON, #if defined(HAVE_RECORDING) || CONFIG_TUNER &alarm_wake_up_screen, #endif +#endif +#if defined(HAVE_RDS_CAP) && defined(CONFIG_RTC) + &sync_rds_time, #endif &timeformat); diff --git a/apps/settings.h b/apps/settings.h index 936280ba5a..8ff006d682 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -458,6 +458,9 @@ struct user_settings unsigned char rfms_file[MAX_FILENAME+1]; /* last remote-fms */ #endif #endif /* CONFIG_TUNER */ +#if defined(HAVE_RDS_CAP) && defined(CONFIG_RTC) + bool sync_rds_time; /* use RDS time to set the clock */ +#endif /* misc options */ #ifndef HAVE_WHEEL_ACCELERATION diff --git a/apps/settings_list.c b/apps/settings_list.c index 7b24db22e5..aa2ebbf883 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c @@ -1096,6 +1096,9 @@ const struct settings_list settings[] = { false, "force fm mono", toggle_mono_mode), SYSTEM_SETTING(NVRAM(4), last_frequency, 0), #endif +#if defined(HAVE_RDS_CAP) && defined(CONFIG_RTC) + OFFON_SETTING(0, sync_rds_time, LANG_FM_SYNC_RDS_TIME, false, "sync_rds_time", NULL), +#endif #if BATTERY_TYPES_COUNT > 1 CHOICE_SETTING(0, battery_type, LANG_BATTERY_TYPE, 0, "battery type", -- cgit v1.2.3