PND-GUI: Softwareverwaltung für die Pandora


Thott Chief

Still Fresh
Joined
Mar 11, 2010
Messages
84
Im Massenkompatibilität-Thread habe ich ja schon ein wenig über mein Projekt gepostet. Es handelt sich um ein Programm, das
die libpnd-Schnittstelle grafisch vereinfacht. Es soll ein wenig den AppStore mit dem 1-Klick-Installation-Feature den man von
gewissen anderen Obstplattformen kennt nachstellen. Hier geht es vor ALLEN Dingen um eine simple Bedinung. Also wenn man
eine Pnd im AppStore entdeckt, dann klickt man auf Installieren, dann wählt man in einem 2-Möglichkeiten-Menü jeweils die SD-Karte
und den Anzeigestandort. Klar kann man auch selber die PNDs an die rechte Stelle kopieren, aber wirklich Massenfreundlich ist das ja
nicht. Zu den Features gehört vorerst:
-Direkte Schnittstelle zu Craigs apps.openpandora.org ( Also keinen neuen AppStore)
-Einfache Installation (siehe Oben)
-Entfernen und installieren von Programmen
-Verschieben von Programmen
-Sortierte Anzeige von Programmen
-Mehrere Downloadvorgänge gleichzeitig
-Einfachen Zugriff auf den AppData-Ordner ( zum Beispiel für Spiele-Dateien)
-Batchverarbeitung bei Entfernen/Runterladen/installieren
-Interessant-Funktion ( Läd PND herunter, installiert sie aber nicht, sodass man sie später im Offline-Modus installieren kann)
-Verstecken-Funktion, PND-wird versteckt(Sorgt für Übersichtlichkeit)

Sonstige Community Vorschläge:
-Senden-Fumktion (Bluetooth o. WLAN)
Kleiner Screenshot:
bildschirmfotosoftwarea.png


Konstruktive Kritik ist natürlich außerordentlich erwünscht.
Ich werde hier meine Entwicklungsfotschritte posten.
Falls dieses Subforum nicht passt, bitte verschieben, konnte mich einfach nicht entscheiden ;-)

Thott
 
Ich finde das sieht gut aus...

Was hältst du denn von Kopierfunktionen:

-Programm auf andere SD / USB-Datenträger kopieren
-Programm über Bluetooth oder WLAN auf andere Pandora kopieren...
-Programm auf FTP-Server kopieren

Oder wird das zu kompliziert?

Ganz perfekt wäre natürlich ein kleines Textfenster mit Anbindung an http://twitter.com/PandoraApps ;)
 
Verschieben ist schon vorgesehen (SD-Karte1 auf SD-Karte 2), Aber das mit dem Bluetooth ist echt ein genialer Gedanke. Ich denke das Bluetooth zwar ein bisschen langsam sein wird aber vielleicht kann man ja auch WLAN nutzen( Natürlich ohne AccessPoint ). Also eine Senden-Funktion (FTP,EMAIL,BT oder WLAN wäre echt cool)
 
Ich fände es noch gut, wenn es auch an EDs Filearchiv angebunden werden könnte.
 
Das ist ein Problem, mehrere Stores sind auf Dauer vielleicht ein wenig verwirrend. Meine Wahl viel auf den OAS da ED hier irgendwo mal geäußert hat alles in einen Store zu zusammenzufassen, heißt das FileArchive besteht noch so lange bis alles ungefähr den gleichen Stand hat. Aber es wird wohl auch eine Funktion geben, eine beliebige Website als Quelle hinzuzufügen. Obwohl das nicht sehr komfortabel sein wird, da man auf einem kleinen Bildschirm surft. Da ich aber sowieso die Seite des OAS parse, und die Infos in QT Oberfläche einbastle, kann auch gut sein das man praktisch ohne es zu merken in beiden Quellen sucht und läd.

Thott

P.S. Das mit dem Bluetooth wird wohl doch ziemlich schwierig, aber auch nur weil ich keinerlei Bletoooth-Geräte besitze geschweigedenn zwei Pandoras. sabber
 
Thott Chief said:
-Interessant-Funktion ( Läd PND herunter, installiert sie aber nicht, sodass man sie später im Offline-Modus installieren kann)
-Archivieren-Funktion, PND-wird versteckt und komprimiert

