[ANNOUNCE] vdr-osdserver 0.0.1

  • Hallo Portal,


    Mein neuestes Plugin-Projekt hat seinen ersten Meilenstein erreicht und erlaubt erste Anwendung, daher ist es Zeit, es vorzustellen:


    OSDServer ist ein Plugin, dass es externen Programmen ermöglicht, das OSD und die Menüsysteme des VDR zu benutzen. Der Zugang erfolgt über TCP/IP und eine einfache Skriptsprache, wobei die Sprache bewusst auf die Benutzung durch Perl-Programme und Shell-Skripte ausgelegt ist. Bisher waren interaktive VDR-Anwendungen weitgehend C++-Programmierern vorbehalten, mit diesem Plugin können auch reine Skriptprogrammierer das OSD nutzen.


    Version 0.0.1 besitzt noch einen minimalen Befehlssatz zur Erzeugung einfacher Menüs und OSD-Meldungen, kann aber bereits zur Benutzer-Interaktion genutzt werden. Ein Beispielprogramm in Perl- und in Bash-Version ist beigefügt. Diese Plugin-Version dient primär als erste Testversion und um Feedback für die zukünftige Entwicklung zu erhalten. Komplexere Menüs und Dialogelemente folgen in späteren Versionen.


    Download: http://www.udo-richter.de/vdr/osdserver.html



    Gruß,


    Udo

  • Moin Udo!


    Das klingt ja extrem g**l!!! Sowas habe ich (als C-Noop) schon lange gesucht! Werde es per Gelegenheit mal testen! :]


    Gruß


    Toxic

    Registrierter VDR-User #1275


    VDR-Server: Proxmox 7.1 - LXC Container - Debian 11.5 - eTobi-VDR 2.6.0

    DVB-Hardware: Digital Devices - Cine S2 V5.5 und V6

    VDR-Clients: FireTV Sticks 2 bis 4K Max und Kodi 19.4

  • Urig


    ...meinen :respekt und Dank !!


    Damit werden viele Dinge möglich, die sich z.Z. nur schwer realisieren lassen.


    -> Streaming inklusive OSD ohne dass xine-liboutput/xine oder streamdev-client benötigt werden
    -> Spzialfall: Integration des VDR in mythTV
    ....


    Gruß
    Wicky

  • Zitat

    Original von Wicky
    ...
    -> Streaming inklusive OSD ohne dass xine-liboutput/xine oder streamdev-client benötigt werden
    ...


    Dafür habe ich mal das RemoteOSD in meine Sammlung aufgenommen! Hast du dir das mal angeschaut!


    Gruß


    Toxic

    Registrierter VDR-User #1275


    VDR-Server: Proxmox 7.1 - LXC Container - Debian 11.5 - eTobi-VDR 2.6.0

    DVB-Hardware: Digital Devices - Cine S2 V5.5 und V6

    VDR-Clients: FireTV Sticks 2 bis 4K Max und Kodi 19.4

  • Zitat

    Original von LarsAC
    Mmmh, liegt hier bei mir schon einige Monate in der Schubslade, als Teil einer PDA-Fernbedienung...


    Schade, daß es nur bei Dir rumliegt... :schiel

    Hardware: Gigabyte GA-970A-D3, AMD Athlon II X2 235e, 4GB RAM, Zotac GeForce 210 Synergy Edition 1GB, Corsair Force3 60GB SSD, Mystique SaTiX-S2 Dual, 6.4" TFT, Atric IR Einschalter Rev.5, Logitech Harmony 900, Samsung LE46A789 full HD LCD, Denon AVR-1910, USB Atmo-Light von Slime
    Software: yaVDR 0.5
    Streaming Client 1: Hauppauge MediaMVP
    Streaming Client 2: Telegant TG100 (wenn ich mal irgendwann die Zeit finde das UPnP-Plugin zu testen)

  • Zitat

    Streaming inklusive OSD ohne dass xine-liboutput/xine oder streamdev-client benötigt werden
    Spzialfall: Integration des VDR in mythTV
    Teil einer PDA-Fernbedienung...


    hmmmh? Ist meine Phantasie zu begrenzt?


    Ok, nur zur Sicherheit erklär ich noch mal, was das Plugin kann/können soll, und was nicht.


    OSDServer erlaubt es einem externen Programm auf dem VDR-Rechner oder einem anderen Rechner, Nachrichten zu senden (wie SVDRP MESG, nur besser), Menüs zu öffnen, und so mit dem Benutzer vor dem Fernseher zu interagieren. Später sollen weitere Menü-Features wie die diversen Eingabefelder, beschriftete Farbtasten, Menü-Labels, Menü-Spalten, Untermenüs, volle Fernbedienungs-Tastenunterstützung und Text-Scroll-Menüs dazu kommen. Sehr viel später vielleicht grafische OSDs mit Zeichenfunktionen.


    Was OSDServer NICHT ist:
    - Eine Möglichkeit, das OSD von VDR wo anders als auf dem VDR primary device anzuzeigen
    - Irgend etwas, was mit dem mpeg-Video zu tun hat
    - Ein Anzeigemodul für beliebige grafische Darstellung (es gelten auf jeden Fall die Limitierungen der FF DVB Karten, auf absehbare Zeit gibt es sowieso nichts grafisches.)



    Zitat

    Mmmh, liegt hier bei mir schon einige Monate in der Schubslade


    Ich weiß nicht, was dein Plugin leistet, vermute aber erst mal, dass es wohl nicht mithalten kann. OSDServer ist trotz des knappen Funktionsumfangs bereits jetzt >2700 Zeilen schwer. Die Komplexität kommt daher, dass TCP/IP jenseits von SVDRP in VDR nur sinnvoll in einem Thread funktionieren kann, und OSD-Kontrolle eben gerade nicht in einem Thread funktioniert.



    Zitat

    kann mit dem momentanen stand auch schon ein hauptmenue-eintrag erstellt werden ?


    Nein, das wäre dynamisch zur Laufzeit (und natürlich in beliebiger Anzahl) auch nicht ganz einfach.
    Du kannst aber ein Skript im Befehle-Menü hinterlegen, das Skript im Hintergrund (mit at oder &) starten, und dann von diesem Skript aus das OSD nach belieben nutzen.


    Langfristig überlege ich aber, ob ich ein eigenes Befehle-Menü in das Plugin einbaue, das das VDR-eigene ersetzt und ergänzt, hauptsächlich, weil man einem Skript so gleich eine Kommunikationsverbindung zu OSDServer mitgeben kann, ohne dass eine TCP/IP-Verbindung nötig ist. Bei der Gelegenheit kann man dann gleich Hintergrundausführung, Untermenüs und ähnliches mit einbauen.


    Gruß,


    Udo

  • Hallo!


    Testen ist ja schön und gut, aber du hast nicht zufällig mal mit einem GCC 2.95.4 getestet, oder? ;)


    Bekomme da einen kleinen Fehler:


    Ne Idee?


    Gruß


    Toxic

    Registrierter VDR-User #1275


    VDR-Server: Proxmox 7.1 - LXC Container - Debian 11.5 - eTobi-VDR 2.6.0

    DVB-Hardware: Digital Devices - Cine S2 V5.5 und V6

    VDR-Clients: FireTV Sticks 2 bis 4K Max und Kodi 19.4

  • Zitat

    Original von Urig


    Ich weiß nicht, was dein Plugin leistet, vermute aber erst mal, dass es wohl nicht mithalten kann. OSDServer ist trotz des knappen Funktionsumfangs bereits jetzt >2700 Zeilen schwer.


    Wow, Du hast ja eine richtig diplomatische Art zu diskutieren, und das wo Du nicht mal kennst, worüber Du diskutierst. Vielleicht ist Deine Fähigkeit zu codieren ja ähnlich vage und das Plugin darum > 2700 Zeilen schwer?


    Brauchst Dir nicht die Mühe machen zu antworten, ich hatte Deine Ankündigung eh falsch verstanden und mein Code macht was anderes, insofern erledigt sich eh jegliche Diskussion.


    Lars

  • Zitat

    Original von Toxic-Tonic
    Testen ist ja schön und gut, aber du hast nicht zufällig mal mit einem GCC 2.95.4 getestet, oder? ;)


    ... und nächste woche zeigen wir wie man sein handy mit einem faustkeil reparieren kann ...


    Kaum hat jemand ein "neues" geiles VDR plugin, kommen schon die beschwerden, das es mit den uralt tools nicht läuft.


    :lol2


    Peter

    Mein anderer VDR ist (auch) ein EPIA
    1)VIA M10000-Nehemiah, 160+120G Samsung; NEC 1300A; YY A106; LCD20x4 ...
    2) ctvdr+e-tobi ; C3M266+1,2GHz-Nehmiah; 160G Samsung + 4x500G Seagate SATA; NEC3500; TT-Case; DVB-S 1.3+4MB + Nova ; gLCD 240x128 ...
    . . .TB rulez. . .

    Einmal editiert, zuletzt von PeterD ()


  • Das wäre meine nächste Frage gewesen! ;)


    Ich bin es ja zugegebener maßen auch leid, aber die Linvdr-Gemeinde ist eben doch ziemlich groß und da kommt man eben nicht so leicht drumherum! Allerdings habe ich nix von Beschwerde geschrieben, sondern höflich gefragt! Wenn der Lord z.B. sagt, das er die alte Version bei Burn nicht mehr unterstützen kann, oder will akzeptiere ich das!Vielleicht hilft hier aber auch eine kleine Anpassung! Ich kann als "Nicht-Programmierer" den Aufwand nicht abschätzen, den solche Anpassungen verursachen!


    Gruß


    Toxic

    Registrierter VDR-User #1275


    VDR-Server: Proxmox 7.1 - LXC Container - Debian 11.5 - eTobi-VDR 2.6.0

    DVB-Hardware: Digital Devices - Cine S2 V5.5 und V6

    VDR-Clients: FireTV Sticks 2 bis 4K Max und Kodi 19.4

  • Hallo Udo,


    super Plugin und ich bin schon gespannt wann die ersten Updates folgen ;) .


    Zitat

    Original von Urig
    Diese Plugin-Version dient primär als erste Testversion und um Feedback für die zukünftige Entwicklung zu erhalten. Komplexere Menüs und Dialogelemente folgen in späteren Versionen.


    Zitat

    Original von Urig
    Später sollen weitere Menü-Features wie die diversen Eingabefelder, beschriftete Farbtasten, Menü-Labels, Menü-Spalten, Untermenüs, volle Fernbedienungs-Tastenunterstützung und Text-Scroll-Menüs dazu kommen.


    Auf beschriftete Farbtasten, volle Fernbedienungs-Tastenunterstützung, Text-Scroll-Menüs und Eingabefelder warte ich gerne ;) , derzeit versuche ich dies auf der klassischen C++ Schiene und komme damit leider nicht sehr schnell voran :( .
    C++ und die VDR Programmierung ist mangels Dokumentation für einen Anfänger schon ziemlich schwierig, aber ich habe noch nicht aufgegeben. Ich befürchte oder besser ich hoffe das du mit deinem OSDServer schneller voran schreitest als ich mit meinen bescheidenen Plugin-Versuch (Menü aufbauen + Submenü, Text darstellen, Bedienung und Eingabe mit der Fernbedienung).


    Ich habe mit meinen Mini-Plugin-Versuch jetzt selbst erleben können wie Zeitaufwendig das ganze ist :( .
    Deshalb bin ich sehr begeistert das man dies "bald" auch mit Scriptsprachen hinbekommen kann, OSD Ein- und Ausgaben zu steuern :) (obwohl die Scriptsprachen auch nicht weniger komplex sind (für mich z.B. Perl)).


    Was meinst du im Bezug auf den OSDServer mit Untermenüs?
    Derzeit kann man doch schon Menüs darstellen und schliessen und somit obliegt es doch dem Script die Menüebene zu verwalten (bzw. sich zu merken)?
    Ich stelle mir das so vor:
    Script erstellt ein Menü (Hauptmenü) --> ich wähle einen Menüpunkt aus --> das Menü wird geschlossen --> das Script erstellt/baut einen neues Menü (Submenü) auf --> usw ?
    Ich habe es zwar bis jetzt nicht selbst auf Basis deines Examplescript getestet, aber dies müste doch jetzt schon funktionieren?


    Zitat

    Original von Urig


    Nein, das wäre dynamisch zur Laufzeit (und natürlich in beliebiger Anzahl) auch nicht ganz einfach.
    Du kannst aber ein Skript im Befehle-Menü hinterlegen, das Skript im Hintergrund (mit at oder &) starten, und dann von diesem Skript aus das OSD nach belieben nutzen.


    Ich benutze das Submenü-Patch vom Setup-Plugin um meine eigene Menüstruktur im VDR per "XML" zu bauen, und dort kann man als Menüpunkte auch Commands definieren.
    Damit kann dann per Hauptmenü wunderbar ein Script (per at) starten und an den OSDServer senden.


    Was auch jetzt schon wunderbar mit dem OSDServer funktioniert --> ein Script zum OSDServer zu senden bei einem laufenden z.B. MP3 Plugin :) --> der OSDServer baut das Menü auf und beim beenden wird wieder das laufende MP3(ng)-Plugin angezeigt.
    Dieses Verhalten hatte sich doch schon jemand mal hier im Board "gewünscht" --> SVRDP Meldungen bei einem aktiven Plugin.


    Ich werde mich demnächst mal näher mit der jetzigen Version des OSDServer und der Scriperstellung auseinander setzen, muss mir halt nur noch überlegen was ich machen will/kann ;) .


    Gruß,
    Chuck

    1- yavdr 0.5 - DVB-C
    1- VDR-1.7.14 - Xine Pugin - XBMC - DVB-C
    2- Activy 300 mit Gen2VDR V2

  • Zitat

    Testen ist ja schön und gut, aber du hast nicht zufällig mal mit einem GCC 2.95.4 getestet, oder? ;)


    Nein, ich verwende nur noch GCC-4.1. Der 2.95er Anachronismus ist vor über 5 Jahren vom GCC-3 abgelöst worden. Damals war Kernel 2.4.6 aktuell - verwendet den auch noch jemand? ;)



    Zitat

    osdobjects.c: In method `cOsdServerOsdItem::cPrivateOsdItem::cPrivateOsdItem(cOsdServerOsdItem *)':
    osdobjects.h:205: `char * cOsdServerOsdItem::text' is private
    osdobjects.c:133: within this context


    Zur Entschuldigung des 2.95er kann ich allerdings ausnahmsweise nicht anhand des C++-Standards erklären, warum der 4.1er das akzeptiert...


    Der angehängte Diff sollte das Problem beheben.



    Zitat

    Was meinst du im Bezug auf den OSDServer mit Untermenüs?
    Derzeit kann man doch schon Menüs darstellen und schliessen und somit obliegt es doch dem Script die Menüebene zu verwalten (bzw. sich zu merken)?


    Klar, man kann einfach ein neues Menü als Ersatz öffnen. Nach VDR-Art gibt es aber ausdrücklich Untermenüs, die man per Zurück-Taste wieder verlassen kann. Dabei ist das übergeordnete Menü nur vorübergehend ausgeblendet.
    Umsetzen ließe sich das eventuell so:
    menu1=NewMenu "Menu1"
    ...
    menu2=NewMenu "Menu2"
    menu1.AddSubMenu menu2
    menu2.Show
    So oder ähnlich, da muss ich mir dann noch mehr Gedanken zu machen.


    Gruß,


    Udo

  • Zitat

    Original von vdrchuck
    ...
    Was auch jetzt schon wunderbar mit dem OSDServer funktioniert --> ein Script zum OSDServer zu senden bei einem laufenden z.B. MP3 Plugin :) --> der OSDServer baut das Menü auf und beim beenden wird wieder das laufende MP3(ng)-Plugin angezeigt.


    Dieses Verhalten hatte sich doch schon jemand mal hier im Board "gewünscht" --> SVRDP Meldungen bei einem aktiven Plugin.


    Ich war das gewesen. Ich wollte damals eingehende Telefonanrufe auf dem Bildschirm anzeigen lassen. Das hat im Fernsehbetrieb auch ganz gut geklappt, jedoch nicht wenn irgendein Plugin das OSD benutzte. Da ich oftmals stundenlang über das Mp3ng-Plugin Musik höre, wurden die Anrufe nie eingeblendet.
    Schade nur, dass man nicht einfach ein farbiges Hinweisfenster über das vorhandene OSD drüberblenden kann. Ist halt ne stark begrenzte Resource beim VDR. Wird Zeit, dass sich Softdevice o.ä. durchsetzt wo man technisch gesehen keinerlei OSD-Beschränkungen hätte. Das würde dem VDR auch mal nen zeitgemäßen 'Anstrich' verpassen. :skull1


    Gruß
    Jarny

    MLD 3.0.3 Server. Aufnahmen schaue ich mit einem separaten XBMC (OpenElec Distribution) im Wohnzimmer am 47 Zoll HD Fernseher

  • Zitat

    Original von jarny
    Schade nur, dass man nicht einfach ein farbiges Hinweisfenster über das vorhandene OSD drüberblenden kann. Ist halt ne stark begrenzte Resource beim VDR. Wird Zeit, dass sich Softdevice o.ä. durchsetzt wo man technisch gesehen keinerlei OSD-Beschränkungen hätte. Das würde dem VDR auch mal nen zeitgemäßen 'Anstrich' verpassen. :skull1


    Mmm, aber nun kannst du mit Hilfe des OSDServer eine Meldung bei laufendem MP-Plugin absetzen, nach Bestätigung der Meldung (oder es geht glaube ich auch mit einem Timeout) bist du wieder im laufenden MP3-Plugin!


    Gruß,
    Chuck

    1- yavdr 0.5 - DVB-C
    1- VDR-1.7.14 - Xine Pugin - XBMC - DVB-C
    2- Activy 300 mit Gen2VDR V2

  • Zitat

    Original von vdrchuck
    Mmm, aber nun kannst du mit Hilfe des OSDServer eine Meldung bei laufendem MP-Plugin absetzen, nach Bestätigung der Meldung (oder es geht glaube ich auch mit einem Timeout) bist du wieder im laufenden MP3-Plugin!
    Gruß,
    Chuck


    Ja, das hatte ich schon verstanden. Werde es irgendwann mal ausprobieren. Im Moment hab ich noch andere Sachen die Vorrang haben.
    Gruß
    Jarny

    MLD 3.0.3 Server. Aufnahmen schaue ich mit einem separaten XBMC (OpenElec Distribution) im Wohnzimmer am 47 Zoll HD Fernseher

  • Zitat

    Original von Urig


    Ich weiß nicht, was dein Plugin leistet, vermute aber erst mal, dass es wohl nicht mithalten kann. OSDServer ist trotz des knappen Funktionsumfangs bereits jetzt >2700 Zeilen schwer.


    Udo


    Schade, Schade! - und ich wollte mich gerade mit dem "runvdr-extreme" beschäftigen.


    Nachdem ich hier lesen mußte, wieviel Du von Deinen Mitmenschen hältst, musste ich erstmal meine Festplatte aufräumen.
    Ein solcher Kommentar ist (selbst wenn er stimmen sollte!) unter keinen Umständen akzeptabel und dies ist der letzte "Urig"-Thread, in den ich meine Nase gesteckt habe.


    So long.

    Ich bin verantwortlich für das, was ich schreibe, nicht für das, was Du verstehst!

Jetzt mitmachen!

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