VDR >= 2.4.X und Undelete

  • Hallo,

    da hier schon mehrfach über Probleme mit dem Undelete-plugin berichtet wurde, will ich doch mal einen Patch für den Core-VDR bereitstellen, der die Undelete-Funktion direkt im Aufzeichnungsmenü bereitstellt und den ich schon seit einiger Zeit bei mir ohne Probleme benutze.

    Wie funktioniert das:

    Solange keine gelöschten Aufnahmen vorliegen, ändert sich im Aufzeichnungsmenü nichts.

    Sobald gelöschte Aufnahmen vorliegen, übernimmt die sowieso schon mit mehrfacher Funktion belegte rote Taste das Umschalten in den Undelete-Modus.

    Zurück aus dem Undelete-Modus kommt man wieder mit der roten Taste (auch aus jedem Unterordner sofort) oder ganz normal wie aus jedem Unterordner mit der Zurück-Taste.

    Im Undelete-Modus stehen die Funktionen Undelete, Löschen (entgültiges Löschen) und Info zur Verfügung.

    kamel5

  • Die Funktion ist cool eingebaut :thumbup:vielleicht mag Klaus ja diese Anpassung :)

    Gruß utiltiy

    meine VDR

    vdr03: Antec Remote Fusion, Intel DH67BL, Celeron G1620, GT630, 2x 2GB DDR3 - Hynix, SDA SATA 40GB, SDB SATA 1.5TB, L4M Cine S2 [yaVDR/vdr4arch]
    vdr04: Antec Remote Fusion Micro, Intel DH67BL, Celeron G550, GT630, 2x 2GB DDR3 - Kingston, SDA SATA 160GB WD, SDB SATA 3TB WD Red, L4M Cine S2 [yaVDR/vdr4arch]


    VDR Projects

  • Hallo,

    ich habe den Undelete-Patch mal ein wenig überarbeitet.

    - Korrektur von Unstimmigkeiten bzgl. Button-Belegungen

    - Konfigurierbarer UNDELETE-Button

    Zum 2. Punkt:

    Da hier schon der Wunsch aufkam, die Funktion "Befehle" im Aufzeichnungs-Menü, auch bei Vorhandensein gelöschter Aufzeichnungen, bereit zu stellen, habe ich den roten Button jetzt konfigurierbar gemacht.

    Im Menü unter Einstellungen->OSD kann jetzt ein Timeout von 0-10(s) (0 entspricht aus) für den roten Button eingestellt werden. Außerdem kann eingestellt werden, welche Funktion zuerst angezeigt wird ("Befehle" oder "UNDELETE"). Der Timeout wird bei jedem Tastendruck zurück gesetzt.

    Das Anzeigen von "Befehle" erfolgt nur dann, wenn auch welche in der reccmds.conf vorhanden sind.

    Die Grundeinstellung des Patches ist so festgelegt, das sich kein Unterschied zum bisherigen Verhalten ergibt, also Timeout = 0, das bedeutet dauerhafte Anzeige von "UNDELETE" bei vorhandenen gelöschten Aufzeichnungen.

    Der Patch sollte auch weiterhin ab VDR-Version 2.4.0 passen.

    Viele Grüße

    kamel5

  • Es kam der Wunsch rein, den Patch zu integrieren. Allerdings gibt es ein paar rejects mit vdr-2.6.1.

    Ich habe versucht die Konflikte manuell aufzulösen. Ob das Ganze dann jetzt funktioniert ist eine andere Frage.

    Warum die Rejects überhaupt auftauchen ist mir nicht ganz klar geworden. Abgesehen von de_DE.po gab es noch kleinere Probleme in menu.c.

  • Eigentlich sollte es keine großen Unterschiede an dieser Stelle zwischen den Versionen geben.

    Ich schaue mir das aber trotzdem mal an.

    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.12 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Zabrimus , ich habe mir Deinen Patch mal angesehen, der scheint soweit i.O. zu sein und sollte auch funktionieren.

    Warum es Rejects in menu.c gab, kann ich auch nicht sagen, das hätte eigentlich durchlaufen müssen.

    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.12 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Zabrimus , ich habe mir Deinen Patch mal angesehen, der scheint soweit i.O. zu sein und sollte auch funktionieren.

    Warum es Rejects in menu.c gab, kann ich auch nicht sagen, das hätte eigentlich durchlaufen müssen.

    Danke für die Bestätigung. Dann lass ich den so drin.

    Aber menu.c ist mir immer noch ein Rätsel. Zumal ich einfach die Zeilen aus dem Patch nur noch einmal kopiert habe.

  • Zumal ich einfach die Zeilen aus dem Patch nur noch einmal kopiert habe.

    Genau so habe ich es auch gemacht.

    Im Endeffekt wissen wahrscheinlich nur die Entwickler von diff und patch, warum es mit einer neueren Version nicht geht. Wenn man genau hinsieht, sieht man, wenn man ein neues diff macht, das er an der Stelle, wo der erste Reject auftritt, aus einem größeren Patch 2 kleinere gemacht hat...

    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.12 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Hallo,

    im Anhang mal eine aktuelle Version des Undelete-Patches. Dieser sollte auch mit älteren VDR-Versionen funktionieren.

    carel , this patch should also fix the compilation error in skinsimple and skinlcarsng.

    Update:

    Dieser Patch enthält Bugs, bitte den von hier:

    kamel5
    January 22, 2025 at 3:04 PM

    benutzen.

    Grüße

    kamel5

  • kamel5 December 14, 2024 at 11:44 AM

    Changed the title of the thread from “VDR-2.4.X und Undelete” to “VDR >= 2.4.X und Undelete”.
  • Hallo kamel5,

    hab den undelete-Patch fuer vdr-2.7.3 jetzt ausprobiert. Zunaechst hatte es nicht funktioniert, nach Neustart klappt alles soweit wie gewohnt. Ich kann nicht mehr nachvollziehen, was da passiert ist.

    Wie ist das mit dem Timeout in den Einstellungen gedacht? Ich kann keinen Unterschied feststellen, egal ob ich 1 oder 10 einstelle. Hat das irgendwas mit dem Skin zu tun, oder irgendwelchen Einstellungen dort?

    Gruss,
    S:oren

  • Wie ist das mit dem Timeout in den Einstellungen gedacht? Ich kann keinen Unterschied feststellen, egal ob ich 1 oder 10 einstelle. Hat das irgendwas mit dem Skin zu tun, oder irgendwelchen Einstellungen dort?

    Der Button "UNDELETE" wird nur angezeigt, wenn es tatsächlich eine gelöschte Aufnahme gibt, sonst ist der rote Button mit "Befehle" belegt, auch wenn der Kursor auf einem Verzeichnis steht.

    Unter Einstellungen->OSD kann man, für den Fall, das eine gelöschte Aufnahme existiert (die gibt es ja nur für eine begrenzte Zeit), einstellen, ob zuerst "UNDELETE" oder "Befehle" angezeigt wird. Nach dem Timeout sollte dann das jeweils Andere angezeigt werden.

    Beispiel:

    "Timeout" = 3 und "Wird zuerst angezeigt" = Befehle und es gibt eine gelöschte Aufnahme:

    Wird jetzt das Aufzeichnungsmenü aufgerufen und der Kursor befindet sich auf einer Aufzeichnung, ist der rote Button mit "Befehle" belegt. Nach 3sec. wird dann automatisch, wenn man zwischendurch keine andere Funktion benutzt, der Button mit "UNDELETE" belegt.

    Das Timeout legt fest, wie lange es dauert, bis der Button die Funktion ändert.

    Der Skin hat keinen Einfluß auf diese Funktion.

    Sollte das so nicht klappen, müsste ich mir den Patch nochmal ansehen.

    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.12 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Vielen Dank erstmal ueberhaupt fuer diesen Patch. Die Umstellung von vdr-2.6.9 auf 2.7.3 generell ist ja nicht trivial (das hatte ich mir vorgenommen).

    Der Button "UNDELETE" wird nur angezeigt, wenn es tatsächlich eine gelöschte Aufnahme gibt, ...

    Soweit klar und auch gewuencht. Das klappt jetzt. Kann aber sein, dass ich da zunaechst (wo es nicht funktioniert hatte) "am Anfang anzeigen" nicht auf "UNDELETE" hatte.

    sonst ist der rote Button mit "Befehle" belegt

    Bei mir mit "Wiedergabe".

    auch wenn der Kursor auf einem Verzeichnis steht.

    Ob Verzeichnis oder Aufnahme ist egal, der rote Button aendert sich da bei mir nicht. Konfiguriere ich "Red Button UNDELETE timeout(s)" auf "aus", dann steht beim Verzeichnis "Öffnen". Und es wird auch das Verzeichnis geoeffnet (und nicht die Uebersicht mit geloeschten Aufnahmen), wenn ich den roten Knopf auf einem Verzeichnis druecke und eigentlich auf dem Button "UNDELETE" steht.

    Unter Einstellungen->OSD kann man, für den Fall, das eine gelöschte Aufnahme existiert (die gibt es ja nur für eine begrenzte Zeit), einstellen, ob zuerst "UNDELETE" oder "Befehle" angezeigt wird. Nach dem Timeout sollte dann das jeweils Andere angezeigt werden.

    Wenn ich hier in den Einstellungen etwas aendere, dann stuerzt der vdr gelegentlich(?) ab.

    Der Skin hat keinen Einfluß auf diese Funktion.

    Kann sich das OSD einfach so zeitgesteuert aendern, ohne dass der Benutzer irgendwas drueckt oder das Skin-Plugin da irgendwas mit einem eigenen Thread macht?

    Sollte das so nicht klappen, müsste ich mir den Patch nochmal ansehen.

    Anscheinend fehlt irgendwas zum Teil "Befehle". Eigentlich erwarte ich mir von dem Patch nur das Undelete, welche Befehle sollten denn sonst noch moeglich sein?


    Ich will nicht ausschliessen, dass irgendwelche anderen Patches bei mir hier einen Einfluss haben. Eigentlich sollten das aber alles unabhaengige Sachen sein.
    (Ich habe noch ein paar 'Standard-Patches' und Anpassungen fuer die hdff, siehe https://github.com/s-moch/vdr/commits/v2.7.3-mo/ ).

    Gruss,
    S:oren

  • Bei mir mit "Wiedergabe".

    Anscheinend fehlt irgendwas zum Teil "Befehle".

    Dann hast Du wahrscheinlich keine "reccmds.conf" im VDR-config-Verzeichnis angelegt, dann wird nicht "Befehle" sondern "Wiedergabe" oder "Öffnen" angezeigt. In der "reccmds.conf" kann man Aufnahmen bezogene Befehle eintragen, im VDR-MANUAL müsste das beschrieben sein.

    Ob Verzeichnis oder Aufnahme ist egal, der rote Button aendert sich da bei mir nicht. Konfiguriere ich "Red Button UNDELETE timeout(s)" auf "aus", dann steht beim Verzeichnis "Öffnen". Und es wird auch das Verzeichnis geoeffnet (und nicht die Uebersicht mit geloeschten Aufnahmen), wenn ich den roten Knopf auf einem Verzeichnis druecke und eigentlich auf dem Button "UNDELETE" steht.

    Das habe ich gerade mal probiert und da scheint es tatsächlich noch einen Bug zu geben.

    Stell mal bitte vorerst ein Timeout ein, der kann durchaus größer sein, dann sollte auch "UNDELETE" angezeigt zu werden.

    Wenn ich hier in den Einstellungen etwas aendere, dann stuerzt der vdr gelegentlich(?) ab.

    Das hatte ich eigentlich noch nie.

    Kann sich das OSD einfach so zeitgesteuert aendern, ohne dass der Benutzer irgendwas drueckt oder das Skin-Plugin da irgendwas mit einem eigenen Thread macht?

    Ja, das geht. Der Mainmenu-Thread ruft solange ein Menü offen ist, sekündlich die Funktion "ProcessKey()" auf. Wenn man dort etwas unterbringt, dann funktioniert das wie zeitgesteuert. Das sind dann zwar nur ca. Zeiten in sec, für so einen Fall reicht das aber.

    Das ganze hat übrigens nichts mit dem Skin zu tun, der zeigt es dann nur an.

    Ich habe noch ein paar 'Standard-Patches' und Anpassungen fuer die hdff

    Deine zusätzlichen Patches sollten keinen Einfluss auf "UNDELETE" haben.

    Ich schaue mir das in der nächsten Woche nochmal an, da fehlt sicherlich nicht viel...

    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.12 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Dann hast Du wahrscheinlich keine "reccmds.conf" im VDR-config-Verzeichnis angelegt

    Das habe ich in der Tat noch nie benutzt. An sich ist das dann unabhaengig von Undelete, nur die Beschreibung in den Einstellungen passt dann nicht.

    Stell mal bitte vorerst ein Timeout ein, der kann durchaus größer sein, dann sollte auch "UNDELETE" angezeigt zu werden.

    Es wird UNDELETE angezeigt, allerdings dann doch das Verzeichnis mit den Aufnahmen in diesem Verzeichnis geoeffnet, nicht die Uebersicht der geloeschten Aufzeichnungen, wenn man den Knopf drueckt. Kein grosses Problem, erstmal.

    Das hatte ich eigentlich noch nie.

    Die Strings bei der Einstellung der Button-Belegung fehlen auch, es wird Muell angezeigt. Da stimmt irgendwas mit den Pointern nicht, vielleicht mit der Uebersetzung.

    Der Mainmenu-Thread ruft solange ein Menü offen ist, sekündlich die Funktion "ProcessKey()" auf.

    OK, interessant. Wieder etwas gelernt.

    Ich schaue mir das in der nächsten Woche nochmal an, da fehlt sicherlich nicht viel...

    Vielen Dank! Ist nicht eilig.


    Gruss,
    S:oren

  • S:oren,

    ich habe Dir mal einen zusätzlichen Patch angehängt, der die aktuellen Probleme beheben sollte, sowohl das mit dem Timeout, als auch das mit den Übersetzungen. Ich habe auch die Beschriftung im Setup-Menü nochmal angepasst, vielleicht ist es so eindeutiger.

    Wenn das bei Dir klappt, würde ich dann einen neuen Gesamtpatch machen.

    Die Strings bei der Einstellung der Button-Belegung fehlen auch, es wird Muell angezeigt. Da stimmt irgendwas mit den Pointern nicht, vielleicht mit der Uebersetzung.

    Das habe ich auch noch nicht 100%ig verstanden, wenn man das so im Setup macht:

         const char *buttonFirst[2];
         buttonFirst[0] = tr("Button$UNDELETE");
         buttonFirst[1] = tr("Key$Commands");
         Add(new cMenuEditStraItem(tr("Setup.OSD$Displayed first (UNDELETE or Commands)"), &data.ButtonFirst, 2, buttonFirst));
    dann gibt es die Probleme mit dem Müll.

    Wenn man die Zeile:

    const char *buttonFirst[2];

    in den Header verlegt, funktioniert es. Naja, ich habe das jetzt zu einer Ja/Nein Frage gemacht.

    Grüße

    kamel5

  • Vielen Dank kamel5 !

    Ist schon spaet, aber ich wollte das wenigstens noch kurz testen, wenn Du mir schon einen neuen Patch baust.

    Die Einstellung stuerzt nicht mehr ab (soweit ich das testen konnte), es gibt dort auch keinen Datenmuell mehr in der Anzeige.
    Wenn UNDELETE auf dem Knopf steht, dann kommt auch die Uebersicht geloeschter Aufnahmen, egal ob der Cursor auf einem Verzeichnis oder einer Aufnahme steht.
    Soweit alles gut.

    Aber meine urspruengliche Frage, wie das mit dem Timeout gedacht ist, ist immer noch unklar. Stelle ich den Timeout auf Null, dann kommt nie UNDELETE auf dem Knopf. Stelle ich etwas anderes ein, egal was, dann steht immer UNDELETE da, wenn es geloeschte Aufnahmen gibt. Die Einstellung 'UNDELETE zuerst' hat keinen Einfluss. Einen Timeout mit irgendwelchen Aenderungen sehe ich nicht.

    An sich habe ich kein Problem mit der angebotenen Funktionalitaet, ich kann die Moeglichkeit des Undelete ein- und ausschalten, und dann funktioniert es auch korrekt. Das reicht mir eigentlich so.
    Aber einen Timeout mit automatischer Aenderung der Funktion des Knopfes sehe ich nicht. Weil es vielleicht ohnehin keinen Sinn ergibt ohne Alternativ-Befehle zum UNDELETE. Nur die Einstellung ist verwirrend.

    Gruss,
    S:oren

  • aber ich wollte das wenigstens noch kurz testen

    Danke, mach Dir aber keinen Streß deswegen.

    Aber meine urspruengliche Frage, wie das mit dem Timeout gedacht ist

    Jetzt, wo Du das nochmal ansprichst, musste ich doch noch mal in meinen Erinnerungen graben, den Patch habe ich ja schon vor Jahren gemacht.:)

    Der ursprüngliche Ansatz war:

    Fall 1 (ohne "reccmds.conf": (so wie bei Dir)

    Die rote Taste ist ja bei Aufnahmen mit "Wiedergabe" und bei Verzeichnissen mit "Öffnen" belegt. Wenn es jetzt eine gelöschte Aufnahme gibt, wird die rote Taste, egal ob bei einer Aufzeichnung oder einem Ordner, "immer" (unabhängig von einem Timeout") mit "UNDELETE" belegt. Die ursprüngliche Funktion gibt es dann nicht mehr, da die auch über "OK" realisierbar ist.

    Fall 2 (mit "reccmds.conf":

    Die rote Taste ist bei Verzeichnissen mit "Öffnen" und bei Aufzeichnungen mit "Befehle" belegt (eine Belegung mit "Wiedergabe" gibt es dann nicht). Wenn es jetzt eine gelöschte Aufnahme gibt, wird die rote Taste bei Verzeichnissen immer mit "UNDELETE", und bei Aufzeichnungen, abhängig von den Einstellungen im Setup entweder immer oder "Timeout"-abhängig mit "UNDELETE", bzw. vor oder nach dem "Timeout" mit "Befehle" belegt. Deshalb stand da im Setup auch "Wird zuerst angezeigt (UNDELETE oder Befehle)".

    Stelle ich den Timeout auf Null, dann kommt nie UNDELETE auf dem Knopf.

    Das sollte nicht so sein. Ich teste das bei mir noch mal.

    dann steht immer UNDELETE da, wenn es geloeschte Aufnahmen gibt. Die Einstellung 'UNDELETE zuerst' hat keinen Einfluss. Einen Timeout mit irgendwelchen Aenderungen sehe ich nicht.

    Das wäre so richtig, siehe Fall 1.

    Nur die Einstellung ist verwirrend.

    Das stimmt. Vielleicht sollte ich diese Optionen im Setup gar nicht erst anbieten, wenn es keine "reccmds.conf" gibt.

    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.12 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Stelle ich den Timeout auf Null, dann kommt nie UNDELETE auf dem Knopf.

    Das ist wirklich seltsam. Ich habe das gerade bei mir nochmal getestet. Wenn ich keine "reccmds.conf" habe, dann wird sofort nach dem Löschen einer Aufzeichnung die rote Taste mit "UNDELETE" belegt, sowohl bei einer Aufzeichnung, als auch bei einem Verzeichnis. Und die Einstellungen im Setup haben keinen Einfluss darauf. --> Fall 1.

    Ich überlege mir jetzt nochmal, wie ich das mit den Optionen im Setup mache, und mache dann wieder einen Gesamtpatch.

    Vielleicht passt es ja dann ...

    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.12 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Das ist wirklich seltsam.

    Hab es gerade nochmal getestet. Jetzt kommt das UNDELETE auch bei mir immer, wenn man eine Aufnahme loescht, auch mit Timeout Null. Wirklich seltsam.

    Der VDR-Rechner wurde seit gestern neu gestartet. Aber den VDR-Service hatte ich natuerlich gestern auch neu gestartet, mit dem neuen Patch.
    Hat das irgendwas damit zu tun, ob beim Start des vdr eine geloeschte Aufnahme vorhanden ist? Oder fehlt da irgendwo eine Initialisierung?

    Gruss,
    S:oren

  • Hat das irgendwas damit zu tun, ob beim Start des vdr eine geloeschte Aufnahme vorhanden ist? Oder fehlt da irgendwo eine Initialisierung?

    Das Einzige, was ich mir da vorstellen kann, das der VDR mit dem Einlesen der Aufnahmen noch nicht fertig war. Das Feststellen, ob es gelöschte Aufnahmen gibt, wird über eine Core-VDR Funktion realisiert. Ich kann aber auch nicht sagen, ob gelöschte Aufnahmen einen Neustart überleben, das habe ich noch nicht getestet. Die Initialisierung sollte auch i.O. sein, habe ich gerade nochmal überprüft.

    Im Anschluss stelle ich dann einen aktuellen Gesamtpatch bereit, der zusätzlich noch eine Anpassung am Setup enthält, die "Undelete"-Optionen werden nur noch angezeigt, wenn es auch eine "reccmds.conf" gibt, ansonsten macht das ja keinen Sinn.

    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.12 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

Participate now!

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