AUTO-Button

So, hab mal etwas rumprobiert und eine Lösung mit Button und Script gefunden.

Zunächst brauchst du den aktuellen Snapshot (Build 817).

Dann legst du dir ein Bildschirmobjekt vom Typ statischer Text an - das wird der Button -, und stellst Font usw. Außerdem ist es wichtig, dem Button auf der Seite “Erweitert” eine Fernsteuerungs-ID zu verpassen, zum Beispiel “AUTOMATIONBUTTON”.

ein und speicherst die Konfiguration.

Sodann öffnest du die screenobjects.ini im Texteditor, suchst den Abschnitt des neuen statischen Texts, und fügst dort folgende Zeile ein:

ClickCommand=AUTOMATION 1 ON/OFF

Damit wird der Text zu einem Button, und wenn du ihn anklickst, wird der angegebene Befehl ausgeführt, also die Automation ein- bzw. ausgeschaltet.

Nun geht es noch darum, den aktuellen Automation-Status in dem Textobjekt darzustellen. Dafür sorgt das folgende Notification Script:

procedure UpdateButton;
begin
  if PlaybackControl(0).GetAutomation then begin
    ExecuteCommand('AUTOMATIONBUTTON TEXT AUTO');

    ExecuteCommand('AUTOMATIONBUTTON BACKGROUNDCOLOR #FF0000');

    if trunc(now * 24 * 60 * 60 * 2) mod 2 = 0 then
      ExecuteCommand('AUTOMATIONBUTTON BACKGROUNDCOLOR #FFFF00')
    else
      ExecuteCommand('AUTOMATIONBUTTON BACKGROUNDCOLOR #FF0000');
  end
  else begin
    ExecuteCommand('AUTOMATIONBUTTON TEXT ASSIST');
    ExecuteCommand('AUTOMATIONBUTTON BACKGROUNDCOLOR #00FF40');
  end;
end;

procedure OnLoad;
begin
  UpdateButton;
  EnableTimer(500);
end;

procedure OnAutomationOn(PlaylistIndex: integer);
begin
  UpdateButton;
end;

procedure OnAutomationOff(PlaylistIndex: integer);
begin
  UpdateButton;
end;

procedure OnTimer;
begin
  UpdateButton;
end;

begin
end.

Herzstück ist die Prozedur UpdateButton, die dem Textobjekt je nach Zustand der Automation verschiedene Befehle schickt (über seine Fernsteuerungs-ID), die seine Hintergrundfarbe und seinen Text verändern. Die UpdateButton-Prozedur wird zu verschiedenen Gelegenheiten aufgerufen:

  • Wenn das Script geladen wird (OnLoad)
  • Wenn sich der Zustand der Automation ändert (OnAutomationOn, OnAutomationOff)
  • Alle 500ms per Timer, um das Blinken zu realisieren

Fertig :slight_smile: