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
This commit is contained in:
Sebastian Leonhardt 2016-10-01 21:53:31 +02:00 committed by Solomon Peachy
parent 053c4d0593
commit 1c095a1323

View file

@ -43,6 +43,10 @@
#include "font.h" #include "font.h"
#include "system.h" #include "system.h"
#ifdef SAMSUNG_YH820
#include "splash.h"
#endif
static int timedate_set(void) static int timedate_set(void)
{ {
/* Make a local copy of the time struct */ /* Make a local copy of the time struct */
@ -280,6 +284,20 @@ int time_screen(void* ignored)
draw_timedate(&clock_vps[i], &screens[i]); 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); ret = do_menu(&time_menu, NULL, menu, false);
pop_current_activity(); pop_current_activity();
/* see comments above in the button callback */ /* see comments above in the button callback */