Hi, ich geb auch mal meinen Senf dazu:
Die erstgenannte Funktion finde ich merkwürdig, da die ganze Installation doch daraus besteht, dass die Datei runtergeladen wird. :confused:??
Die Zweite ist meiner Meinung nach auch überflüssig, da ich meine hier irgendwo gelesen zu haben, dass die pnd datei ein squashfs-Dateisystem beinhaltet (siehe http://forum.gp2x.de/viewtopic.php?f=24&t=8992&hilit=squashfs&start=30). Dies ist bereits stark komprimiert, also ist jede weitere Kompression zwecklos. Na gut. Das mit dem Verstecken hört sich aber gut an.

Weiter so! ;)
 
Also zu der "Interessant finden"-Funktion, kommt nicht von mir, ist von elvissteinjr. Ich habe die Funktion auch nicht wirklich verstanden. Aber das ganze ist ja eigentlich nur einen Ersparung der 2 Schritte 1.Herunterladen+Installieren 2.Verbergen. Ich merke aber langsam das diese vielen verschiedenen Aktionen ziemlich viele werden, sodass diese 4Buttons nicht mehr ausreichen werden. Aber so wie ich mir das anschaue spendiere ich dem ganzen wohl eine konfigurierbare Schnellbefehlsbox und ein Pluginsystem, sodass sich auch zum Beispiel neue Quellen/Toolboxfunktionen leicht nachrüsten lassen.

Die Toolboxfunktionen sind die 4 Icons unterhalb der Beschreibung der Anwendung

Der Einwand mit Komprimierung ist berechtigt, und GEÄNDERT
 
ashclowd said:
Thott Chief said:
-Interessant-Funktion ( Läd PND herunter, installiert sie aber nicht, sodass man sie später im Offline-Modus installieren kann)
-Archivieren-Funktion, PND-wird versteckt und komprimiert

Hi, ich geb auch mal meinen Senf dazu:
Die erstgenannte Funktion finde ich merkwürdig, da die ganze Installation doch daraus besteht, dass die Datei runtergeladen wird. :confused:??
Die Zweite ist meiner Meinung nach auch überflüssig, da ich meine hier irgendwo gelesen zu haben, dass die pnd datei ein squashfs-Dateisystem beinhaltet (siehe http://forum.gp2x.de/viewtopic.php?f=24&t=8992&hilit=squashfs&start=30). Dies ist bereits stark komprimiert, also ist jede weitere Kompression zwecklos. Na gut. Das mit dem Verstecken hört sich aber gut an.

Weiter so! ;)
Beide Punkte sind meines Wissens richtig, ich aber nicht sicher was die PNDs sind, aber im Prinzip ist es ein Archiv, dass eine pxml Datei und die Programmdateien enthält.


Wie wäre eine Möglichkeit einfach eine URL zu einer PND einzugeben und die dann zu installieren?

Und verschicken von Pandora zu Pandora klingt gut - wobei ich eigentlich im RL niemanden kenne, mit dem/der ich dann PNDs tauschen könnte. :rotfl:
 
Thott Chief said:
Also zu der "Interessant finden"-Funktion, kommt nicht von mir, ist von elvissteinjr. Ich habe die Funktion auch nicht wirklich verstanden.
Ich meinte das eher so: Ich stöbere durch das Archiv, suche vielleicht sogar etwas bestimmtes. Ich sehe etwas Interessantes, "Das ist nicht was ich suche und ich hab gerade auch nicht viel Zeit. Ich markiere mir das einfach mal fürs nächste Mal.". Also so in etwa. Ich markiere etwas und muss es aber nicht gleich runterladen, weil ich evfentuell gerade einfach keine Zeit habe oder einfach durchstöbere und alles markiere was interessant aussieht. ;)


Das Pausieren von Downloads wäre nützlich, könnte aber auch vom Server geblockt sein, das weiß ich nicht.
 
Also, ich werde mich morgen Abend dransetzen, und eine Pluginschnittstelle programmieren, und wenn das geschehen ist, dann sind all diese einzelne Funktionen nur noch ein Klacks. Äußerem kann dann jeder in einer Pluginverwaltung selber bestimmen welche Funktionen
man möchte.

Thott
 
Die Idee ist klasse mit der Softwareverwaltung, mit der Zeit lässt die Ordnung bei mir auch nach, vorallem beim wachsendem Softwareangebot. Was fehlt ist eine giftige Bedienoberfläche und ein richtiger Name für dein Programm.

