void addToString(const eServiceReference& ref) { // sorry.. at moment we dont show any directory.. or locked service in webif if (ref.isLocked() && eConfig::getInstance()->pLockActive()) return; eService *service = iface ? iface->addRef(ref) : 0; if (!(ref.data[0] == -1 && ref.data[2] != (int)0xFFFFFFFF)) { if (ref.flags & eServiceReference::isDirectory) result += "\n<" + getTag(mode, subm) + ">"; else result += "\n<service>"; result += "<reference>" + ref.toString() + "</reference>"; if (ref.descr) result += "<name>" + XMLify(filter_string(ref.descr), "XML") + "</name>"; else if (service) { result += "<name>" + XMLify(filter_string(service->service_name), "XML") + "</name>"; if (ref.type == eServiceReference::idDVB && !(ref.flags & eServiceReference::isDirectory)) result += "<provider>" + XMLify(filter_string(((eServiceDVB*)service)->service_provider), "XML") + "</provider>"; } if (ref.type == eServiceReference::idDVB && !(ref.flags & eServiceReference::isDirectory)) { const eServiceReferenceDVB& dvb_ref = (const eServiceReferenceDVB&)ref; eTransponder *tp = eTransponderList::getInstance()->searchTS( dvb_ref.getDVBNamespace(), dvb_ref.getTransportStreamID(), dvb_ref.getOriginalNetworkID()); if (tp && tp->satellite.isValid()) result += "<orbital_position>" + eString().setNum(tp->satellite.orbital_position) + "</orbital_position>"; } if (service) iface->removeRef(ref); if (listCont && ref.flags & eServiceReference::isDirectory) { getContent(mode, subm, ref, result, false); result += "\n</" + getTag(mode, subm) + ">"; } else result += "</service>"; } }
eString ref2string(const eServiceReference &r) { return httpEscape(r.toString()); }