Plugin Interface Erweiterungen ab DMXControl 2.10

aus dem DMXControl-Wiki

Wechseln zu: Navigation, Suche
- Baustelle !

Die Beschreibung ist noch in Bearbeitung, bitte Geduld!

Inhaltsverzeichnis

Plugin Interface Erweiterungen in DMXControl 2.10

In der Version 2.10 wird die Plugin-Schnittstelle um einige wesentliche Funktionen erweitert.

  • Fenster-Management
  • Kommandos

Fenster-Management

Für alle Plugins, die eine graphische Oberfläche haben kann zusätzlich die Schnittstelle "IExternalWindow" implementiert werden. Diese enthält Funktionen zum Fenster-Management des Plugins und ermöglicht es DMXControl den Zustand und die Position des Pluginfensters zu ermitteln, zu speichern und bei Neustart von DMXControl dieses auch direkt an der alten Position zu starten.

Im Formular des Plugins muss die Schnittstelle implementiert werden:

Implements IExternalWindow


und folgende Funktionen/Properties der Schnittstelle muss das Plugin implementieren:

Private Function IExternalWindow_showWindow() As Boolean

Private Function IExternalWindow_hideWindow() As Boolean

Private Function IExternalWindow_loadWindow() As Boolean

Private Function IExternalWindow_unloadWindow() As Boolean

Private Property Get IExternalWindow_isOpen() As Boolean

Private Property Let IExternalWindow_WindowState(RHS As Long)

Private Property Get IExternalWindow_WindowState() As Long


Die Bedeutung der einzelnen Elemente ist eigentlich sprechend, so dass auf eine detaillierte Beschreibung der einzelnen Funktionen hier verzichtet wird. Eine konkrete Implementierung kann dem "DMXC Plugin Tutorial"-Plugin entnommen werden.


Kommandos

Die Verwendung von Kommandos in Plugins ist ab DMXControl 2.10 in beide Richtungen möglich. D.h., man kann im Plugin eigene Kommandos definieren, die dann in DMXControl zur Buttonbelegung, Szenendefinition, usw. auftauchen und man kann auch vom Plugin aus auf alle in DMXControl vorhandenen Kommandos zugreifen.


Definition eigener Kommandos

Um eigene Kommandos bereitzustellen, muss das Plugin die Schnittstelle ICommandServer implementieren.

implements ICommandServer

Folgende Funktionen/Properties müssen implementiert werden:

'
' mit diesem Namen taucht das Plugin in der Kommandoliste in DMXC auf
'

Private Property Get ICommandServer_Name() As String
'
' hier wird auf die Kommandos reagiert

Private Function ICommandServer_ExecuteCommand(FirstSelection As String, SecondSelection As String, NewValue As Long, Optional Stream As DMXCTypeLib.IDMXMixerChannel, Optional AdditionalData As PropertyBag) As Variant


'
' hier wird die erste Ebene der Kommandostruktur erstellt

Private Function ICommandServer_GetFirstOptions() As DMXCTypeLib.IKeyCollection
 Set ICommandServer_GetFirstOptions = New KeyCollection
 With ICommandServer_GetFirstOptions
  .Add mHelper.Translator.Translate("Activate Function"), "FUNCTION"
  ...
 End With
End Function
'
' hier wird die zweite Ebene der Kommandostruktur erstellt

Private Function ICommandServer_GetSecondOptions(FirstSelection As String) As DMXCTypeLib.IKeyCollection

 Set ICommandServer_GetSecondOptions = New KeyCollection
 With ICommandServer_GetSecondOptions
  If FirstSelection = "FUNCTION" Then
   .Add mHelper.Translator.Translate("an"), "ON"
   .Add mHelper.Translator.Translate("aus"), "OFF"
  ElseIf FirstSelection = "LISTSELECT" Then
   .Add mHelper.Translator.Translate("nächster"), "NEXT"
   .Add mHelper.Translator.Translate("vorheriger"), "PREVIOUS"
   .Add "-----", "-----"
   .Add "1", "1"
   ...
  ElseIf FirstSelection = "VALUE" Then
   .Add mHelper.Translator.Translate("1. Wert"), "1.VALUE"
   ....

  End If
 End With
End Function

Zugriff auf die Kommandos von DMXControl

Über die hier beschriebenen Methoden ist es möglich alle in DMXControl vorhandenen Kommandos zu benutzen. D.H., man kann Szenen und Effekte anwählen, starten, stoppen und vieles mehr (alles, was man auch auf einen Button legen kann). Um auf die Kommandos zugreifen zu können, braucht man ein spezielles ExtendedListView-Control für VB6. Dieses kann man aus dem Internet herunterladen (http://vcreations.net/product.asp?pid=1) und installieren. Mit den in die Plugin-Schnittstelle eingebauten Funktionen kann ein solches ExtListView gefüllt und genutzt werden.

Downloads

DemoPlugin.zip

Persönliche Werkzeuge
Buch erstellen