Beiträge von BadCarma

    Hi dcdead,


    prima, das war genau der Tip, der mir weitergeholfen hat. Mit meinen eigenen, in extra Files ausgelagerten Klassen, funktioniert das jetzt wie gewünscht.


    Kannst du mich evtl. auch noch sagen, wie ich Bibliotheken, die ich via

    Code
    #include <jpeglib.h>

    einbinde linken (statisch?) kann.


    Kompilieren tut's wie immer nichtig, auf der Box bekomme ich aber wieder ein undefined symbol aus dieser Headerdatei.
    Muß ich das dann auch entsprechend im makefile angeben? (Ich hab schon ein paar Sachen ausprobiert, bisher aber leider ohne Erfolg)

    Damit man versteht was ich genau meine hier mal Testcode.


    Ich bekomme immer ein "Undefined symbol ..." auf der Box angezeigt, wenn ich das Plugin starte.



    Ich hab mal ein kleines Test-Plugin geschieben, indem leicht nachzuvollziehen ist, was ich meine.
    Es besteht aus:
    - test.cpp (Mainpart)
    - TestClass.cpp & TestClass.h
    - Makefile und mk Script zum kompileren


    Wenn ich nun versuche alles zu kompilieren klappt das auch ohne Fehler; starte ich das Plugin auf der Box kommt's zum o.g. Fehler "Undefined ..."


    Packe ich den Code der TestClass mit in das test.cpp & kompiliere den Kram neu läuft es auch auf der Box.


    => die includeten Datein sind nicht kompiliert/linked worden !??!?


    Weiß jemand was ich machen muß, damit das funktioniert? makefile ändern?

    Wenn ich ein Plugin baue, welches aus Test.cpp & Test.h besteht klappt alles mit dem bauen.


    Ich habe ein makefile


    und ein keines Script mk


    was mir dann das Teil baut. Das Prog läuft auf der Box wie gewünscht.


    Wenn ich aber Klassen in andere Files auslagen möchte und diese via #include im Code einbaue kompilert (und linkt?) zwar alles wie gewünscht, wenn ich das Teil aber auf der Box starte kommt: "Undefined symbol ...".
    Also fehlt ihm die entsprechende lib (aus den ausgelagerten Klassen), bzw. sie wurde zuvor nicht gebaut?!


    Wie konfiguriere ich solche Projekte richtig? Dafür gibts doch Tools/Befehle, oder nicht? Kann ich mein makefile modifizieren, so dass es auch mit mehreren Files klar kommt?


    Ich komme aus der Windows-Entwickler-Welt und bin mit den LinuxDev-Gepflogenheiten leider nicht so vertraut ...

    Ahhhh... das war ein guter Tip! Jetzt macht er's.


    Noch eine Frage: Ich hatte mir seinerzeit mal das CDK und Dreamimagesourcen Stand 1.09 FP 1.05 geholt.
    Wenn ich in dieser Version das FP Update duchführe, wenn FP > 1.05 ist (durch Codeänderung), dann müßte er doch ein Downgrade auf 1.05 (was ja in dieser Version mitgeliefter wurde) machen, oder?

    Hm, das scheint er aber nicht zu machen. Wenn ich nämlich extra fehlerhaften "Code" einbaue müßte ja ein Compilerfehler auftauchen.
    Das passiert aber nicht, ergo nimmt er gar nicht den geänderten Code ... was mache ich denn da wohl falsch ...?

    Wenn ich in der "dmfp.cpp" Code ändere reicht dann ein

    Code
    make dreamimage_root
    make rebuild-flash
    make flash-compress

    um das Image mit den Änderungen neu zu bauen. (Irgenwie scheint er mir das nicht neu zu kompilieren) Muß man da noch was bestimmtes touchen oder so?

    Habe mal in diegPixmap usw. reingeschaut. Wenn ich das mit png's machen würde ist alles klar. (da gibt's loadPNG usw...)


    Leider habe ich jedoch jpg's.Hast du da vielleicht noch einen Tipp? Ist das ev. über ePictureDecoderJPEG zu lösen? Aber wie ist das anzuwenden..?


    Oder könnte man

    Code
    int fh_jpeg_load(const char *filename, unsigned char *buffer, int x, int y)

    aus der jpeg.cpp nutzen und den Buffer dann in eine gPixmap schieben?!? Etwa so:


    Code
    ...
    gPixmap MyPixmap;
    MyPixmap.data = buffer;
    MyPixmap.x = x;
    MyPixmap.y = y;
    ...


    Würde das funzen? :face_with_rolling_eyes:

    OK, prima. Danke für die Info.


    Das Image ist gebaut. Dann werde ich gleich mal versuchen zu flashen. (Damit ich endlich wieder die neuen Images mit LZMA auch auf den Stick bekomme)


    Update: So, hab's geflashed und hat auch geklappt. Aktuelles Image, FP immer noch 1.05 ... :]


    Hi digi_casi,


    wenn ich mein Image also so baue:


    wird kein FP update gemacht, richtig? (Ich hab nämlich bislang auch noch das erste 1.09 mit FP 1.05 auf der Box und möchte das eigentlich bis auf weiteres nicht auf FP 1.06 hochziehen).

    Hab ich ja aschon mal gemacht. Das ist doch der Weg über ein Skin, oder sehe ich das falsch?


    Da wird doch im esml-Skinfile das File (mit Namen) statisch gesetzt:

    Code
    <images basepath="" target="fb">
    ...
      <img name="dreamlogo" src="dreamlogo-fs8.png" />
    ...
    </images>

    und dann für den entsprechenden Dialog (hier eAboutScreen) die entsprechende "Referenz" zum eLabel gesetzt:

    Code
    <object name="eAboutScreen">
      <eAboutScreen text="About..." cposition="125:105" csize="450:410">
    ...
        <eLabel name="dreamlogo" pixmap="dreamlogo" position="e-160:e-105" csize="143:75" alphatest="on" />
    ...
      </eAboutScreen>
    </object>

    Später im enigma_info.cpp wird das die Instance des Label(-Bilds) erzeugt:

    Code
    ...
    dreamlogo=new eLabel(this);
    dreamlogo->setName("dreamlogo");
    ...


    OK soweit. Aber wie könnte ich nun zur Laufzeit des Plugins das obige "dreamlogo-fs8.png" durch ein Bild "bla.jpg" (oder was auch immer) anderer Größe ersetzten?

    Hallo digi_casi,


    im Tuxbox CVS habe ich gesehen, dass du viel oder alles beim picviewer gecodet hast. Deswegen hätte eine Frage an dich (die du bei deinem Wissen über Bilder auf der Dreambox anzeigen vielleicht leicht beantworten kannst):


    Ich möchte ein Plugin basteln (bzw. habe das Plugin bis auf die Bildanzeige schon erstellt), welches zu einem Produkt ein Bild anzeigt.
    Dieses Bild liegt dann als jpg z.B. in /tmp/Bild1.jpg, /tmp/Bild2.jpg ...


    Man kann dann aus einer Liste von Produkten wählen und es soll immer das zugehörige Bild dargestellt werden.


    Lange Rede kurzer Sinn: Könntest du mir ein Codeschnipsel schicken, wie ich auf einem Dialog (eWindow) ein Bild plazieren kann? (nicht Vollbild, sondern sagen wir 200x150pix; da soll immer noch Text usw. nebenstehen).
    Das Bild muß/soll ev. vorher auf obige Größe resized werden.
    Ich hatte es schon mal geschafft Bilder über ein Skin einzubauen, aber das ist mir etwas zu statisch, oder gibts da keinen anderen Weg?


    Für einen Tipp wäre ich dir echt dankbar.


    Viele Grüße
    Ralf

    tomdulix : Ja, ich glaube so wars ...


    metalhead: Danke für die Info. Das kann ich mal probieren.


    Aber generell ist es doch schon möglich einen bestimmten Softwarestand auszuchecken, oder?


    Etwa so:
    cvs -danoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -rDM7000_109 -P .


    Wobei "DM7000_109" einen Checkpoint darstellen soll den es aber, soweit ich im cvs gesehen habe so nicht gibt. Also bleibt einem nur die Möglichkeit über ein bestimmtes Datum auszuchecken?
    Also so:
    cvs -danoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -r2005-03-11 -P .
    um die Version vom 11.3.2005 auszuchecken?

    Hallo,


    kann mir jemand sagen, wie ich die letzten Sourcen ohne LZMA Patch für die DM7000 aus dem CVS holen kann?
    Welcher Checkpoint ist das?
    Vielleicht kann mir jemand die entsprechende "CVS ..." Zeile schicken?


    Hintergrund: Ich möchte was für die Box proggen, aber nicht ein aktuelles Image aus dem CVS nehmen, weil das ja ein FP Update auf 1.6 macht. Die Box ansicht läuft im aktuellen Zustand (letztes original 1.09 Image im Flash) super stabil und ich möchte nicht riskieren, dass ich mit einem aktuellen CVS Image Bottprobleme o.ä. bekomme.


    Grüße
    Ralf