here, and not before.
*/
+ int type;
+ if (m_ch_current->getSystem(type))
+ type = -1;
+
for (m_pmt_in_progress = m_pmts_to_read.begin(); m_pmt_in_progress != m_pmts_to_read.end();)
{
- int type;
eServiceReferenceDVB ref;
ePtr<eDVBService> service = new eDVBService;
ref.setServiceID(m_pmt_in_progress->first);
ref.setServiceType(m_pmt_in_progress->second.serviceType);
- if (!m_ch_current->getSystem(type))
+ if (type != -1)
{
char sname[255];
char pname[255];
}
case iDVBFrontend::feTerrestrial:
{
- ePtr<iDVBFrontend> fe;
eDVBFrontendParametersTerrestrial parm;
m_ch_current->getDVBT(parm);
snprintf(sname, 255, "%d SID 0x%02x",
parm.frequency/1000,
m_pmt_in_progress->first);
- if (!m_channel->getFrontend(fe))
- {
- ePyObject tp_dict = PyDict_New();
- fe->getTransponderData(tp_dict, false);
- m_corrected_frequencys[m_chid_current] =
- PyInt_AsLong(PyDict_GetItemString(tp_dict, "frequency"));
- Py_DECREF(tp_dict);
- }
break;
}
case iDVBFrontend::feCable:
if (!m_chid_current)
eWarning("SCAN: the current channel's ID was not corrected - not adding channel.");
else
+ {
addKnownGoodChannel(m_chid_current, m_ch_current);
-
+ if (m_chid_current)
+ {
+ switch(type)
+ {
+ case iDVBFrontend::feSatellite:
+ case iDVBFrontend::feTerrestrial:
+ case iDVBFrontend::feCable:
+ {
+ ePtr<iDVBFrontend> fe;
+ if (!m_channel->getFrontend(fe))
+ {
+ ePyObject tp_dict = PyDict_New();
+ fe->getTransponderData(tp_dict, false);
+// eDebug("add tuner data for tsid %04x, onid %04x, ns %08x",
+// m_chid_current.transport_stream_id.get(), m_chid_current.original_network_id.get(),
+// m_chid_current.dvbnamespace.get());
+ m_tuner_data.insert(std::pair<eDVBChannelID, ePyObjectWrapper>(m_chid_current, tp_dict));
+ Py_DECREF(tp_dict);
+ }
+ }
+ default:
+ break;
+ }
+ }
+ }
+
m_ch_scanned.push_back(m_ch_current);
-
+
for (std::list<ePtr<iDVBFrontendParameters> >::iterator i(m_ch_toScan.begin()); i != m_ch_toScan.end();)
{
if (sameChannel(*i, m_ch_current))
m_ch_scanned.clear();
m_ch_unavailable.clear();
m_new_channels.clear();
+ m_tuner_data.clear();
m_new_services.clear();
m_last_service = m_new_services.end();
{
int system;
ch->second->getSystem(system);
- if (system == iDVBFrontend::feTerrestrial)
+ std::map<eDVBChannelID, ePyObjectWrapper>::iterator it = m_tuner_data.find(ch->first);
+
+ switch(system)
{
- std::map<eDVBChannelID, unsigned int>::iterator it = m_corrected_frequencys.find(ch->first);
- if (it != m_corrected_frequencys.end())
+ case iDVBFrontend::feTerrestrial:
{
eDVBFrontendParameters *p = (eDVBFrontendParameters*)&(*ch->second);
eDVBFrontendParametersTerrestrial parm;
+ int freq = PyInt_AsLong(PyDict_GetItemString(it->second, "frequency"));
p->getDVBT(parm);
- eDebug("corrected freq for tsid %04x, onid %04x, ns %08x is %d, old was %d",
- ch->first.transport_stream_id.get(), ch->first.original_network_id.get(),
- ch->first.dvbnamespace.get(), it->second, parm.frequency);
- parm.frequency = it->second;
+// eDebug("corrected freq for tsid %04x, onid %04x, ns %08x is %d, old was %d",
+// ch->first.transport_stream_id.get(), ch->first.original_network_id.get(),
+// ch->first.dvbnamespace.get(), freq, parm.frequency);
+ parm.frequency = freq;
p->setDVBT(parm);
- m_corrected_frequencys.erase(it);
+ break;
}
+ case iDVBFrontend::feSatellite: // no update of any transponder parameter yet
+ case iDVBFrontend::feCable:
+ break;
}
+
if (m_flags & scanOnlyFree)
{
eDVBFrontendParameters *ptr = (eDVBFrontendParameters*)&(*ch->second);
ptr->setFlags(iDVBFrontendParameters::flagOnlyFree);
}
+
db->addChannelToList(ch->first, ch->second);
}
self.avswitch.setInput("AUX")
#set lcd brightness to standby value
config.lcd.standby.apply()
- self.onShow.append(self.__onShow)
- self.onHide.append(self.__onHide)
+ self.onFirstExecBegin.append(self.__onFirstExecBegin)
self.onClose.append(self.__onClose)
def __onClose(self):
+ global inStandby
+ inStandby = None
if self.prev_running_service:
self.session.nav.playService(self.prev_running_service)
elif self.paused_service:
self.paused_service.unPauseService()
+ self.session.screen["Standby"].boolean = False
- def createSummary(self):
- return StandbySummary
-
- def __onShow(self):
+ def __onFirstExecBegin(self):
global inStandby
inStandby = self
self.session.screen["Standby"].boolean = True
+ config.misc.standbyCounter.value += 1
- def __onHide(self):
- global inStandby
- inStandby = None
- self.session.screen["Standby"].boolean = False
+ def createSummary(self):
+ return StandbySummary
class StandbySummary(Screen):
skin = """
profile("LOAD:Tools")
from Tools.Directories import InitFallbackFiles, resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE
-from Components.config import config, configfile, ConfigText, ConfigYesNo
+from Components.config import config, configfile, ConfigText, ConfigYesNo, ConfigInteger, NoSave
InitFallbackFiles()
profile("ReloadProfiles")
config.misc.radiopic = ConfigText(default = resolveFilename(SCOPE_SKIN_IMAGE)+"radio.mvi")
config.misc.isNextRecordTimerAfterEventActionAuto = ConfigYesNo(default=False)
config.misc.useTransponderTime = ConfigYesNo(default=True)
+config.misc.startCounter = ConfigInteger(default=0) # number of e2 starts...
+config.misc.standbyCounter = NoSave(ConfigInteger(default=0)) # number of standby
+
+#demo code for use of standby enter leave callbacks
+#def leaveStandby():
+# print "!!!!!!!!!!!!!!!!!leave standby"
+
+#def standbyCountChanged(configElement):
+# print "!!!!!!!!!!!!!!!!!enter standby num", configElement.value
+# from Screens.Standby import inStandby
+# inStandby.onClose.append(leaveStandby)
+
+#config.misc.standbyCounter.addNotifier(standbyCountChanged, initial_call = False)
+####################################################
def useTransponderTimeChanged(configElement):
enigma.eDVBLocalTimeHandler.getInstance().setUseDVBTime(configElement.value)
from Components.VolumeControl import VolumeControl
def runScreenTest():
+ config.misc.startCounter.value += 1
+
profile("readPluginList")
plugins.readPluginList(resolveFilename(SCOPE_PLUGINS))
profile_final()
runReactor()
+ config.misc.startCounter.save()
+
profile("wakeup")
from time import time, strftime, localtime
from Tools.DreamboxHardware import setFPWakeuptime, getFPWakeuptime, setRTCtime