IScCommandControl

<< Klicken Sie hier um das Inhaltsverzeichnis anzuzeigen >>

Navigation:  Anleitungen > UdpDevice Plugin konfigurieren >

IScCommandControl

namespace Sohard.Dabis.StudioController.Contracts.Scripting

{

  // Als Parameter werden die Nummer des Steuerbefehles (absichtlich als int wegen

  // Scripting) und der optionale Parameter des Steuerbefehles übergeben.

  public delegate void ScControlCommandHandler(int command, int? parameter);

 

  // Als Parameter werden der Steuerbefehl und die optionalen Parameter des Steuerbefehles

  // übergeben (command und parameters dürfen nicht null sein).

  public delegate void ScTextCommandHandler(string command, string[] parameters);

 

  // Als Parameter werden die Nummer der Statusmeldung (absichtlich als int wegen

  // Scripting) und der optionale Parameter der Statusmeldung übergeben.

  public delegate void ScStatusMessageHandler(int status, int? parameter);

 

  // Als Parameter werden die Nummer des Steuerbefehles (absichtlich als int wegen

  // Scripting) und die optionalen Parameter (kann null sein) des Steuerbefehles übergeben.

  public delegate void ScNumericInputCommandHandler(ref bool handled, int command, int[] parameters);

 

  public interface IScCommandControl

   {

      /// <summary>

      /// true falls das Abhaken eingeschaltet ist, sonst false.

      /// </summary>

      bool Abhaken { get; }

 

      /// <summary>

      /// true falls der Automat eingeschaltet ist, sonst false.

      /// </summary>

      bool Automat { get; }

 

      /// <summary>

      /// true falls PFL aktiv ist, sonst false.

      /// </summary>

      bool Pfl { get; }

 

      /// <summary>

      /// Wird ausgelöst wenn der Studio Controller einen numerischen Steuerbefehl

      /// versendet (aus der Playlist bzw. dem Sendeplan).

      /// </summary>

      event ScControlCommandHandler ControlCommandFired;

 

      /// <summary>

      /// Wird ausgelöst wenn der Studio Controller einen Text-Steuerbefehl

      /// versendet (aus der Playlist bzw. dem Sendeplan).

      /// </summary>

      event ScTextCommandHandler TextCommandFired;

 

      /// <summary>

      /// Wird ausgelöst wenn der Studio Controller eine Statusmeldung versendet.

      /// </summary>

      event ScStatusMessageHandler StatusMessageFired;

 

      /// <summary>

      /// Wird ausgelöst wenn der Studio Controller einen Steuerbefehl empfängt (nach der

      /// Command Hanlder Extension abgegriffen).

      /// </summary>

      event ScNumericInputCommandHandler InputCommandReceived;

 

      /// <summary>

      /// Sendet einen Steuerbefehl an den Studio Controller.

      /// </summary>

      /// <param name="command">Die Nummer des Steuerbefehles.</param>

      /// <param name="parameter">Ein optionaler Parameter (abhängig vom Steuerbefehl).</param>

      /// <param name="delay">Optionale Verzögerung in Millisekunden.</param>

      void SendInternalCommand(int command, int? parameter = null, ushort delay = 0);

   }

}