</screen>
<!-- Color OLED screen (standby) -->
<screen name="StandbySummary" position="0,0" size="96,64" id="2">
- <widget source="global.CurrentTime" render="Label" position="0,0" size="96,64" font="Regular;40" halign="center" valign="center">
+ <widget source="global.CurrentTime" render="Label" position="0,0" size="96,64" font="Regular;38" halign="center" valign="center">
<convert type="ClockToText">Format:%H:%M</convert>
</widget>
<widget source="session.RecordState" render="FixedLabel" position="0,0" zPosition="1" size="96,64" text=" ">
selectioncross.png \
unlock.png \
unlockBouquet.png
+
eRCDeviceInputDev::eRCDeviceInputDev(eRCInputEventDriver *driver)
:eRCDevice(driver->getDeviceName(), driver), iskeyboard(false)
{
- int len=id.length();
- int idx=0;
- while(idx <= len-8)
- {
- if (!strncasecmp(&id[idx++], "KEYBOARD", 8))
- {
- iskeyboard=true;
- break;
- }
- }
+ if (strcasestr(id.c_str(), "keyboard") != NULL)
+ iskeyboard = true;
setExclusive(true);
eDebug("Input device \"%s\" is %sa keyboard.", id.c_str(), iskeyboard ? "" : "not ");
}
return 0;
}
-static int readMpegProc(char *str, int decoder)
+static int readMpegProc(const char *str, int decoder)
{
int val = -1;
char tmp[64];
PyErr_SetString(PyExc_StandardError, "eDVBResourceManager::setFrontendSlotInformations argument should be a python list");
return NULL;
}
- if ((unsigned int)PyList_Size(list) != m_frontend.size())
+ unsigned int assigned=0;
+ for (eSmartPtrList<eDVBRegisteredFrontend>::iterator i(m_frontend.begin()); i != m_frontend.end(); ++i)
{
+ int pos=0;
+ while (pos < PyList_Size(list)) {
+ ePyObject obj = PyList_GET_ITEM(list, pos++);
+ if (!i->m_frontend->setSlotInfo(obj))
+ continue;
+ ++assigned;
+ break;
+ }
+ }
+ if (assigned != m_frontend.size()) {
char blasel[256];
- sprintf(blasel, "eDVBResourceManager::setFrontendSlotInformations list size incorrect %d frontends avail, but %d entries in slotlist",
- m_frontend.size(), PyList_Size(list));
+ sprintf(blasel, "eDVBResourceManager::setFrontendSlotInformations .. assigned %d socket informations, but %d registered frontends!",
+ m_frontend.size(), assigned);
PyErr_SetString(PyExc_StandardError, blasel);
return NULL;
}
- int pos=0;
- for (eSmartPtrList<eDVBRegisteredFrontend>::iterator i(m_frontend.begin()); i != m_frontend.end(); ++i)
- {
- ePyObject obj = PyList_GET_ITEM(list, pos++);
- if (!i->m_frontend->setSlotInfo(obj))
- return NULL;
- }
- pos=0;
for (eSmartPtrList<eDVBRegisteredFrontend>::iterator i(m_simulate_frontend.begin()); i != m_simulate_frontend.end(); ++i)
{
- ePyObject obj = PyList_GET_ITEM(list, pos++);
- if (!i->m_frontend->setSlotInfo(obj))
- return NULL;
+ int pos=0;
+ while (pos < PyList_Size(list)) {
+ ePyObject obj = PyList_GET_ITEM(list, pos++);
+ if (!i->m_frontend->setSlotInfo(obj))
+ continue;
+ break;
+ }
}
Py_RETURN_NONE;
}
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 )
{
__u8 buffer[10];
(*desc)->writeToBuffer(buffer);
- if (!strncmp((char*)buffer+2, "EPGDATA", 7))
+ if (!strncmp((const char *)buffer+2, "EPGDATA", 7))
{
eServiceReferenceDVB ref;
if (!pmthandler->getServiceReference(ref))
messages.send(Message(Message::got_mhw2_channel_pid, ref, pid));
}
}
- else if(!strncmp((char*)buffer+2, "FICHAS", 6))
+ else if(!strncmp((const char *)buffer+2, "FICHAS", 6))
{
eServiceReferenceDVB ref;
if (!pmthandler->getServiceReference(ref))
messages.send(Message(Message::got_mhw2_summary_pid, ref, pid));
}
}
- else if(!strncmp((char*)buffer+2, "GENEROS", 7))
+ else if(!strncmp((const char *)buffer+2, "GENEROS", 7))
{
eServiceReferenceDVB ref;
if (!pmthandler->getServiceReference(ref))
float fval1 = SDS_SNRE / 268435456.0,
fval2, fval3, fval4;
- if (parm_u_qpsk_fec_inner <= FEC_S2_QPSK_9_10) // DVB-S2 QPSK
+ if (oparm.sat.modulation == eDVBFrontendParametersSatellite::Modulation_QPSK)
{
fval2 = 6.76;
fval3 = 4.35;
bool eDVBFrontend::setSlotInfo(ePyObject obj)
{
- ePyObject Id, Descr, Enabled, IsDVBS2;
- if (!PyTuple_Check(obj) || PyTuple_Size(obj) != 4)
+ ePyObject Id, Descr, Enabled, IsDVBS2, frontendId;
+ if (!PyTuple_Check(obj) || PyTuple_Size(obj) != 5)
goto arg_error;
Id = PyTuple_GET_ITEM(obj, 0);
Descr = PyTuple_GET_ITEM(obj, 1);
Enabled = PyTuple_GET_ITEM(obj, 2);
IsDVBS2 = PyTuple_GET_ITEM(obj, 3);
- if (!PyInt_Check(Id) || !PyString_Check(Descr) || !PyBool_Check(Enabled) || !PyBool_Check(IsDVBS2))
+ frontendId = PyTuple_GET_ITEM(obj, 4);
+ m_slotid = PyInt_AsLong(Id);
+ if (!PyInt_Check(Id) || !PyString_Check(Descr) || !PyBool_Check(Enabled) || !PyBool_Check(IsDVBS2) || !PyInt_Check(frontendId))
goto arg_error;
strcpy(m_description, PyString_AS_STRING(Descr));
- m_slotid = PyInt_AsLong(Id);
+ if (PyInt_AsLong(frontendId) == -1 || PyInt_AsLong(frontendId) != m_dvbid) {
+// eDebugNoSimulate("skip slotinfo for slotid %d, descr %s",
+// m_slotid, m_description);
+ return false;
+ }
m_enabled = Enabled == Py_True;
// HACK.. the rotor workaround is neede for all NIMs with LNBP21 voltage regulator...
m_need_rotor_workaround = !!strstr(m_description, "Alps BSBE1") ||
int dst_addr, int dst_width, int dst_height, int dst_stride,
int src_x, int src_y, int width, int height,
int dst_x, int dst_y, int dwidth, int dheight,
- int pal_addr);
+ int pal_addr, int flags);
extern void bcm_accel_fill(
int dst_addr, int dst_width, int dst_height, int dst_stride,
int x, int y, int width, int height,
dst->data_phys, dst->x, dst->y, dst->stride,
area.left(), area.top(), area.width(), area.height(),
p.x(), p.y(), p.width(), p.height(),
- pal_addr);
+ pal_addr, flags);
return 0;
}
#endif
int dst_addr, int dst_width, int dst_height, int dst_stride,
int src_x, int src_y, int width, int height,
int dst_x, int dst_y, int dwidth, int dheight,
- int pal_addr)
+ int pal_addr, int flags)
{
C(0x43); // reset source
C(0x53); // reset dest
}
pGlyph ng;
- ng.bbox.setLeft( (flags&GS_ISFIRST|cursor.x()-1)+glyph->left );
+ ng.bbox.setLeft( ((flags&GS_ISFIRST)|(cursor.x()-1))+glyph->left );
ng.bbox.setTop( cursor.y() - glyph->top );
ng.bbox.setWidth( glyph->width );
ng.bbox.setHeight( glyph->height );
// TODO: This only works for desktop 0
getDesktop(0)->makeCompatiblePixmap(*m_pixmap);
- event(evtChangedPixmap);
+ event(evtChangedPixmap);
}
void ePixmap::setBorderWidth(int pixel)
{
- m_border_width=pixel;
- invalidate();
+ m_border_width=pixel;
+ invalidate();
}
void ePixmap::setBorderColor(const gRGB &color)
{
- m_border_color=color;
- m_have_border_color=true;
- invalidate();
+ m_border_color=color;
+ m_have_border_color=true;
+ invalidate();
}
void ePixmap::checkSize()
{
- /* when we have no pixmap, or a pixmap of different size, we need
+ /* when we have no pixmap, or a pixmap of different size, we need
to enable transparency in any case. */
if (m_pixmap && m_pixmap->size() == size() && !m_alphatest)
setTransparent(0);
switch (event)
{
case evtPaint:
- {
- ePtr<eWindowStyle> style;
+ {
+ ePtr<eWindowStyle> style;
- eSize s(size());
- getStyle(style);
+ eSize s(size());
+ getStyle(style);
-// we don't clear the background before because of performance reasons.
+// we don't clear the background before because of performance reasons.
// when the pixmap is too small to fit the whole widget area, the widget is
// transparent anyway, so the background is already painted.
-// eWidget::event(event, data, data2);
+// eWidget::event(event, data, data2);
gPainter &painter = *(gPainter*)data2;
if (m_pixmap)
if (m_scale)
painter.blitScale(m_pixmap, eRect(ePoint(0, 0), size()), eRect(), flags);
else
- painter.blit(m_pixmap, ePoint(0, 0), eRect(), flags);
- }
-
-// border
- if (m_have_border_color)
- painter.setForegroundColor(m_border_color);
- painter.fill(eRect(0, 0, s.width(), m_border_width));
- painter.fill(eRect(0, m_border_width, m_border_width, s.height()-m_border_width));
- painter.fill(eRect(m_border_width, s.height()-m_border_width, s.width()-m_border_width, m_border_width));
- painter.fill(eRect(s.width()-m_border_width, m_border_width, m_border_width, s.height()-m_border_width));
-
- return 0;
- }
- case evtChangedPixmap:
+ painter.blit(m_pixmap, ePoint(0, 0), eRect(), flags);
+ }
+
+ if (m_have_border_color)
+ painter.setForegroundColor(m_border_color);
+
+ if (m_border_width) {
+ painter.fill(eRect(0, 0, s.width(), m_border_width));
+ painter.fill(eRect(0, m_border_width, m_border_width, s.height()-m_border_width));
+ painter.fill(eRect(m_border_width, s.height()-m_border_width, s.width()-m_border_width, m_border_width));
+ painter.fill(eRect(s.width()-m_border_width, m_border_width, m_border_width, s.height()-m_border_width));
+ }
+
+ return 0;
+ }
+ case evtChangedPixmap:
checkSize();
invalidate();
return 0;
void setPixmap(gPixmap *pixmap);
void setPixmap(ePtr<gPixmap> &pixmap);
- void setPixmapFromFile(const char *filename);
- void setAlphatest(int alphatest); /* 1 for alphatest, 2 for alphablend */
- void setScale(int scale);
- void setBorderWidth(int pixel);
- void setBorderColor(const gRGB &color);
+ void setPixmapFromFile(const char *filename);
+ void setAlphatest(int alphatest); /* 1 for alphatest, 2 for alphablend */
+ void setScale(int scale);
+ void setBorderWidth(int pixel);
+ void setBorderColor(const gRGB &color);
protected:
- ePtr<gPixmap> m_pixmap;
- int event(int event, void *data=0, void *data2=0);
+ ePtr<gPixmap> m_pixmap;
+ int event(int event, void *data=0, void *data2=0);
void checkSize();
private:
enum eLabelEvent
- {
- evtChangedPixmap = evtUserWidget,
- };
- bool m_have_border_color;
- int m_border_width;
- gRGB m_border_color;
+ {
+ evtChangedPixmap = evtUserWidget,
+ };
+ bool m_have_border_color;
+ int m_border_width;
+ gRGB m_border_color;
};
#endif
for slot in nim_slots:
if slot.type is not None:
- used_nim_slots.append((slot.slot, slot.description, slot.config.configMode.value != "nothing" and True or False, slot.isCompatible("DVB-S2")))
+ used_nim_slots.append((slot.slot, slot.description, slot.config.configMode.value != "nothing" and True or False, slot.isCompatible("DVB-S2"), slot.frontend_id is None and -1 or slot.frontend_id))
eDVBResourceManager.getInstance().setFrontendSlotInformations(used_nim_slots)
for slot in nim_slots:
self.update()
class NIM(object):
- def __init__(self, slot, type, description, has_outputs = True, internally_connectable = None, multi_type = {}, frontend_id = None, i2c = None):
-
+ def __init__(self, slot, type, description, has_outputs = True, internally_connectable = None, multi_type = {}, frontend_id = None, i2c = None, is_empty = False):
self.slot = slot
if type not in ("DVB-S", "DVB-C", "DVB-T", "DVB-S2", None):
self.multi_type = multi_type
self.i2c = i2c
self.frontend_id = frontend_id
+ self.__is_empty = is_empty
def isCompatible(self, what):
if not self.isSupported():
def isMultiType(self):
return (len(self.multi_type) > 0)
+ def isEmpty(self):
+ return self.__is_empty
+
+ # empty tuners are supported!
def isSupported(self):
- return (self.frontend_id is not None)
+ return (self.frontend_id is not None) or self.__is_empty
# returns dict {<slotid>: <type>}
def getMultiTypeList(self):
entries[current_slot] = {}
elif line.strip().startswith("Type:"):
entries[current_slot]["type"] = str(line.strip()[6:])
+ entries[current_slot]["isempty"] = False
elif line.strip().startswith("Name:"):
entries[current_slot]["name"] = str(line.strip()[6:])
+ entries[current_slot]["isempty"] = False
elif line.strip().startswith("Has_Outputs:"):
input = str(line.strip()[len("Has_Outputs:") + 1:])
entries[current_slot]["has_outputs"] = (input == "yes")
elif line.strip().startswith("empty"):
entries[current_slot]["type"] = None
entries[current_slot]["name"] = _("N/A")
+ entries[current_slot]["isempty"] = True
nimfile.close()
from os import path
entry["frontend_device"] = entry["internally_connectable"] = None
if not (entry.has_key("multi_type")):
entry["multi_type"] = {}
- self.nim_slots.append(NIM(slot = id, description = entry["name"], type = entry["type"], has_outputs = entry["has_outputs"], internally_connectable = entry["internally_connectable"], multi_type = entry["multi_type"], frontend_id = entry["frontend_device"], i2c = entry["i2c"]))
-
+ self.nim_slots.append(NIM(slot = id, description = entry["name"], type = entry["type"], has_outputs = entry["has_outputs"], internally_connectable = entry["internally_connectable"], multi_type = entry["multi_type"], frontend_id = entry["frontend_device"], i2c = entry["i2c"], is_empty = entry["isempty"]))
def hasNimType(self, chktype):
for slot in self.nim_slots:
nim = config.Nims[x]
if slot.isCompatible("DVB-S"):
- nim.toneAmplitude = ConfigSelection([("9", "600mV"), ("8", "700mV"), ("7", "800mV"), ("6", "900mV"), ("5", "1100mV")], "7")
+ nim.toneAmplitude = ConfigSelection([("11", "340mV"), ("10", "360mV"), ("9", "600mV"), ("8", "700mV"), ("7", "800mV"), ("6", "900mV"), ("5", "1100mV")], "7")
nim.toneAmplitude.fe_id = x - empty_slots
nim.toneAmplitude.slot_id = x
nim.toneAmplitude.addNotifier(toneAmplitudeChanged)
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_cutlisteditor.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_dvdburn.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_dvdplayer.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_graphmultiepg.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_mediaplayer.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_mediascanner.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_pictureplayer.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_socketmmi.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_tuxboxplugins.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_cleanupwizard.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_commoninterfaceassignment.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_crashlogautosubmit.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_defaultservicesscanner.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_diseqctester.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_frontprocessorupgrade.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_hotplug.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_nfiflash.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_networkwizard.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_positionersetup.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_satelliteequipmentcontrol.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_satfinder.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_skinselector.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_softwaremanager.xml
ConfigListScreen.__init__(self, self.list, session = self.session)
#self["config"].list = self.list
#self["config"].setList(self.list)
+ self["config"].l.setSeperation(300)
self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
{
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_videoenhancement.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_videotune.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_videomode.xml
-installdir = $(datadir)/meta/
+installdir = $(datadir)/meta
dist_install_DATA = plugin_wirelesslan.xml