Plugin-Designprinzipien
aus dem DMXControl-Wiki
2.2 Elementare Programmierelemente und Konventionen
Wir empfehlen ein 3 schichtiges Design, d.h. für ein Plugin sollten mindestens 3 Module erstellt bzw. angepasst werden.
[[Bild:]]
Daneben sollte wie in diesem Beispiel jedes Plugin ein Hilfefenster besitzen, in dem die Version, der Autor und eine kurze Beschreibung gegeben werden (frmAbout-Form).
Je nach Plugin können natürlich weitere Klassen oder Module hinzukommen, falls Sie vorhandene Controls wiederverwenden möchten.
Der GUI- Modul besteht in VB6 aus einer Form und dazugehörigem Programmcode. Man sollte darauf achten, dass in diesem Modul möglichst nur die Oberflächenaspekte implementiert werden und keine DMX-Wert-Bearbeitung. Das hat zwei Vorteile:
- man kann leichter die GUI ändern, ohne dass die DMX-Logik „Schaden nimmt“
- die separat implementierte DMX-Logik kann besser wiederverwendet werden
Der Plugin-Logik Modul befasst sich mit den Algorithmen der Verarbeitung, Analyse und Generierung von DMX-Werten. Dazu empfängt er die von DMXControl ausgegebenen DMX-Werte über interface C und manuelle DMX-Wertänderungen über Interface A. Anderererseits kann dieser Modul über Interface B Werte an DMXControl senden oder über Interface D im GUI-Modul visualisieren lassen.
Der Plugin Interface Klassenmodul hat zwei Aufgaben:
- Hier werden die call back calls von DMXControl aufgenommen und ausgewertet.
- Alle notwendigen Konfigurationswerte für die Integration des Plugins in DMXControl werden hier gesetzt, z.B. Name des Plugins oder Verhalten bei der Aktivierung.
Die Klasse DMXCPlugin_Helper liefert das Interface zum Aufruf der Kommandos durch ein Plugin. Dieses Interface ist im Anhang 1 beschrieben. Ist das Plugin aktiv, werden bestimmte Überwachungen durchgeführt ("Sicherheitsfunktionen" für plug-ins), die die Stabilität des DMXC kernels gewährleisten sollen. Insbesondere entscheidet DMXC, ob aufgrund gewisser Bedingungen bestimmte Operationen überhaupt ausgeführt werden dürfen. (Bisher noch nicht, müsste man überlegen was man sinnvoll kontrollieren kann, ohne zu viele Ressourcen zu verschwenden)
Alle Ausgabe-Plugins unterliegen einer Namenskonvention: Sie müssen mit „.out.dll“ enden. Beispiel: Dmx4All.out.dll Dies gilt nicht für Anwendungsplugins.
Hier geht es zum Plugin Tutorial 1