Sowas bräuchte man auch für Emulatoren (PND-GUI: Emulatorenverwaltung) :lol:
 
Super, gefällt mir soweit gut :D

Einige Vorschläge habe ich auch schon:

Override-Verwaltung: Man kann bei PNDs ja alles mit eigenen Einstellungen überbrücken. Also Icon, Vorschaubild, Kategorie, etc.
Wäre super, wenn man das hier auch gleich erstellen und löschen könnte.

Geht über OVR-Dateien

Zudem sollte man natürlich Appdata und zugehöriges PND getrennt verwalten können.
Also z.B. Appdata behalten, wenn man das PND installiert, Appdata komplett löschen (dabei das PND beibehalten), etc.
 
Auch wenn ich es noch nicht richtig greifen kann worin der Sinn einer zusätzlichen Software zum bereits bestehenden Webbrowser (denn die PND lassen sich direkt vom Browser aus installieren) und einem Dateimanager (verwaltet/verschiebt die PND) besteht, möchte ich an den Touchscreen erinnern.

Ich könnte mir vorstellen ein PND aus dem OAS Fenster einfach auf ein SD-Card1 oder SD-Card2 Icon zu ziehen und dort fallen zu lassen.

Für die Verstecken Funktion würde ich mir wünschen dieses nicht auf Dateisystem-Attributen basierend zu lösen. Ein Verschieben in einen Backup Verzeichnis wäre einfacher zu handhaben wenn die SD mal an einem anderen Lesegerät sein sollte.
 
hi,

ich habe auch noch Vorschläge:

- mehrere Repositories über getrennte Index-Dateien verwalten. Man könnte sich hier an APT halten.
- Könnte man die Ziele nicht unabhängig definieren. Quasi wie die Quicklinks von Nautilus? D. h. du bräuchtest in der Software nur die Quicklinks unterstützen und jut, somit könnte man unabhängig von deiner Software neue Install-Targets definieren und dir spart es eine Menge Programmierarbeit.

Gruß,
Björn
 
Noch ein Vorschlag:

Wie wär es gleich mit einer ROM Verwaltung für Emulatoren?
Es gibt doch solche Probleme, das richtige Verzeichnis für ROMs bei Emulatoren zu finden.
Dieses Verzeichnis könnte doch in der PND in dieser XML Datei gespeichert werden. Dann könnte dieses Programm automatisch die ROMs im richtigen Verzeichnis installieren.
 
Naja für Interpreter und Co. müsste es dann auch solch eine Funktion geben.

z.B. Baldurs Gate mit GemRB, Flashback, ScummVM, Quake 3, Urquan Master und so weiter.

Ich stelle mir es dann so vor.

Man sieht zb den installierten Emu, Interpreter etc. und sieht einen Hinweis in Form eines kleines Bildchens wie "Achtung hier kann/soll/müssen (noch) externe Daten zugeführt werden damit diese Programme funktionieren. In Form von Romdateien, Kickstart (Amiga), Installationsdaten von Spielen (Quake 3, Scumm VM etc.)

Bei der DosBox wäre es natürlich auch einfacher dann und es müssten bei der DosBox dann aber auch Möglichkeiten geben das dieses Installieren und Einrichten der Spiele wegfällt und auch gleich die besten Configs über das internet fürs jeweilige Spiel heruntergeladen werden (insofern noch nichts in der DosBox integriert ist). Es muss da sicherlich auch mit den anderen Entwicklern Standards definiert werden.
 
Vielleicht könnte man, um das ganze flexibler zu machen die Arbeit durch Skripts, die in die PND-Datei integriert werden machen lassen. Dieses Verwaltungsprogramm hier müsste dann nur über die Parameter bescheid wissen. So ein Eintrag in der XML-Datei könnte dann so aussehen:
Code:
<i>
</i><installers>
  <installscript run='/installrom'>
      <info lang=en>Add a ROM file to the emulator.</info>
      <info lang=de>Eine ROM-Datei zum Emulator hinzufügen.</info>

      <arg type='file'>
          <info lang=en>The installer needs the magic XYZZY file...</info>
          <info lang=de>Das Installationsprogamm benötigt die magische XYZZY Datei...</info>
      </arg>
      <arg type='string'>
          <info lang=en>Please provide a description of the file that can be displayed later!</info>
          <info lang=de>Bitte geben sie eine Beschreibung zu der Datei an, die später angezeigt werden kann!<info>
      </arg>
  </installscript>

  <deletescript run='/deleterom'/>

