[10.11.2009] Neues Video zu libpnd


zLouD

Active Member
Joined
Oct 12, 2008
Messages
598
Hey Leute,

vimacs hat soeben ein Youtube Link an uns überreicht in dem er zeigt wie die automatische Erkennung von PND Dateien auf SD Karten funktioniert bzw. dass sie funktioniert.

In dem Video nutzt er XFCE als Desktop Environment.

Externer Link nach Youtube

Viel Spaß damit.
 
Kapier' zwar garnicht, was in dem Video wie und warum passiert, aber ist ja auch egal. Die PND-Dateien interessieren mich eh wenig.
 
johnnysnet said:
Kapier' zwar garnicht, was in dem Video wie und warum passiert, aber ist ja auch egal. Die PND-Dateien interessieren mich eh wenig.

Ich denke mal, dass er eine SD-Karte einschiebt, daraufhin werden die als .pnd vorhandenen Programme auf dem Desktop angezeigt
 
johnnysnet said:
Kapier' zwar garnicht, was in dem Video wie und warum passiert, aber ist ja auch egal. Die PND-Dateien interessieren mich eh wenig.
Vom Grundsatz her geht es darum, dass bei Einschub einer SD-Karte darauf im PXML-Format abgelegte Softwarepaket-Metainformationen (.PXML-Dateiendung, diese efinden sich innerhalb von .PND-Dateien) automatisch entdeckt und kategorisiert werden. Der Hauptzweck von libpnd ist dabei für Entwickler, Informationen über die PND-Softwarepakete zu erhalten (Name der Anwendung, Beschreibung, Icon, aber auch Vorschaubilder etc.). Das suchen der Softwarepakete auf der SD an sich wird hingegen NICHT von der libpnd übernommen, sondern von der jeweiligen GUI (z.B. cpasjuste's GUI). (Beachte "Edit" weiter unten!)

Zumindest, wenn ich das richtig verstanden habe. Ich habe mich da bisher nicht ausführlich mit beschäftigt, aber jetzt habt ihr zumindest eine Idee davon.

Edit: "PXML Fileformat.pdf" version 1.5 von http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,45,5 sagt zwar, dass das Suchen der Pakete von der jeweiligen GUI übernommen werden soll, das Wiki erläutert unter http://pandorawiki.org/Libpnd_hub#SD_card_layout jedoch, dass libpnd die .pnd-Dateien in einem bestimmten Verzeichnis erwartet. Mindestens eine der informationen ist also veraltet und/oder erweiterungsbedürftig, also betrachtet das oben dargelegte besser mit einer gehörigen Prise vorsicht. Trotzdem, ich denke der Gendanke dahinter ist jetzt klar.
 
Trotzdem, ich denke der Gendanke dahinter ist jetzt klar.
So ungefähr.

Was mich durcheinander bringt ist das Dateiformat selbst, weil ich mich noch erinnere, dass die PXML-Dateien dafür da waren, Anwendungen in einer GUI richtig einordnen zu können. Der Entwickler legt eine solche Datei seinem Programm/Spiel bei und die GUI kann das dann richtig verwalten. Nun kommen aber die PND-Dateien ins Spiel und ich frage mich, wozu die dann noch nötig sind!
Der Hauptzweck von libpnd ist dabei für Entwickler, Informationen über die PND-Softwarepakete zu erhalten
Meinst Du nicht eher, weiterzugeben? Sonst macht das für mich keinen Sinn.

Wie auch immer, es wäre schade, wenn man was für die Pandora macht und es dann nicht weitergeben kann, weil man an dem ganzen PXML- und PND-Wirrwarr scheitert.

Eine PND-Datei ist also als ein Softwarepaket zu verstehen, dass die Anwendung + die PXML-Datei enthält? Fragt sich nur, wie man eine PND-Datei erstellt...
 
Eine PND-Datei kann man unter Linux mit einem Script erstellen, welches es von uns gibt.
Einfach nur das geschriebene Programm mit allen Daten (Icon, PXML-Datei, etc.) komplett in ein Verzeichnis kopieren - und das Script erstellt daraus dann die PND-Datei.
Bisher nur unter Linux, aber eine Windows-Version folgt.

Wer PND nicht nutzen will, kann auch das Verzeichnis so wie es ist auf die SD-Karte kopieren. Klappt genauso :)
 
johnnysnet said:
Christoph.K said:
Der Hauptzweck von libpnd ist dabei für Entwickler, Informationen über die PND-Softwarepakete zu erhalten
Meinst Du nicht eher, weiterzugeben? Sonst macht das für mich keinen Sinn.
Nein er meint schon Erhalten ;-)
Die libpnd ist eine sogennante Libary Also eine Bibliothek auf gut Deutsch. So eine Libary enthält z.B. verschiedene Funktionen welche ein Programmierer in seinem Programm benutzen kann, in diesem Fall spezielle Funktionen der Pandora. Die Libary sorgt also dafür das nicht jeder Programmierer das Rad jedesmal neu erfinden muss sondern die Fertigen Funktionen aus der Libary benutzen kann um einfach auch die besonderen Funktionen der Pandora zugreifen zu können.

