IoWarriorPFLSwitch Script in V4

Hallo,
ich habe mir heute die 4 er Demo und den aktuellen Snapshot heruntergeladen, um zu prüfen, dass alles läuft, bevor ich die Lizenz kaufe.
Jetzt habe ich MairList soweit eingerichtet und konfiguriert.

Hier das Benachrichtigungsscript, welches ich nutzen wollte (IOWarriorPFLSwitch.mls):

[code]{-------------------------------------------------------------------------------
IOWarriorPFLSwitch.mls - Notification Script for mAirList

Sets a port on the IO-Warrior as long as PFL is active. Can be used
to switch monitor speakers to a PFL sum.

Author: Torben Weibert tw@mairist.com
Date: 2007-01-07

See http://www.mAirList.com for further information.
-------------------------------------------------------------------------------}

procedure OnPFLOn(PlayerType: TPlayerType; PlaylistIndex: integer; PlayerIndex: integer; PFLCount: integer);
begin
if PFLCount = 1 then
IOWarriorRemote(0).SetPort(31, true);
end;

procedure OnPFLOff(PlayerType: TPlayerType; PlaylistIndex: integer; PlayerIndex: integer; PFLCount: integer);
begin
if PFLCount = 0 then
IOWarriorRemote(0).SetPort(31, false);
end;

begin
end.
[/code]

Unter Benachrichtungsscripts habe ich das o.g. Script (welches ich aktuell noch aus V. 2.2.2 benutze) eingefügt. Leider wird jedoch bei PFL der IO Warrior nicht umgeschaltet, es passiert einfach garnichts.

Gut dachte ich mir, es gibt ja noch die Aktionen, dort gibt es auch die möglichkeit etwas zu machen wenn ich vorhören anhabe, bzw. wenn es wieder ausgeht.

Dort habe ich testhalber ein script erstellt, welches einfach den Weg umschaltet. Also eins das den IO anschaltet und bei Vorhören Ende, ein Script, welches den IO wieder ausschaltet.

zum Einschalten (unter “Wenn ein Element vorgehört wird” bei Aktionen):

procedure OnPFLOn(PlayerType: TPlayerType; PlaylistIndex: integer; PlayerIndex: integer; PFLCount: integer); begin IOWarriorRemote(0).SetPort(31, true); end.

und zum Ausschalten (unter “Wenn keine Element mehr vorgehört wird” bei Aktionen):

procedure OnPFLOff(PlayerType: TPlayerType; PlaylistIndex: integer; PlayerIndex: integer; PFLCount: integer); begin IOWarriorRemote(0).SetPort(31, false); end.

Leider half auch dies nichts, bei PFL in egal welchem Player oder in der Cartwall passiert nichts.
Testhalber habe ich auch unter den Aktionen mal unter beiden o.g. Bereichen das Einfügen einer Datei angelegt, auch das passiert nicht. Wenn ich egal was vorhöre, passiert einfach garnichts von den Aktionen.

Jetzt frage ich mich, habe ich irgendetwas falsch gemacht, oder ist es ein Bug?

Hallo,

wir haben seit der heutigen Installation von mairlist4 genau das gleiche Problem!
D.h. das Script läuft bei V. 3.6 noch einwandfrei, die selbe MLS auf V. 4.0.1 nicht mehr.
Ich bekomme folgende Fehlermeldung:
19.11.2011 23:15:54 Fehler Runtime error “List index out of bounds (4)” in notification script C:\Program Files\mAirList 3.1\scripts\notification\IOWarriorPFLSwitch_rkf.mls, handling message: PFLSOURCECONTROL_START 46D104E607D43483 ? 0001

und dann nocheinmal beim Stop-Befehl.

Vielen Dank für schnelle Hilfe :slight_smile:

Jack
Radio Klinikfunk

Zwischen mAirList 3 und mAirList 4 haben sich die Köpfe (Parameterlisten) etlicher Script-Prozeduren geändert. Ich würde erstmal anhand des neuen Notification Script Templates von v4 checken, ob das alte Script korrekt angepasst wurde. Ihr könnt euer aktuelles Script auch gerne hier komplett posten, dann werfe ich auch noch einen Blick darauf.

Ich meine auch, ich hätte alle mitgelieferten Beispiel-Scripts auf Funktionsfähigkeit getestet, will das aber gerne noch einmal wiederholen.

Hallo,

Torben hat recht, lag an dem geänderten Script, das müsste nun so gehen (bei mir funktionierts):

[code]{-------------------------------------------------------------------------------
IOWarriorPFLSwitch.mls - Notification Script for mAirList

Sets a port on the IO-Warrior as long as PFL is active. Can be used
to switch monitor speakers to a PFL sum.

Author: Torben Weibert tw@mairist.com
Date: 2007-01-07

See http://www.mAirList.com for further information.
-------------------------------------------------------------------------------}

procedure OnPFLOn(Item: IPlaylistItem; PFLCount: integer);
begin
if PFLCount = 1 then
IOWarriorRemote(0).SetPort(31, true);
end;

procedure OnPFLOff(Item: IPlaylistItem; PFLCount: integer);
begin
if PFLCount = 0 then
IOWarriorRemote(0).SetPort(31, false);
end;
[/code]

Korrekt.

Bei mAirList 4 bezieht sich “OnPFLOn” und “OnPFLOff” jetzt auf alle Vorhörfunktionen gemeinsam, auch auf den Cue Editor und den MixEditor.

Für die PFL-Funktionen der einzelnen Player gibt es nun OnPlayerPFLOn usw.

Super. Danke für die schnellen Antworten.
Bei uns gehts jetzt auch mit den geänderten Script.