YH-820: prohibit to change time/date on some hardware versions
This patch will autodetect these players, where setting the time/date
would leave the player in an unusable state.
Change-Id: I0579610ce7c10152ace27bb9c06cf6cb2aab8052
diff --git a/apps/menus/time_menu.c b/apps/menus/time_menu.c
index 93ca786..94e19b0 100644
--- a/apps/menus/time_menu.c
+++ b/apps/menus/time_menu.c
@@ -43,6 +43,10 @@
#include "font.h"
#include "system.h"
+#ifdef SAMSUNG_YH820
+#include "splash.h"
+#endif
+
static int timedate_set(void)
{
/* Make a local copy of the time struct */
@@ -280,6 +284,20 @@
draw_timedate(&clock_vps[i], &screens[i]);
}
+#ifdef SAMSUNG_YH820
+ /* some hardware revisions of the yh820 have a rtc problem: if you try to set
+ the time/date it will leave the player in an absolute unresponsive state
+ which can only be reverted by removing the battery. Setting time/date
+ should be prohibited on this targets. Fortunately we can autodetect these,
+ because they always report "02:02:02" as time.
+ */
+ struct tm *tm = get_time();
+ if (tm->tm_year==102 && tm->tm_hour==2 && tm->tm_min==2 && tm->tm_sec==2) {
+ splash(4*HZ, "Can't set time/date due to hardware issues!");
+ return 0;
+ }
+#endif
+
ret = do_menu(&time_menu, NULL, menu, false);
pop_current_activity();
/* see comments above in the button callback */