Was hat das mit PXML und PND Dateien zu tun?
Ganz einfach, PXML-Dateien sind XML-Dateien welche Informationen zum Spiel/Programm innerhalb einer PND-Datei enthalten. Nun kann es ja sein das ein Programmierer gerne eine GUI programmieren möchte mit der man schnell auf alle Spiele zugreifen kann (halt genau wie die schon gennante von cpasjuste) und um nun auf die Informationen über die Spiele auf der SD-Card zuzugriefen müsste der Programmierer nun ersteinmal einen XML-Parser schreiben (oder einen aus einer anderen Libary benutzen!) und dann die Informationen aus der PXML-Datei herauslesen. Damit er das nun aber nicht machen muss (warum sollten 100 verschiedene Leute 100 verschiedene XML-Parser schreiben!) existieren Funktionen in der libpnd-Libary welche ihm diese Informationen direkt geben können, ohne das er selber noch großartig viel dafür Programmieren müsste. (muss er natürlich dennoch für den Rest seines Programmes lol)

Ich hoffe ich konnte etwas Licht ins Dunkel bringen. Fals ich wegen den PXML- und PND-Dateien etwas falsches geschrieben haben sollte darf mich gerne jemand korrigieren oder bestätigen war jetzt was das angeht geraten aber ich bin meist sehr Treffsicher was das angeht ;-) Wenn ich mich nicht ganz Täusche wird die PXML-Datei sich mit den restlichen Programmdatien innerhalb der PND-Datei befinden aber wie gesagt wenn ich nicht ganz richtig liege bitte Berichtigen ;-)

Ach und ein kleiner Tipp immer wenn etwas lib??? heißt handelt es sich mit sehr großer Wahrscheinlichkeit um eine Libary die Funktionen für Programmierer bereitstellt meist erkennt man am ??? Teil auch leicht wofür z.B. libsound, libsdl etc.

Edit: Ah ok aus der Antwort von EvilDragon vor mir (oder besser während ich nach Schreibfehlern gesucht habe lol) Denke ich geht heraus ich lag richtig mit meiner Vermutung über den Aufbau der PND-Dateien
 
johnnysnet said:
Was mich durcheinander bringt ist das Dateiformat selbst, weil ich mich noch erinnere, dass die PXML-Dateien dafür da waren, Anwendungen in einer GUI richtig einordnen zu können. (...) Nun kommen aber die PND-Dateien ins Spiel und ich frage mich, wozu die dann noch nötig sind!
EvilDragon said:
Einfach nur das geschriebene Programm mit allen Daten (Icon, PXML-Datei, etc.) komplett in ein Verzeichnis kopieren - und das Script erstellt daraus dann die PND-Datei.
(...)
Wer PND nicht nutzen will, kann auch das Verzeichnis so wie es ist auf die SD-Karte kopieren. Klappt genauso :)
Oder um es noch einmal mit anderen Worten zu sagen: stell dir ein Verzeichnis vor, in dem sämtliche Spieldaten des fiktiven Spiels Yanothergame (darunter auch dir .PXML-Datei) liegen. Jetzt kannst du dieses Yanothergame-Verzeichnis auf die SD-Karte kopieren und das auf deiner Pandora Yanothergame spielen, funktioniert wunderbar.

Jetzt kommt .PND ins Spiel: es ist möglich, das gesamte Yanothergame-Verzeichnis herzunehmen und in eine Datei zu stopfen. Diese kann man dann "Yanothergame.PND" nennen. Funktioniert genauso wie oben beschriebene Verzeichnismethode, hat aber den Vorteil, dass man als Endanwender nicht mehr ein ganzes Verzeichnis sondern nur noch eine einzige Datei zu handhaben hat. PND ist also ein einzelner Container, der sämtliche Spieldaten (darunter besagte .PXML-Datei) in sich aufnehmen kann, damit diese nicht über eine Verzeichnishierarchie verstreut sind.
johnnysnet said:
Eine PND-Datei ist also als ein Softwarepaket zu verstehen, dass die Anwendung + die PXML-Datei enthält? Fragt sich nur, wie man eine PND-Datei erstellt...
Es ist wohl anzunehmen, dass der Großteil der Pandora-Spieleentwickler (wenn nicht gar alle) entsprechende PND-Dateien ihrer Spiele anbieten werden, da diese gegenüber der Verzeichnismethode Vor- aber keine Nachteile aufweisen (Sonderfälle natürlich ausgenommen).


