Wie erstelle ich ein eigenes Plugin?

Games, Plugins, Utils, Tools, 3rdParty, etc...
masite
Erleuchteter
Erleuchteter
Beiträge: 649
Registriert: Donnerstag 7. März 2002, 21:11

Wie erstelle ich ein eigenes Plugin?

Beitrag von masite »

Hallo,
immer wieder, wenn man hier mal einen Vorschlag macht, heißt es, dann mach es doch selbst. Aber wie, das ist hier die große Frage?
Viele schreiben daraufhin, daß sie keine Ahnung davon haben, aber nie bekommt man hilfe, wie man da am Besten anfängt.
Da die meisten Mitglieder hier wahrscheinlich Windows User sind, sollte man mit einer Hilfe von Grund auf anfangen.
Was muß ich installieren?
Welche Programme brauche ich?
Wie bediene ich diese Programme?
Vielleicht wäre ja mal ein kleines Programm zum Testen nicht schlecht. In den meisten Programmiersprachen fängt man ja mit einem "Hallo Welt" an.
Vielleicht gibt es ja jemanden, der hier mal eine kleine Schritt für Schritt Anleitung postet.
1. 2. 3. und so weiter
Bis dann Martin
CU - Bis dann Martin
Nokia SAT 2xI / Sagem Kabel 2xA (schwarz)
essu
Tuxboxer
Tuxboxer
Beiträge: 2452
Registriert: Montag 21. Oktober 2002, 10:04

Beitrag von essu »

Wenn du nicht gleich in der LazyT-League spielen willst, ist der erste Schritt zu einem Plugin ein shell-script.

Dieses wird durch die xy.so in /var/tuxbox/plugins aufgerufen. In der Datei xy.cfg stehen der Name des Plugins und einige notwendige Parameter.

*.so Dateien gibt es für jedes Plugin. Kerlimann (Linus hab in seelig?) hat mal ein Set erstellt, dass /var/plugins/shell1, /var/plugins/shell2 usw. aufruft, dein shellscript müsste entsprechen shell1, shell2 heissen und in /var/plugins liegen. Du kannst aber auch in einem HexEditor nach /var/plugins/shell suchen und es durchj einen eigenen Namen ersetzen.

Vielleicht denkst du shell-script? Da kann man doch nichts mit anfangen. Das stimmt nicht. Ich schreibe im Moment selbst an einem, das Settings aus dem Internet lädt und bin immer noch begeistert, was mit shell-scripten möglich ist.

Einziger Wermutstropfen, dass http-request zwar im shell-script funktionieren, aber momentan nicht vollständig in Plugins.
Schon gelesen ???
ENIGMA-DOC
masite
Erleuchteter
Erleuchteter
Beiträge: 649
Registriert: Donnerstag 7. März 2002, 21:11

Beitrag von masite »

Das ist ja schon mal ein Anfang. Hast Du vielleicht mal ein Beispiel Script, in dem man mal ein bischen was verändern kann?
Und wie baue ich es ein? Wohin hochladen und wie starten?
CU - Bis dann Martin
Nokia SAT 2xI / Sagem Kabel 2xA (schwarz)
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

Ja, sowas fehlt.

Das Plugin selber ist eine dynamische Lib, die zur Laufzeit geladen wird (*.so = shared object). Das hört sich schlimmer an als es ist, die vorhandenen Makefiles kann man ja einfach übernehmen bzw. für seine Zwecke abändern.

Im Grunde bekommst du von der GUI eine Struktur mit Parametern, z.Bsp. Handle auf Framebuffer, LCD, IFB etc. übergeben, die du dann selber verwenden kannst bzw. welche noch zusätzliche Informationen (z.Bsp X/Y-Koordinaten die der Benutzer eingestellt hat) enthalten.

Somit ist das Plugin unabhängig von der GUI, dafür muß man andererseits alles selber gestalten.

Es gibt eine FX-Lib, welche die Spiele verwenden, die kenne ich nur rudimentär, sie enthält aber wohl einige Klassen und Routinen, die demjenigen, der nicht in der "LazyT-Liga" ;) spielen möchte hilfreich sein können.

Was genau möchtest du denn machen?

Npq
LazyT
Senior Member
Beiträge: 1260
Registriert: Samstag 6. Oktober 2001, 00:00

Beitrag von LazyT »