<installers/>

Jedes Installationskript bekommt dabei einen Button im Menü des Verwaltungsprogramms.
Die Verzeichnisse/Dateien/Eingaben könnten dann ganz bequem mit einem Dateibrowser/Eingabefeld herausgesucht werden.
Anschließend könnte das Skript dann z.B so aufgerufen werden:

/installrom install /Pfad/zur/Rom/Datei 'Beschreibung ist sehr wichtig...'

Jetzt kann das Skript die Modifikation, die es nennen kann, wie es will, in eine Datenbank im appdata Ordner der jeweiligen PND Datei eintragen.
Das Skript braucht nichts zu installieren, sondern kann z.B. auch nur eine Einstellung ändern. In dem Fall wird nichts in die Datenbank geschreiben.
Die Datenbank enthält dabei den internen Namen der Modifikation, sowie ein Beschreibung. z.B.:
Name:'/blabla/xxy3.rom' Beschreibung:'Beschreibung ist sehr wichtig...'

In der Datenbank gespeicherte Modifikationen bekommen im Menü einen Button, über den sie sich auch wieder entfernen lassen.
Dies erledigt das deletescript:
/deleterom delete /blabla/xxy3.rom
Wobei diese Programm auch wieder die Datenbank aktualisieren muss.

Zur Bearbeitung der Datenbank sollte ein externes Programm bereitgestellt werden, das dann vom Script aufgerufen werden kann.

Durch die explizite Angabe von install und delete wird erreicht, dass man als installscript und deletescript die selbe Datei verwenden kann.
Es können mehrere Installationskripte eingetragen werden. Mehrere Lösch-Skripte machen allerdings keinen Sinn.

Falls die Argumente, die in der XML-Datei definiert sind nicht ausrechen, könnte das Installationscript noch folgendes ausgeben:
ask type=directory en='WTF! where is directory XYZ???' de='Wo zur Hölle ist Verzeichnis XYZ???'
ask type=string en='Call a blue potion?' de='Benenne einen blauen Trank?'

Woraufhin sich jeweils ein Dateidialog/Eingabefeld öffnet und die ausgewählte Datei/Verzeichnis/Eingabe dem Skript über die Standardeingabe mitgeteilt wird.
Als type würden in Frage kommen:

file
directory
string
'blabla':'soso':'doof' : Das Programm muss einen der Argumente blabla, soso, oder doof zurückgeliefert bekommen.
x:y z.B.: 1:100 für eine Zahl zwischen 1 und 100
X.x:Y.y z.B.: 1.0:100.0 für eine Fließkommazahl zwischen 1 und 100
bool ja / nein Frage

Wobei das Programm dann jedesmal ein Diologfenster öffnet.

Damit wäre auf jeden Fall ein flexibler Installationsmechanismus geschaffen.

***Ich hab noch was geändert. War nicht gut genug durchdacht.***
 
Wie wärs denn mit einer Art Baumstruktur, z.B. gerade für Emulatoren:

bildschirmfotosoftwarea.png
 
xyta said:
Wie wärs denn mit einer Art Baumstruktur, z.B. gerade für Emulatoren:

Baumstruktur hört sich gut an.
Solange das bei Emulatoren die ROM's als einzelne Dateien sind, geht das noch gut. Aber ich will mir gar nicht erst vorstellen wie das aussieht, wenn man damit z.B. Baldurs Gate für die gemrb installiert. Deswegen blos keine einzelnen Dateiein anzeigen.
Bei der Installationsmethode, wie ich sie beschrieben habe, könnte man dann auch größere Pakete zusammenfügen und als ein Paket behandeln.
Die Installationsskripte könnten dann auch nachfragen, ob die Datei bereits lokal gespeichert ist, von wo sie heruntergeladen werden soll oder ähnliches.

Die Installationsskripte können dann auch in diese Baumstruktur aufgenommen werden:
Code:
<i>
</i>-PUAE
    [Schnellkonfiguration]
    -kickstart
        [ROM Datei hinzufügen]
        1.3
        3.0
    -ADF
        [Diskettenimage hinzufügen]
        xy.adf
        ab.adf
        mn.adf
Bei Savegames ist da dass Problem, dass man für jedes Programm/Emulator wissen muss, wo und wie die gespeichert sind. Das müsste dann auch irgendwie in der PND-Datei hinterlegt werden,
 
Back
Top