Plugin Interface Referenz
aus dem DMXControl-Wiki
Plugin Interface Referenzen
Alle hier genannten Methoden gehören zur Klasse DMXCPlugin_Helper. Daher sind die folgenden Schnittstellen als Methode eines Objektes dieser Klasse aufzurufen.
Die Interfaces sind in in zwei Modulen definiert, diese müssen im Interface-Modul mit importiert werden
Implements IDMXCPlugin Implements IDMXCModule
Die benötigten Typdefinitionen befinden sich in DMXCTypeLib.dll. Daher muss dieser Modul sowohl im Programmverzeichnis von DMXControl als auch in Ihrer VB6-Umgebung bekannt gemacht werden. Dazu müssen Sie in VB6 unter dem Projektmenü den Punkt "References" aufrufen und die Verknüpfung zu DMXCTypeLib.dll herstellen. Man kann sich z.B. eine lokale Kopie im VB6-Arbeitsverzeichnis erstellen.
Public mHelper
Folgende Interfaces müssen in einem Plugin implementiert werden:
| Methode | Aufgerufen von | Beschreibung | Parameter/Variable/Returnwert |
|---|---|---|---|
| Private Function IDMXCPlugin_Configure() As Boolean | Plugin-Konfiguration (Button "Konfigurieren") | Ruft die GUI für ggfs. erforderliche Plugin-Konfiguration | IDMXCPlugin_Configure (Boolean) teilt mit, ob ein Konfigurationsmemü existiert |
| Private Function IDMXCPlugin_Enable() As Boolean | Plugin-Konfiguration/Starten aus dem Menü "Fenster" | Kann Funktionsrufe für das Aktivieren des Plugins enthalten (Aktivieren = Haken in Plugin-Liste setzen) | IDMXCPlugin_Enable (Boolean) teilt mit, ob die Operationen beim Aktivieren erfolgreich waren |
| Private Function IDMXCPlugin_Disable() As Boolean | DMXControl | Kann Funktionsrufe für das Deaktivieren des Plugins enthalten (Deaktivieren = Haken in Plugin-Liste entfernen) | IDMXCPlugin_Disable (Boolean) teilt mit, ob die Operationen beim Deaktivieren erfolgreich waren |
| Private Function IDMXCPlugin_Init(CallingAppTitle As String, MyFilename As String, DMXCPluginHelper As DMXCTypeLib.IPluginHelper) As Boolean | DMXControl (Laden beim Programmstart) | Kann Funktionsrufe für das Initialisieren des Plugins enthalten (Initialisieren = Laden beim Programmstart) | |
| Private Function IDMXCPlugin_Term() As Boolean | DMXControl (Schließen des Plugins) | Kann Funktionsrufe für das Terminieren des Plugins enthalten (Terminieren = Schließen des Plugins) | |
| Private Property Get IDMXCPlugin_PluginName() As String | Plugin-Konfiguration | übergibt der Plugin-Konfiguration den Namen des Plugins | IDMXCPlugin_PluginName (String) |
| Private Property Get IDMXCModule_ModuleInfo() As DMXCTypeLib.Type_Module_Info | DMXControl beim Laden des Programms | übergibt diverse Informationen über das Plugin (siehe Tabelle unten) |
In der Methode IDMXCModule_ModuleInfo sind folgende Datenfelder anzupassen:
| Attribut | Beschreibung | Kommentar/Beispiel |
|---|---|---|
| GUID | eindeutige ID für das Plugin | "{b61b4c42-17ed-11da-94c3-00e08161165f}" (GUID-Generator) |
| Name | Bezeichnung des Plugins in Konfigurationsliste, Menübaum und Kanalübersicht (Mixerkanäle) | "Lauflicht Demo Plugin" |
| Description | zusätzliche Beschreibung, z.Z. ungenutzt | "Simple GUI für Lauflichter" |
| Author | Name des Programmierers, z.Z. ungenutzt | "Max Mustermann" |
| Experimental | zeigt experimentellen Status im Menübaum an, falls noch nicht ausführlich getestet | True/False |
| ProvidesToolWindow | gibt an, ob separates GUI-Fenster für Plugin existiert | True/False |
| Category | gibt an, in welche der Kategorien des Menübaums das Plugin einsortiert wird | CAT_Control |
| FormName | übergibt VB-Name des Plugin-Formulars (Oberfläche) | "frmTutorMain" |
| Frm | übergibt eine Referenz auf das Plugin-Formular | Set .Frm = frmTutorMain |
| ProvidesCommand | gibt an, ob Befehl für die Plugin-Funktionalität definiert wird, z.Z. noch nicht unterstützt | False |
| ProvidesSceneType | gibt an, ob Plugin neuen Szenentype definiert, z.Z. noch nicht unterstützt | False |
| UsesProvidedOutput | gibt an, ob Plugin Signale an den Mixer senden möchte | True |
| UsesMessaging | gibt an, ob Plugin DMXControl-Messages empfangen möchte | True/False |
| Messages | Collection, zu der alle zu empfangenden Messages hinzugefügt werden | Messages.Add MSG_Channel_Set |
Aus der Plugin-Anwendung können folgende Funktionen gerufen werden:
| Methode | Beispiel | Beschreibung |
|---|---|---|
| Public Function SetChannel(Channel As Long, Value As Long, IgnoreChange As Boolean) | Call mHelper.MyStream.SetChannel(mDimmerAddr, dmxv, True) | Ausgeben eines DMX Wertes auf dem angegebenen Kanal. Der dritte Parameter gibt an, ob diese Wertänderung in der Szenenverwaltung ignoriert werden soll. |
| Public Function DMXC_Channel_IsDimmer(Channel As Long) As Boolean . | Abfrage, ob der Kanal für die Helligkeit eines Gerätes zuständig ist | |
| Public Property Get DMXC_CHANNEL_MAXCHANNELS() As Long | Gibt die Nummer des höchsten verwendbaren Kanals zurück | |
| Public Function DMXC_Channel_GetValue(Channel As Long) As Long | dmxValue = mHelper.ChannelGetValue(currentChannel) | Hiermit kann das Plugin den aktuellen Wert abfragen. Wird z.B. bei der Plugin-Initialisierung benötigt. |
Die Interfaces werden laufend erweitert. Bitte diskutiert hier (oder schreibt uns), welche Funktionen ihr für Eure Plugins benötigt.
