0x4ff 0x1
0x407 0x1
0xbc6 0x3 #ASTRA 23.5° Cslink, Skylink
+0xc85 0x3
+0xc89 0x3
0xc8f 0x3
0xbc7 0x3
0x436 0x1 #ASTRA 19.2° MTV Euro - MTV Networks
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)");
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)");
+ else
+ rtc_time=tmp;
fclose(f);
}
else
char tmp[255];
snprintf(tmp, 255, "eDVBCIInterfaces::readCICaIds try to get CAIds for CI Slot %d... but just %d slots are available", slotid, m_slots.size());
PyErr_SetString(PyExc_StandardError, tmp);
- return 0;
}
- int idx=0;
- ePyObject list = PyList_New(slot->possible_caids.size());
- for (caidSet::iterator it = slot->possible_caids.begin(); it != slot->possible_caids.end(); ++it)
- PyList_SET_ITEM(list, idx++, PyLong_FromLong(*it));
- return list;
+ else
+ {
+ int idx=0;
+ eDVBCICAManagerSession *ca_manager = slot->getCAManager();
+ const std::vector<uint16_t> *ci_caids = ca_manager ? &ca_manager->getCAIDs() : 0;
+ ePyObject list = PyList_New(ci_caids ? ci_caids->size() : 0);
+ if (ci_caids)
+ {
+ for (std::vector<uint16_t>::const_iterator it = ci_caids->begin(); it != ci_caids->end(); ++it)
+ PyList_SET_ITEM(list, idx++, PyLong_FromLong(*it));
+ }
+ return list;
+ }
+ return 0;
}
int eDVBCISlot::send(const unsigned char *data, size_t len)
def getCurrentIndex(self):
return self.instance.getCurrentIndex()
- currentIndex = property(moveToIndex, getCurrentIndex)
+ currentIndex = property(getCurrentIndex, moveToIndex)
currentSelection = property(getCurrent)
def moveDown(self):
// create handle
ddvd_set_dvd_path(m_ddvdconfig, filename);
ddvd_set_ac3thru(m_ddvdconfig, 0);
- ddvd_set_language(m_ddvdconfig, "de");
+
+ std::string ddvd_language;
+ if (!ePythonConfigQuery::getConfigValue("config.osd.language", ddvd_language))
+ ddvd_set_language(m_ddvdconfig, (ddvd_language.substr(0,2)).c_str());
int fd = open("/proc/stb/video/aspect", O_RDONLY);
if (fd > -1)
except IOError:
print "setFPWakeupTime failed!"
+def setRTCtime(wutime):
+ try:
+ open("/proc/stb/fp/rtc", "w").write(str(wutime))
+ except IOError:
+ try:
+ fp = open("/dev/dbox/fp0")
+ ioctl(fp.fileno(), 0x101, pack('L', wutime)) # set wake up
+ except IOError:
+ print "setRTCtime failed!"
+
def getFPWakeuptime():
ret = 0
try:
runReactor()
profile("wakeup")
- from time import time
- from Tools.DreamboxHardware import setFPWakeuptime, getFPWakeuptime
+ from time import time, strftime, localtime
+ from Tools.DreamboxHardware import setFPWakeuptime, getFPWakeuptime, setRTCtime
#get currentTime
nowTime = time()
wakeupList = [
wakeupList.sort()
recordTimerWakeupAuto = False
if wakeupList:
+ from time import strftime
startTime = wakeupList[0]
if (startTime[0] - nowTime) < 330: # no time to switch box back on
wptime = nowTime + 30 # so switch back on in 30 seconds
else:
wptime = startTime[0] - 300
+ if not config.misc.useTransponderTime.value:
+ print "dvb time sync disabled... so set RTC now to current linux time!", strftime("%Y/%m/%d %H:%M", localtime(nowTime))
+ setRTCtime(nowTime)
+ print "set wakeup time to", strftime("%Y/%m/%d %H:%M", localtime(wptime))
setFPWakeuptime(wptime)
recordTimerWakeupAuto = startTime[1] == 0 and startTime[2]
config.misc.isNextRecordTimerAfterEventActionAuto.value = recordTimerWakeupAuto