git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'bug_615_replace_rawfile'
[enigma2.git]
/
lib
/
dvb
/
dvbtime.cpp
diff --git
a/lib/dvb/dvbtime.cpp
b/lib/dvb/dvbtime.cpp
index 03847ecb88b7bfb245f298b1bd0d85a0be184fbb..26b6767cf10862466e8bc2ed345bc18068341c8e 100644
(file)
--- a/
lib/dvb/dvbtime.cpp
+++ b/
lib/dvb/dvbtime.cpp
@@
-20,7
+20,7
@@
void setRTC(time_t time)
FILE *f = fopen("/proc/stb/fp/rtc", "w");
if (f)
{
FILE *f = fopen("/proc/stb/fp/rtc", "w");
if (f)
{
- if (fprintf(f, "%u", time))
+ if (fprintf(f, "%u",
(unsigned int)
time))
prev_time = time;
else
eDebug("write /proc/stb/fp/rtc failed (%m)");
prev_time = time;
else
eDebug("write /proc/stb/fp/rtc failed (%m)");
@@
-47,8
+47,11
@@
time_t getRTC()
if (f)
{
// sanity check to detect corrupt atmel firmware
if (f)
{
// sanity check to detect corrupt atmel firmware
- if (fscanf(f, "%u", &rtc_time) != 1)
+ unsigned int tmp;
+ if (fscanf(f, "%u", &tmp) != 1)
eDebug("read /proc/stb/fp/rtc failed (%m)");
eDebug("read /proc/stb/fp/rtc failed (%m)");
+ else
+ rtc_time=tmp;
fclose(f);
}
else
fclose(f);
}
else
@@
-64,7
+67,7
@@
time_t getRTC()
return rtc_time != prev_time ? rtc_time : 0;
}
return rtc_time != prev_time ? rtc_time : 0;
}
-time_t parseDVBtime(__u8 t1, __u8 t2, __u8 t3, __u8 t4, __u8 t5)
+time_t parseDVBtime(__u8 t1, __u8 t2, __u8 t3, __u8 t4, __u8 t5
, __u16 *hash
)
{
tm t;
t.tm_sec=fromBCD(t5);
{
tm t;
t.tm_sec=fromBCD(t5);
@@
-84,6
+87,11
@@
time_t parseDVBtime(__u8 t1, __u8 t2, __u8 t3, __u8 t4, __u8 t5)
t.tm_isdst = 0;
t.tm_gmtoff = 0;
t.tm_isdst = 0;
t.tm_gmtoff = 0;
+ if (hash) {
+ *hash = t.tm_hour * 60 + t.tm_min;
+ *hash |= t.tm_mday << 11;
+ }
+
return timegm(&t);
}
return timegm(&t);
}
@@
-103,7
+111,7
@@
void TDT::ready(int error)
int TDT::createTable(unsigned int nr, const __u8 *data, unsigned int max)
{
int TDT::createTable(unsigned int nr, const __u8 *data, unsigned int max)
{
- if ( data &&
data[0] == 0x70 || data[0] == 0x73
)
+ if ( data &&
(data[0] == 0x70 || data[0] == 0x73 )
)
{
int length = ((data[1] & 0x0F) << 8) | data[2];
if ( length >= 5 )
{
int length = ((data[1] & 0x0F) << 8) | data[2];
if ( length >= 5 )