/me spielt in der Regional-Liga. Und das kann JEDER von euch mit etwas gutem Willen :wink:
masite
Erleuchteter
Erleuchteter
Beiträge: 649
Registriert: Donnerstag 7. März 2002, 21:11

Beitrag von masite »

LazyT hat geschrieben:/me spielt in der Regional-Liga. Und das kann JEDER von euch mit etwas gutem Willen :wink:
Kannst Du mir vielleicht ein paar Tips geben, wie man anfangen muß.
Betriebssystem, Programme, Abläufe u.s.w.
Wenn das wirklich jeder kann, dann kannst Du sicherlich auch was erklären.
CU - Bis dann Martin
Nokia SAT 2xI / Sagem Kabel 2xA (schwarz)
ChakaZulu
Developer
Beiträge: 457
Registriert: Sonntag 23. März 2003, 00:39

Beitrag von ChakaZulu »

hi,

s**** forum, meine schöne lange Antwort wurde einfach nicht gespeichert *arg*

da ich vor kurzem ein kleines spiel (von minesweeper inspiriert :wink: )
gemacht habe, wollte ich zumindest dazu eine kleine Anleitung schreiben, die einiges aus versch. Quellen und eigene Erfahrungen zusammenfasst. Bin allerdings noch nicht sehr weit gekommen :(

Für Windows kann ich dir leider keine Anleitung geben, unter http://www.dietmar-h.net ist aber ein yadd-howto zu finden. Wenn das mal funktioniert kannst du versuchen, mit dem cdk aus dem cvs ein eigenes YADD zu erstellen und davon zu booten. wenn das funktioniert, dann steht eigenen Änderungen nichts mehr im Weg.

Hast du im Forum schonmal gesucht, wie man unter Windows kompiliert? ist bestimmt irgendwo beschrieben, cygwin dürfte ein gutes Stichwort sein...

ciao,

ChakaZulu
LazyT
Senior Member
Beiträge: 1260
Registriert: Samstag 6. Oktober 2001, 00:00

Beitrag von LazyT »

Kannst Du mir vielleicht ein paar Tips geben, wie man anfangen muß.
Der Urschleim ist doch schon ewig dokumentiert.

Was ich mir vorstellen könnte wäre ein kleines Howto wie man ein Plugin schreibt. Ich denke da so an

- Grundgerüst
- Zugriff auf den Framebuffer
- Zugriff auf das LCD
- Abfrage der Fernbedienung

Später vielleicht noch FreeType (Nutzen von Fonts). Aber dazu braucht man halt Zeit, Lust - und Interessenten...
essu
Tuxboxer
Tuxboxer
Beiträge: 2452
Registriert: Montag 21. Oktober 2002, 10:04

Beitrag von essu »

LazyT hat geschrieben:Was ich mir vorstellen könnte wäre ein kleines Howto wie man ein Plugin schreibt.
Wenn ich dich richtig verstehe, dass du das machen würdest hättest du in mir einen Interessenten gefunden, ich würde mich auch bereit erklären, gegenzulesen , querzufragen oder dir, soweit ich kann ;) , anderweitig Unterstützung zukommen zu lassen.
Schon gelesen ???
ENIGMA-DOC
Ulli010
Einsteiger
Einsteiger
Beiträge: 140
Registriert: Donnerstag 31. Oktober 2002, 17:59

Beitrag von Ulli010 »

Genau sowas habe ich auch schon ewig gesucht, nur leider nie was gefunden. Das wäre doch sehr hilfreich.

CU Ulli01
LazyT
Senior Member
Beiträge: 1260
Registriert: Samstag 6. Oktober 2001, 00:00

Beitrag von LazyT »

Interest-Counter: 3

Naja...
essu
Tuxboxer
Tuxboxer
Beiträge: 2452
Registriert: Montag 21. Oktober 2002, 10:04

Beitrag von essu »

LazyT hat geschrieben:[...]Naja...
Du musst das nach dem Schneeballprinzip sehen...
Schon gelesen ???
ENIGMA-DOC
stikx
Einsteiger
Einsteiger
Beiträge: 259
Registriert: Mittwoch 5. März 2003, 19:03

Beitrag von stikx »

Gut, dann inkrementier ich den Counter um eins (auf 4)

Obwohl gerade LazyT's Sourcen in sich schon super dokumentiert sind.
Eine gute Quelle ist auch terrae's tuxcal source.