----------------------------------------------------------------------
johnnysnet said:
Der Hauptzweck von libpnd ist dabei für Entwickler, Informationen über die PND-Softwarepakete zu erhalten
Meinst Du nicht eher, weiterzugeben? Sonst macht das für mich keinen Sinn.
Hier ist ein kleines Missverständnis aufgetreten: libpnd ist NICHT ein Begriff für die PXML- oder PND-Dateien oder deren Spezifikation.
libpnd kannst du dir als eine Art "Software-Puzzleteil" vorstellen, das Softwareentwickler mit ihrer eigenen Software "verknüpfen" können um z.B. die ganzen Informationen aus den .PXML-Dateien ohne viel Aufwand zu extrahieren. libpnd stellt also für Softwareentwickler ein Werkzeug dar, um mit PND- und PXML-Dateien hantieren zu können, ohne dass sie selbst großartig Code schreiben müssten der beispielsweise die Spielbeschreibung aus der PXML-Datei herausfummelt. Das käme sonst einer regelmäßigen Neuerfindung des Rades gleich und würde daher (in diesem Fall) einen vollkommen unnötigen Mehraufwand darstellen.

Abstrakt erklärt: wenn man für das ABC eine "libabc" erstellen und komplikationsfrei Menschen einpflanzen könnte, dann müsste wohl niemand mehr das lesen selbst lernen.
johnnysnet said:
Wie auch immer, es wäre schade, wenn man was für die Pandora macht und es dann nicht weitergeben kann, weil man an dem ganzen PXML- und PND-Wirrwarr scheitert.
Ach, so schwierig wie es sich zuerst anhören mag ist das nicht. Wer es nicht versteht fragt einfach im Forum, da werden Sie dann schon geholfen. ;)


----------------------------------------------------------------------

Edit: Jaja, drei dumme, ein Gedanke...

Edit2: Wie immer gilt: sollte in diesem Beitrag etwas unverständlich sein, so freue ich mich über Rückmeldung. Ich bin stets bestrebt, Erklärungen so zu formulieren, dass sie gut verständlich sind. Deshalb freue ich mich, wenn sich jemand konstruktiv über Fehler, Ungereimtheiten oder ähnliches beschwert, damit ich es in Zukunft besser machen kann.
 
Ich glaube, ihr habt ganze Arbeit geleistet, jetzt fühle ich mich hinreichend aufgeklärt! Ja, es ist Licht ins Dunkle gebracht :) Das ist sehr... sehr freundlich - ohje, ich wollte doch nicht für diese Umstände sorgen.

Na da kann man nur gespannt sein, wie sich diese Dateien bewähren. Ich meine ja, dass es auch gut ohne all das gehen würde, der Endanwender soll garnicht so einen Komfort haben, kann ruhig ein Gerät für die Freaks bleiben *g*
 
johnnysnet said:
Ich meine ja, dass es auch gut ohne all das gehen würde, der Endanwender soll garnicht so einen Komfort haben, kann ruhig ein Gerät für die Freaks bleiben *g*

Das kann man auch andersherum betrachten. Allein die Existenz dieses Videos beweist, wie "geekig" die libpnd eigentlich ist. :)

Von außen gesehen erscheint es natürlich langweilig, jemand steckt die SD-Karte ein und "die Spiele erscheinen eben auf dem Desktop, aha - und weiter?". Das ist für den Endanwender nicht weiter spannend, ähnliches kennt er z.B. vom Windows-Autostart-Mechanismus wenn man unter Windows eine CD einlegt und automatisch etwas passiert. Von daher setzen manche es vielleicht sogar als gegeben voraus, und finden es "freakig" o.Ä. wenn es nicht so einfach funktioniert.

Aber wenn man es selbst entwickelt hat (damit keine Missverständnisse aufkommen: ich habe mit der Entwicklung der libpnd nichts zu tun) dann weiß man natürlich, wie viel eigentlich dahintersteckt (da hast du ja jetzt auch schon einen kleinen Einblick gekriegt). Und wenn dann irgendwann alles umgesetzt ist und so funktioniert wie es vor langer Zeit akribisch geplant wurde, wenn man die SD-Karte einsteckt, es macht "wooooosh" (metaphorisch ;)) und die Spiele erscheinen auf dem Desktop, dann ist das pure Magie :oops:. Sieh dir mal an, was skeezix im englischen Forum zur Veröffentlichung des Videos geschrieben hat, denn das spricht eigentlich für sich:
skeezix said:
Vimacs made this video, but I couldn't sit on it for a whole _hour_ without posting it, so here goes:

http://www.youtube.c...h?v=h_6DE_14b4o

Not the most exciting video ever, but its pretty cool to those of us building this stuff :)

- insert SD
- .pnd files (a bunch of them) auto-recognized
- double-tap with finger on he screen, launches an app
- eject SD
- .pnd files automatically vanish

No installation, no muck, no leftover files, nice and clean and piece of cake.

jeff

edit: hole -> whole, I suck :)
Original: http://www.gp32x.com/board/index.php?/topic/50363-aight-ill-post-it-then/page__view__findpost__p__771595
 
Back
Top