ein paar Fragen zur API dees VDR

  • Hallo zusammen - mit dem EpgHandler gibt es einen schönen Anker zum EPG und Änderungen daran


    Ich vermute mal, dass es das für Channels, Timer, Recordings nicht gibt oder?


    - Wie bekomme ich in einem plugin Änderungen an diesenObjekten mit?
    - Wie/Wo muss ich mich für timer und chanells einklinken?


    belibt derzeit eine andere Wahl, als pollender Weise die Listen durchzuackern?
    Oder macht es Sinn eine dem EpgHandler gleiche Funktionalität für Timer, Channels und Recordings zu implementieren - dann müsste ich aber nach meinen Untersuchungen im vdr selbst eingreifen oder?

  • Oder macht es Sinn eine dem EpgHandler gleiche Funktionalität für Timer, Channels und Recordings zu implementieren - dann müsste ich aber nach meinen Untersuchungen im vdr selbst eingreifen oder?


    So als absoluter Amateur würde ich sagen Du vergleichst hier Äpfel mit Birnen. Die epghandler API wir ja nicht angetriggert, sondern fragt einen registrierten EPG Handler ob er Änderungen zu einem EPG Event hat, der eben per DVB reinkam, so mein einfaches Verständnis.


    Was Du möchtest, ist doch in Teilen bereits in den Plugins epgsearch und/oder extrecmenu umgesetzt worden. epgsearch kann den Programm- und die Timerliste ersetzen, extrecmenu, die Aufnahmen-Liste ...


    Regards
    fnu

    HowTo: APT pinning

  • Das ist ziemlich genau das Problem: EPgHandler ist der Apfel - und für alles andere muss man Birnen essen - ich will nicht die timer / channels ersetzen, ich will Änderungen daran mitbekommen. Das wären dannn Äpfel wie beim EpgHandler..

  • So mal schnell aus dem Gedächnis -> "cStatus". Schau mal im VDR Code (status.h (so aus dem Gedächnis))


    cu

  • schon besser - aber auch das ist zum einen nur pollend zu nutzen so wie ich die sache sehe und deckt auch nicht "alles" ab.


    Ich hab gestern mal noch ein bischen im Code gestöbert und fürchte, das sowas noch fehlt. So schwer (umzusetzen) sieht es aber gar nicht aus - schaun mer mal.

  • schon besser - aber auch das ist zum einen nur pollend zu nutzen so wie ich die sache sehe


    Ne, cStatus pollt nicht. Schau doch mal in andere Plugins die das verwenden.


    Edit: habe gerade gesehen das der VDR auch nen status Demoplugin mitbringt.


    cu

  • Moin!


    Änderungen an den Timern kannst du über cStatus nicht wirklich mitbekommen, sondern nur Änderungen an der Timer-Liste (add, ins, del). Greppe mal nach "MsgTimerChange".
    Wenn irgendein Plugin z.B. SetAux eines Timers aufruft, wirst du das nicht mitbekommen. Und da einen Hook einzubauen, ist auch nicht sinnvoll, da epgsearch z.B. temporäre Timer-Objekte erstellt (ich schätze mal zum Vergleich usw.), die gleich darauf wieder gelöscht werden. Mit denen willst du sicherlich nichts zu tun haben. :)


    Bevor nach einer Lösung gesucht wird: Was ist denn dein Problem? Wozu möchtest du die Änderungen verfolgen?


    Lars.

  • Ne, cStatus pollt nicht. Schau doch mal in andere Plugins die das verwenden.


    Edit: habe gerade gesehen das der VDR auch nen status Demoplugin mitbringt.


    cu


    Mir ist KLAR, dass cStatus nicht pollt - aber ich müsste pollen um "auf dem laufenden" zu bleiben. die "Lösung" scheidet aus.



    Ich muss/will Änderungen an Timern mitbekommen - mir reichen die "offiziellen" / "nicht-temporären". Dazu wäre ein Hook in cTimer / cTimers a la EpgHandler nötig denke ich. Pollen ist "NoGo"!
    Mit dem Hook dann festzustellen, ob der Timer in der Liste der "offiziellen" Timer ist, ist auch beherrschbar.

  • Moin!


    Ich muss/will Änderungen an Timern mitbekommen - mir reichen die "offiziellen" / "nicht-temporären". Dazu wäre ein Hook in cTimer / cTimers a la EpgHandler nötig denke ich. Pollen ist "NoGo"!
    Mit dem Hook dann festzustellen, ob der Timer in der Liste der "offiziellen" Timer ist, ist auch beherrschbar.


    Dass man da einen Hook einbauen könnte, mit dem man alle Änderungen mitbekommt, ist klar.
    Aber wozu brauchst du diese Änderungen in "Echtzeit"? Das war meine Frage. :)


    Eventuell ist es ja sinnvoller, in regelmäßigen Abständen einfach über die Liste zu laufen. Aber um das beurteilen zu können, musst du mehr zum Use-case sagen.


    Zu cStatus:
    Wenn du eine Klasse erstellst, die von cStatus abgeleitet ist, dann musst du nicht pollen, da deine Funktion "TimerChange" immer dann aufgerufen wird, wenn sich etwas ändert. Den entsprechenden Timer bekommst du da ja gleich mit.


    Lars.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!