Komplett blick ich's auch noch nicht, aber fürs erste hats prima geholfen.

Viel schlechter siehts da mit der Doku der GUI's und der Demons aus.
Wo findet man denn dort eine halbwegs gute Doku zu?

Und als letztes die Bitte, Herr lass Zeit regnen, denn ohne die ist die beste Doku sinnlos :wink:
stikx
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Ich habe da auch ein kleines großes Problem :-?
Ich habe zwei Plugins die ich partou nicht im aktuellen AlexW Image zu laufen bekomme. Es ist ein cam-alpha Plugin (tauscht D und E cam-alpha aus) und ein ucode Plugin das die interne und die Original ucode tauscht.
In dem aktuellen yadd funktioniert das ganze problemlos und in einem jffs only funktioniert es auch nur nicht im AlexW Image.
Das reinkopieren der .so und der .cfg Dateien mache ich per Tuxbox Flashtools was bei anderen Plugins ja auch immer funtioniert hat (das Zoom Plugin funktioniert ja auch so)
Wo liegt der Fehler? Die Attribute habe ich natürlich auch geändert und dann die Box neugestartet. Wie gesagt im yadd habe ich genau die gleichen Verzeichnisse benutzt und da läuft es.
Bild
Gruß Gorcon
thegoodguy
Erleuchteter
Erleuchteter
Beiträge: 465
Registriert: Mittwoch 14. August 2002, 20:45

Beitrag von thegoodguy »

Das reinkopieren der .so und der .cfg Dateien mache ich per Tuxbox Flashtools was bei anderen Plugins ja auch immer funtioniert hat (das Zoom Plugin funktioniert ja auch so)
Du kannst die auch ins var legen:https://tuxbox.org/forum/viewtopic.php? ... ht=#179814
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Das hatte ich schon probiert aber das geht auch nicht. :-?
Die Plugins werden angezeigt laufen aber nicht.
Wass ich aber absolut nicht kappiere ist das sie im yadd problemlos laufen.
Gruß Gorcon
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

thegoodguy hat geschrieben:Du kannst die auch ins var legen:https://tuxbox.org/forum/viewtopic.php? ... ht=#179814
Dann stimmt aber der "Zeiger" der .so Datei nicht mehr.
Wie kann ich den mir anzeigen lassen und verändern?
Gruß Gorcon
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

$Counter=$Counter + 1
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

? :roll: Mit welchem Editor oder welchem Programm?
Gruß Gorcon
Zuletzt geändert von Gorcon am Donnerstag 26. Februar 2004, 13:56, insgesamt 1-mal geändert.
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

ich meinte für LazyT

$Interest-Counter = $Interest-Counter + 1
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Habe leider immernoch keine Lösung gefunden um die shell.so abzuändern so das ich die Script Datei ins /var/tuxbox/plugins verzeichniss legen kann. sie laufen nur im /var/plugins Verzeichniss. :cry: Gruß Gorcon
stikx
Einsteiger
Einsteiger
Beiträge: 259
Registriert: Mittwoch 5. März 2003, 19:03

Beitrag von stikx »

@Gorcon
Wenn Du denn Urcode von Sat24 benutzt, dann ändere doch den Pfad und kompiliere neu.

Code: Alles auswählen

#include <studio.h>
#include <plugin.h>
void plugin_exec()
{
system("/var/plugins/shell1");
}
Aus "/var/plugins/shell1" wird dann z.B. "/var/tuxbox/plugins/shell1"
Denn Sinn kann ich nicht unbedingt erkennen, aber who cares
stikx
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Ich habe eben auch gerade in einem anderen Beitrag gelesen das ich kompilieren muss. Ich weis zwar im Moment noch überhaupt nicht wie das geht hoffe aber das ich das irgendwie hinbekomme. :roll:
Ein deutsches HowTo wäre sehr sehr hilfreich.
Gruß Gorcon
essu
Tuxboxer
Tuxboxer
Beiträge: 2452
Registriert: Montag 21. Oktober 2002, 10:04

Beitrag von essu »

einfacher wäre, wenn die *so den Pfad aus der *cfg beziehen würde...
Schon gelesen ???
ENIGMA-DOC
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Tja, das wäre natürlich das gelbe vom Ei. :wink:
Gruß Gorcon