[live] Weiterentwicklung 3.5.*

  • Unlängst ist mir aufgefallen, dass die Icons im Seitenmenü der Fernbedienung und des Web-Streamings – im Gegensatz zur Programmübersicht oder den Aufzeichnungen – nicht sauber zentriert sind:

    The content cannot be displayed because you do not have authorisation to view this content.

    The content cannot be displayed because you do not have authorisation to view this content.

    Der folgende Patch:

    • The content cannot be displayed because you do not have authorisation to view this content.

    … korrigiert dies:

    The content cannot be displayed because you do not have authorisation to view this content.

    The content cannot be displayed because you do not have authorisation to view this content.

    … und fixt auch einen Copy&Paste-Fehler von Patch 38b, der im Web-Streaming dazu geführt hat, dass bei Auswahl einer Senders dessen Programmübersicht aufgerufen wurde, anstatt den Sender fürs Streaming umzuschalten.

    Zudem habe ich die Menüleiste fürs Web-Streaming stilistisch der Menüleiste der Programmübersicht angepasst:

    The content cannot be displayed because you do not have authorisation to view this content.

    Den Gedanken, die auf beiden Seiten jeweils getrennt implementierte Komponente channels_selection in pageelems.ecpp zu konsolidieren, habe ich wieder verworfen. Eine solche Konsolidierung würde ziemlich viele zusätzliche Parameter erfordern. Außerdem wäre es wohl etwas seltsam, die fürs Seitenmenü genutzte Komponente stark parametrisiert aus pageelems.ecpp zu beziehen.

    Noch eine Frage an MarkusE: Beim Fix für 38b habe ich versucht, eine "hybride" Lösung zu finden, die notfalls auch ohne ECMAScript funktionieren sollte. Denn in dev-conventions.txt findet sich folgender Absatz:

    Quote

    Although all modern browsers support ECMAScript, users may opt to have
    scripting disabled. We thus need to make sure all functions Live wants
    to provide are accessible through links.

    Ich habe deshalb den Versuch unternommen, Live ohne ECMAScript benutzen zu wollen. Doch ohne ECMAScript funktioniert leider so gut wie nichts mehr, nicht einmal ein Programmwechsel per Auswahlbox aus dem Seitenmenü heraus; nur die Vor/Zurück-Links sind noch nutzbar. Macht es insofern überhaupt Sinn, diese Forderung weiter aufrecht zu erhalten?

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T @ 2.30 GHz, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.8.2 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, femon, live, markad, mlist, osdteletext, recsearch, remote, satip, screenshot, skinnopacity, streamdev, systeminfo, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • Kann man im Browser ECMAScript de-aktivieren, aber javascript aktiviert lassen?


    Könnte man ECMAScript für live aktiveren, aber für andere Internet-Seiten de-aktivieren? Falls ja, dann würde ich sagen, ECMAScript ist Voraussetzung für live. Wenn jemand dann ECMAScript für live de-aktiviert, dann funktioniert live eben nicht. Das wäre für mich OK. Wenn jemand IE verwendet, dann funktioniert live ja auch nicht ...

  • Letztlich habe ich jegliches Scripting abgeschaltet. Wenn Live dann streikt, ist das für mich kein Problem, wollte aber deine Meinung hierzu wissen.

    Sinnvollerweise sollten wir dann aber dev-conventions.txt dementsprechend korrigieren.

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T @ 2.30 GHz, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.8.2 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, femon, live, markad, mlist, osdteletext, recsearch, remote, satip, screenshot, skinnopacity, streamdev, systeminfo, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • Sinnvollerweise sollten wir dann aber dev-conventions.txt dementsprechend korrigieren.

    Ich habe mal dev-conventions.txt upgedatet. Javascript ist Voraussetzung für live.

  • #662 ist im git. Bitte testen.

    Außerdem im git:

    • Create timer, (de-)activate timer & searchtimer without refresh. Except refresh is needed to update timer conflicts
    • Und einige Korrekturen
  • Was mir zufällig aufgefallen ist:

    Code
    template <size_t N>
    inline cToSvConcat<N>& AppendHtmlEscapedAndCorrectNonUTF8(cToSvConcat<N>& target, cSv text, bool tooltip = false, const char* lf = nullptr) {

    Der Parameter tooltip hat innerhalb der Funktion keine Referenz, ist im Grunde genommen also überflüssig. Sollte man ihn deshalb nicht besser entfernen?

    Ich konnte in der Historie auch nicht nachvollziehen, warum er überhaupt eingeführt wurde, da er noch niemals im Code der Funktion in Erscheinung getreten ist. Folgender Patch:

    … lässt den Code nach wie vor fehlerfrei kompilieren:

    … und bei einem ersten schnellen Test sind mir bezüglich der Tooltips (natürlich) auch keine Unterschiede aufgefallen.

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T @ 2.30 GHz, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.8.2 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, femon, live, markad, mlist, osdteletext, recsearch, remote, satip, screenshot, skinnopacity, streamdev, systeminfo, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • Wenn Du einen Patch baust, der genau das macht (also diese Elemente mit /> anstelle von > schließt) und sonst nichts macht würde ich ihn übernehmen.

    Der Patch ist anbei. Weil es sich hierbei um eine Verbesserung der Code-Qualität handelt, was nach meinem Empfinden auch nicht-funktionale Änderungen mit umfassen darf, habe ich folgende Änderungen vorgenommen:

    • Alle sog. "void elements" habe ich einheitlich mit  /> abgeschlossen. Das heißt auch, dass ich dort ein Leerzeichen eingefügt habe, wo noch keines war, was heißt, dass sowohl > als auch /> durch  /> ersetzt wurden. Das erleichtert die Suche nach solchen Elementen.
    • Bei <img-Tags habe ich zudem fehlende alt-Attribute ergänzt und bei ein paar in Fallunterscheidungen falsch platzierte an die richtige Stelle gesetzt. Ohne ein alt-Attribut geben manche Accessibility-Tools (vor allem Screen-Reader) den Image-Link wieder, was bei uns (Icons, Poster) ja meistens keinen Sinn macht.
    • Falsche Einrückungen und seit Ewigkeiten auskommentierten HTML-Code habe ich auch gleich entfernt.
    • Ein paar weitere Kleinigkeiten, die mir ins Auge gefallen sind, habe ich ebenfalls korrigiert bzw. ergänzt, wie beispielsweise ein überzähliges <br /> am Ende des content-Abschnitts entfernt.
    • Die CHECKIF-Makros habe ich einheitlich als <{ ... }> ausgeführt.

    Das ist also etwas mehr, als oben zitiert. Aber wenn wenn ich schon etliche Stunden an Arbeit reinstecke, dann soll es sich auch gelohnt haben und der Code insbesondere einheitlicher gestaltet und formatiert sein als bisher. Ich hoffe, du kannst das nachvollziehen und übernimmst den Patch deshalb auch. Abgesehen von ein bisschen Zeilenversatz sollte der Patch auch mit Nr. 43 kompatibel sein.

    Zudem sollte man die Datei doc/mootools/mootools.v1.11.js noch löschen, die seit Migration auf MooTools 1.6 ja eigentlich nicht mehr benötigt wird.

    Files

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T @ 2.30 GHz, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.8.2 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, femon, live, markad, mlist, osdteletext, recsearch, remote, satip, screenshot, skinnopacity, streamdev, systeminfo, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • Was mir zufällig aufgefallen ist:

    Code
    template <size_t N>
    inline cToSvConcat<N>& AppendHtmlEscapedAndCorrectNonUTF8(cToSvConcat<N>& target, cSv text, bool tooltip = false, const char* lf = nullptr) {

    Der Parameter tooltip hat innerhalb der Funktion keine Referenz, ist im Grunde genommen also überflüssig. Sollte man ihn deshalb nicht besser entfernen?

    Ich konnte in der Historie auch nicht nachvollziehen, warum er überhaupt eingeführt wurde, da er noch niemals im Code der Funktion in Erscheinung getreten ist.

    Im git ist ein Update, ich habe den Parameter damit entfernt.


    Warum der Parameter eingeführt wurde: Als ich live übernommen habe, gab es in den Einstellungen noch eine Checkbox: "Use Ajax technology".

    • Falls nein, wurden die Browser Tooltips verwendet.
    • Falls ja, wurden die Mootools Tooltips verwendet.

    Und die Browser Tooltips brauchen ein "\n" für newline. Das "\n" für newline funktioniert aber bei den Mootools nicht, die brauchen html ("<br/>")...

    Inzwischen verwenden wir immer die Mootools Tooltips, damit ist der Parameter obsolet.

  • Danke für die Info und fürs Bereinigen. Anbei der Patch nach dem Rebase.

    Files

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T @ 2.30 GHz, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.8.2 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, femon, live, markad, mlist, osdteletext, recsearch, remote, satip, screenshot, skinnopacity, streamdev, systeminfo, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

    Edited once, last by SHofmann (September 7, 2026 at 1:31 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!