[ANNOUNCE] graphtft 0.3.1

  • Hi,


    die zur Version 0.3.0 gemeldeten Fehler sind behoben, Galaxy-Touch Device wird nun auch unterstützt.


    Die wichtigsten Erweiterungen:
    - animierte Bilder
    - im Theme können auch Tasten-Serien angegeben werden
    - Ziehen mit der Maus und blättern mit dem Mausrad bei mehrzeiligen Texten


    Alles weitere ist im Wiki beschrieben:
    http://www.vdr-wiki.de/wiki/index.php/Graphtft-plugin


    Download:
    http://www.jwendel.de/vdr/vdr-graphtft-0.3.1.tar.bz2
    http://www.jwendel.de/vdr/alien-vs-predator-0.3.1.tar.bz2
    http://www.jwendel.de/vdr/DeepBlue-horchi-0.3.1.tar.bz2


    /Edit - X-Frontend:
    Das Kommunikation-Protokoll wurde erweitert, daher muss das neue X-Frontend verwendet werden!


    Grüße
    horchi

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von horchi ()

  • Wichtig: Die Pakete sind für Ubuntu 8.10!


    Hier gibt es Debian-Pakete fürs Plugin und das AvP-Thema.
    Es sollte ABI-Kompatible zu Hannos-Intrepid-Repository sein. Ungetestet, weil mein VDR noch aufnimmt.
    Wichtig, mein Paket ist, anders als das in Hannos Repository, mit X11-Support kompiliert und das
    Graphtft-fe ist auch dabei. Wer nicht weiß was das heißt, der lässt besser die Finger davon.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von gda ()

  • Zitat

    Original von Taipan
    Erster!


    Kein Wunder, du baust ja auch keine Pakete ;) .


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Hi,


    der Link zum download der DeepBlue Theme war defekt (zeigte auf 0.3.0), ist jetzt behoben


    Grüße
    horchi

  • horchi


    Vielen Dank, damit sind meine Probleme mit Pixelresten auf dem LCD und Aktualisierung völlig behoben, auch ohne touch screen, einfach nur top.


    Gruss


    Stefan

    Server HW:
    Asrock Q1900M + 4GB + 2x CineS2 5.4, SSD, 2TB Toshiba 2.5" (USB), 3TB Seagate (USB); 2TB Samsung; 1.5 Seagate (USB), picoPSU + DC/DC 200W
    SW:
    Debian (arranged), OpenMediaVault kralizec; VDR-2.1.6 + dynamite, live etc; Mysql running DB for EPG2VDR, XBMC


    Clients:
    1) TBS2910 freescale imx6 + OpenELEC
    2) RPI, 1GHZ, VDR-2.1.6
    3) RPI, 1GHZ, VDR-2.1.6
    4) cubietruck

  • horchi : Vielen Dank für das supi Plugin.


    Bei mir wollen die 0.3'er Versionen noch nicht so richtig (0.2.2 war noch OK). Vielleicht hat noch jemand einen Tipp für mich?


    Wird der VDR gestartet, kommt auf der Konsole folgende Meldung und der VDR bricht ab.


    Code
    1. terminate called after throwing an instance of 'std::out_of_range'
    2. what(): basic_string::erase


    Im log sehe ich folgende Einträge als Letztes vor dem Abbruch:


    Code
    1. Dec 15 16:04:29 vdr: [6097] starting plugin: graphtft
    2. Dec 15 16:04:29 vdr: [6097] Device is '/dev/fb0'Dec 15 16:04:29 vdr: [6097] Loading themes
    3. Dec 15 16:04:29 vdr: [6097] loading /etc/vdr/plugins/graphTFT/themes/DeepBlue/DeepBlue.theme


    Ich nutze das Framebuffer-Device unter /dev/fb0 und habe ein aktuelles ffmpeg aus dem SVN. Hat sich für den Framebuffer in Version 3 etwas verändert?


    Danke, viele Grüße
    Matthias

  • Hi MatthiasK,


    sieht nach ein Problem beim laden der Themes aus. Du hast nur aktuelle Themes im theme Ordner liegen? Wenn ja vermute ich hier das Problem, wenn nein poste doch bitte einmal den BT.


    Grüße
    horchi

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von horchi ()

  • Hallo Horchi,


    im theme-Verzeichnis habe ich alle Unterordner gelöscht und nur den avp-Ordner aus der DeepBlue-horchi-0.3.1.tar.bz2 entpackt.


    Folgender Backtrace kommt dabei raus:



    Danke, viele Grüße
    Matthias

  • Hallo!


    Vielen Dank für das Plugin.


    Ich nutze es zum ersten mal und es funktioniert auch alles einwandfrei.


    Wie sieht es mit dem Zusammenspiel von muggle und graphtft aus?
    Der Titel und die Zeit werden dargestellt, aber leider keine Playlist.


    Gruß
    Tobi

    VDR 1.7.15 - Debian Squeeze/Kernel 2.6.32
    Rebach-Gehäuse, Intel Atom330, Extension HD, Technisat Cablestar2

  • Hi Matthias,


    könntest du bitte mit dem gdb nochmal in das core schauen und dort mit 'up' bis in die Methode:

    Code
    1. "cThemeItem::Parse (this=0x2aaaacfa4980, s=0x2aaaacf9fef0 "#define MOUSE_BUTTONS") at theme.c:445"


    hochgehen, mit 'p posA' den Inhalt von posA anzeigen lassen und hier posten.


    Grüße
    horchi


  • Hi,


    keine Ahnung ich kenne und verwende muggle nicht, ist doch was zum Music abspielen, oder? Wenn ja, das graphTFT hat einen Schnittstelle für das Music Plugin, muggle könnte die selbe verwenden, dann sollte es auch mit dem Playlisten klappen.


    Grüße
    horchi

  • Hallo Horchi,


    da lerne ich einfacher IDE-verwöhnter Java-Programmierer ja noch richtiges Debugging...


    Hier der Variableninhalt (hoffe, das war so richtig):



    Ich verwende übrigens eine Suse-Distri bei der das Dateisystem auf UTF-8 eingestellt ist. Entsprechend setze ich auch Environment-Variablen (LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 vor dem Start des VDR. Das Variablenergebnis finde ich in der avp.theme nicht wieder, evtl. UTF-8/Zeilenumbruchsproblem?


    Danke, viele Grüße
    Matthias

  • Hi Matthias,


    du wirst die 4294967295 nicht im Theme finden, 4294967295 ist das Ergebnis eines find("//") auf die aktuelle Zeile "#define MOUSE_BUTTONS" im Theme,
    4294967295 entspricht string::npos und bedeutet nicht gefunden, was auch richtig ist.


    Warum im Code der Vergleich (4294967295 != string::npos) 'true' liefert ist merkwürdig, dass er dann auf die Nase fällt ist wieder normal.


    Ich vermute im Speicher ist schon vorher was durcheinander gekommen.


    Bau doch mal die Zeile in deine theme.c ein:



    dann bitte nochmal compilieren, installieren, starten und die Log-Meldung vor dem Crash posten.


    Grüße
    horchi

  • Hallo Horchi,


    hier der Output:



    Danke Dir!
    Grüsse
    Matthias

  • Hi,


    sorry, noch ein Versuch


    Code
    1. if ((posA = lineBuffer.find("//")) != string::npos)
    2. {
    3. + tell(0, "DEBUG: Found comment in [%s] (%u) (%u)", lineBuffer.c_str(), posA, string::npos);
    4. lineBuffer.erase(posA);
    5. if (Str::isBlank(lineBuffer.c_str()))
    6. return true;
    7. }


    horchi

  • so sieht's besser aus:


  • Code
    1. [graphTFT: 20:46:59] DEBUG: Found comment in [// Falls dies notwendig wird, ist CHECKGRID einzukommentieren.] (0) (4294967295)
    2. [graphTFT: 20:46:59] DEBUG: Found comment in [//***************************************************************************] (0) (4294967295)
    3. [graphTFT: 20:46:59] DEBUG: Found comment in [#define MOUSE_BUTTONS] (4294967295) (4294967295)
    4. terminate called after throwing an instance of 'std::out_of_range'
    5. what(): basic_string::erase
    6. ./vdrtest.sh: line 3: 6772 Abgebrochen ./vdr -L PLUGINS/lib -c /etc/vdr -Pfemon -P'graphtft -d /dev/fb0'


    sehr merkwürdig, Anfangs geht er nur rein, wenn ein Kommentar in der Zeile ist (unterschiedliche Zahlen), dann auf auch einmal wenn beide 4294967295 sind, also gleich. Kann ich mir noch nicht erklären. Der 'if' fragt ja ungleich ab .... ??


    Ein clean über alles und dann alles wieder neu bauen hast du schon versucht?


    /EDIT: Auffällig ist auch, dass es die erste nicht Kommentar-Zeile im Theme ist


    Grüße
    horchi

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von horchi ()

  • Hallo Horchi,


    das clean hat nicht geholfen.


    Wenn ich das if etwas abändere, kommt er zwar weiter, aber steigt mit einem anderen Fehler aus.


    Code
    1. if ((posA = lineBuffer.find("//")) >= 0 && (posA = lineBuffer.find("//")) <= 5000 )


    Wobei ich das jetzt aber ohne Sinn und Verstand gemacht habe...


    Was mir noch aufgefallen ist: beim Kompilieren gibt es Warnungen:



    Die Warnungen aus theme.c stammen allerdings von späteren Stellen im Code, die aus Zeile 495 hilft vielleicht.

    Code
    1. 490 // check if it is a section start
    2. 491
    3. 492 posA = lineBuffer.find("[");
    4. 493 posB = lineBuffer.find("]", posA);
    5. 494
    6. 495 if (posA == 0 && posB > 0 && posB != string::npos)


    Übrigens nutze ich ein 64-Bit-Suse.


    Wenn Dir jetzt spontan nix mehr einfällt, probier ich morgen mal ein bißchen mit dem if rum. Das eine 4294967295 könnte ja auch durch die printf - Ausgabe abgeschnitten / gerundet sein.


    Wie gesagt, ich fühl mich bei Java eher zu Hause, das ist bezüglich Datentypen und Speicheradressen alles ein wenig einfacher da man sich ja immer in einer VM befindet.


    Danke, viele Grüße
    Matthias

  • Hi,


    du hast damit auch ein 64Bit VDR, das ist sicher das Problem, gut möglich, dass mein Code nicht vollständig 64bit kompatibel ist!


    string::npos ist vom Typ string::size_type, was wie es ggf. ein unsigned long und kein unsigned int ist. Auf 64Bit Systemen ist ein long 8Byte und auf 32Bit Systemen nur 4 was dann dort einem int entspricht.


    Ersetze doch bitte einmal alle "unsigned int" in *.c und *.h welche etwas mit der std::string Klasse (wichtig sind vor allem die Variablen welchen die Rückgabe von find() und rfind() zugewiesen wird)) zu tun haben gegen string::size_type, wenn du zu viele erwischst sollte auch kein Problem sein. ich denke es könnte erst mal die theme.c und ein paar Stellen in display.c genügen. Wenn das hilft baue ich es um und schicke dir zum testen eine neue Version.


    Grüße
    horchi