DBOX2-Modul

Aus TuxBoxWIKI
Wechseln zu: Navigation, Suche

1. Was ist ein Plugin


Um nicht zu viel zu sagen: Ein Plugin ist eine Erweiterung zu einem vorhanden Programm und hat folgende Attribute:

                  - Erweiterung
                  - dynamisch ladbar/unladbar
                  - Plugins werden unabhängig vom Ladeprogramm (Hauptprogramm) produziert
                  - Plugins sind abhängig vom Hauptprogramm
                  - Plugins müssen nicht von den gleichen Programmierern, wie dem Hauptprogramm programmiert werden
                  - Plugins müssen bestimmte Regeln befolgen (Eintrittspunkt, usw.), um einen stabilen Ablauf zu garantieren
                  - Durch bestimmte bereitgestellte Funktionen (Schnittstellen) können Plugins untereinander kommunizieren

Plugins können durch bestimmte Mechanismen in das Programm eingebungen (verbunden) werden (auch als (engl.:) linken bezeichnet).
Bevor ein Plugin (wie oben schon erwähnt) eingebunden werden kann, wird durch bestimmte Mechanismen versucht alle nicht gebundenen(nicht gelinkten) Symbole zu binden.
Bei Unix-System haben Module/Plugins oftmahls die Erweiterung so (shared object) und bei Windows dll. Beide Systeme können Plugins dynamisch laden und unladen. Es gibt kein einheitliches Aussehen eines Plugins, Eintrittspunkt, Funktionen die bei bestimmten Dingen aufgerufen werden, sind oftmals in den Programmen nicht gleich. Fehler die in Plugins vorkommen, lassen Funktionensstörungen vorkommen, bzw. andere Folgen(Absturz). Durch derartige Fehler können wichtige Daten verloren gehen.

Die Implemtation eines Plugins

Die Implementation eines Plugins sollte erst nach der ausführlichen Planung kommen. Die Planung beschreibt das Aussehen des Plugins, bzw. die verwendete Funktionen und deren späteren Programmierung. Während dieser Phase sollten alle wichtigen Eigenschaften des Hostes (Hauptprogramm) eingeholt bzw. berügsichtigt werden. Fehler inder Planung können viele Fehler in der Implementation haben. Spätere Fehler (wie schon oben erwähnt) können später arge Fehler hervorrufen (An die Coder).

Interface eines Modules

Jedes Program das Module zulässt hat ein andere Schnittstelle (oder mehrere), auch als Interface bezeichnet. Es gibt nur wenige Standards, z.B. VST (Musikbranche). Man sollte mit diesen Schnittstellen arbeiten, um einen Ablauf ohne Fehler zu griegen.

Ein Plugin

(ergänzen bzw. ändern) Ein C-Programm hat einen Eintrittspunkt und zwar ###main###. Main ist sozusagen die hauptfkt. von C. Jedes mal wenn Sie ein Programm aufrufen das in C gewritten ist, dann wird diese Funktion aufgerufen. Wenn Sie die Funktion beenden, wird auch das Programm beendet. Der Unterschied zu Plugins dabei ist das diese meistens keine Hauptfunktion haben, sondern nur Funktionen die bei bestimmten Zukommungen gerufen werden. Stellen Sie sich das Plugin als ein Stecker vor, diesen, z.B. Maus-Stecker (PS/2) stecken Sie in die Buchse, dabei verbinden Sie die Kontakte der Buchse mit dem Stecker, bei Plugins ist das genauso. Stecker und Buchse sind hierbei die Schnittstellen, die die Plugins benutzen um mit der Welt zu sprechen.

Bei der DBOX2 hat ein Plugin eine Methode/Funktion die vom Lader aufgerufen wird, wenn Sie es laden. Diese Funktion heißt plugin_exec. Der Funktion wird zusätzlich eine Option übergeben, und zwar eine Struktur: Sie ist vom Typ PluginParam. Eine Struktur hat mehrere Felder, die Sie während des Programmierens/Laufzeit ansprechen können.

Die Strukture PluginParam hat folgende Elemente:

       - id __ (bearbeiten)
       - plugin_next
       - var

==Erstes Programm==

Es gibt Dinge, die sind ausgedehnt, aber was wirklich ausgedehnt ist, ist ein Hallo-Welt-Programm. Als fangen wir mit einem Programm an das folgendes tut:

- Ausgabe eines Rechteckes auf der Bildschirmmitte
- Ausgabe eines Strings "TestProgramm"

Wie ich oben schon erwähnt habe, gibt es eine Bibliothek mit der man graphische Funktionen durchführen kann, libfx2.

Hier der Code: /////BITTTTEEEEEE TESTEN

#include "draw.h"