AUTO-Button

Mahlzeit!

Wäre es möglich, das Feld AUTO (für die aktivierte Automation) ähnlich wie den OnAir-Staus als konfigurierbares Screenobjekt zu realisieren? Wenn also die Automation aktiviert ist, blinkt dieses Objekt dann z.B. in rot und im Assist-Mode statisch in grün.

Ja, ich weiss, das es die Leiste mit den AUTO/ASSIST-Buttons gibt, aber diese Dinger sind mir persönlich zu klein.

Mit meinem Vorschlag wäre immer sofort und auf einem Blick deutlich zu erkennen, in welchem Playlist-Status sich mAirList befindet.

Gruss
Maic

kannst dir ja mittlerweile selber basteln mit dem “button” screenobject.

Daran habe ich noch gar nicht gedacht… Stellt sich mir die Frage, ob der den Status auch annimmt, wenn ich den Auto/Assist-Modus über die Fernsteuerung (Gamepad) wechsle.

Ich probiers mal…

Nee, macht keinen Sinn mit dem Button. Der wechselt ja den Anzeige-Status nicht so wie der OnAir-Schalter, bzw. der OnAir-Status. Na mal sehen, vielleicht bastelt der Torben ja was. Wäre schön :wink:

Man kann das mit einem Script und mit der Fernsteuerungs-ID des Buttons realisieren. (Naja, alles bis auf das Blinken vielleicht.)

Hab leider gerade keine Zeit das im Detail zu erklären.

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:

Melde: Funktioniert super! Danke!

feine Sache :wink:

hey. ich wollte das auch machen, hab mich an deine anleitung gehalten, bei mir schreibt mairlist beim start aber folgende fehlermeldung. ( version ist der aktuelle Snapshot )

[code]29.11.2010 21:26:38 Fehler Fehler beim Laden des Benachrichtigungs-Scripts D:\mAirList\scripts\notification\NEU AUTO.mls: [Error] (3:1): Syntax error

[Error] (3:1): Unexpected end of file[/code]

Vermutlich fehlt das “begin end.” am Ende. Aber genau kann man das nur sagen, wenn du dein Script postest.

ich habe dein script, welches du oben gepostet hast, 1:1 übernommen .

[code]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.[/code]

Hier läuft das Script, ohne Fehlermeldung (mAirList 3.1.4).

Kontrollier nochmal, ob beim Copy/Paste wirklich nichts verlorengegangen ist.

Bei mir läuft’s auch, lediglich “klickbar” ist es nicht, war mir auch nie aufgefallen, weil ich die den Status per Remote über USB umschalte.

jz funkts danke ! problem war anscheinend das ich am mac den text kopiert hatte und damit dann auf den windows rechner gegangen bin, hab die leerzeichen alle gelöscht dann is es gangen, fragt mich nicht warum ??? XD

Evtl. war ein Unicode-BOM davor.