SKRIPT: Autostart Playlist on Encoder Connected

Ganz, ganz schlechte Idee! Damit schickst du das Script in eine Endlosschleife, in der unaufhörlich der Zustand der Encoder-Verbindung abgefragt wird, ohne Pause dazwischen. Achte mal auf die CPU-Auslastung von mAirList, die dürfte kräftig nach oben gehen!

Ich würde das folgendermaßen lösen: Mach dir eine globale Variable “wasDisconnected” vom Typ boolean, in der gespeichert ist, ob die Verbindung zwischenzeitlich getrennt war. Nur wenn das der Fall ist wird das Script im Timer aktiv.

var
  wasDisconnected: boolean;

procedure OnLoad;
begin
  wasDisconnected := true;
  EnableTimer(1000);
end;

procedure OnTimer;
begin
  if wasDisconnected and (Encoder.GetConnections.GetItem(1).GetState = ecsConnected) then begin
    ExecuteCommand('AUTOMATION 1 ON');  	
    ExecuteCommand('AUTOMATION 1 PLAY');
    ExecuteCommand('AUTOMATION 1 OFF');
    wasDisconnected := false;
  end
  else if Encoder.GetConnections.GetItem(1).GetState = ecsDisconnected then
    wasDisconnected := true;
end;

begin
end.