Hallo,
bevor ich hier loslege wollte ich mich erstmal kurz vorstellen. Also ich bin der Frank aus der Nähe von Düsseldorf, 55 Jahre jung und Elektroniker. Ich habe hier im Forum schon oft gesucht und bin bis jetzt auch immer fündig geworden, dafür vielen Dank und auch für die vielen interessanten Beiträge, die ich hier gelesen habe. Tolles Forum mit kompetenter Hilfe.
Nun zu meinem (kleinen) Problem. In der Suche bin ich zur 5er Version fündig geworden, allerdings geht das in meiner 6.2.1 Build 4117 Version leider nicht. Ich habe im Background Script 3 Aufrufe zur Cartwall, die nicht gehen:
// Called when cart player is started
procedure OnCartwallPlayerStart(PlayerIndex: integer; Item: IAudioCartwallItem; PlaylistItem: IPlaylistItem);
begin
COMPORT('COM1').SendStr('4'); //01.04.2020
end;
// Called when cart player is stopped
procedure OnCartwallPlayerStop(PlayerIndex: integer; Item: IAudioCartwallItem; PlaylistItem: IPlaylistItem; Duration: TTimeValue);
begin
COMPORT('COM1').SendStr('d'); // Cart Player stopp 01.04.2020
end;
// Called when cart player reaches EOF warning point
procedure OnCartwallPlayerEOFWarning(PlayerIndex: integer; Item: IAudioCartwallItem; PlaylistItem: IPlaylistItem);
begin
COMPORT('COM1').SendStr('D'); //01.04.2020
end;
Alternativ bin ich ausgewichen auf folgenden Aufruf, das geht auch mit Start / Stopp, aber die EOF Warnung fehlt mir leider:
procedure OnCartwallPlayerStateChange(PlayerIndex: integer;
OldState: TPlayerState; NewState: TPlayerState;
Item: IAudioCartwallItem; PlaylistItem: IPlaylistItem;
OnAirMode: TCartwallOnAirMode);
begin
if NewState = psPlaying then
begin
ComPort('COM1').SendStr('4');
end
else if NewState = psStopped then
begin
ComPort('COM1').SendStr('d');
end
else if NewState = psFlashEOF then
begin
ComPort('COM1').SendStr('D');
end;
end;
begin
end.
Angewandte Grüße
TSD
Nicht nur das: Der Code wird auch nicht beschädigt (Einrückungen, Satzzeichen usw.).
erstmal Danke für die schnelle Hilfe und für die Hinweise zur Lesbarkeit, ich versuche sie zu beherzigen.
Ich habe das gerade probiert, aber geht leider nur mit Einschränkungen. Start + Stopp gehen, Blinken macht er leider nicht. Hab die Abfrage zum Blinken mal zum Testen in die Mitte verschoben, hat aber nicht funktioniert. Dann habe ich mal die ASCII Zeichen, die über die COM geschickt werden vertauscht, um sicher zu gehen dass das Kommando “Blinken” (D) an sich von der dahinter liegenden Schaltung auch richtig umgesetzt wird, das hat dann funktioniert.
Sieht so aus, als ob psFlashEOF nicht unterstützt wird.
Kurze Frage dazu, gibt es irgendwo eine Übersicht dazu, also welche “Zustände” in den Prozeduren unterstützt werden?
die Einstellungen die Du hier als Screenshoot abgelegt hast, sind bei mir genauso, nur die EOF Warnung steht auf 10S (Standard). Haken bei "während EOF-Warnung blinken" ist gesetzt (Standard).
Mairlist GUI blinkt auch, aber das Script reagiert leider nicht.
Gruß Frank
OnCartwallPlayerEOFWarning ist richtig, war aber offenbar kaputt. Ich lade gerade Snapshot Build 4177 von 6.2 noch, bitte schau mal, ob es da wieder geht. Fließt dann automatisch auch mit in die 6.3 ein.
Alle von “psPFL” abwärts sind “virtuelle” Zustände; die kommen in der Realität (OnPlayerStateChange etc.) nicht vor. Sie sind nur als TPlayerState modelliert, weil so das Auslesen und Verarbeiten der skin.ini vereinfacht wird. Ihr könnt sie in euren Scripts einfach ignorieren.
Hallo,
habe es ausprobiert und kann sagen, dass nun die 3 Aufrufe funktionieren, super
Getestet mit Snapshot Build 4177 von Version 6.2.
Preformatted text// Called when cart player is started
procedure OnCartwallPlayerStart(PlayerIndex: integer; Item: IAudioCartwallItem; PlaylistItem: IPlaylistItem);
begin
COMPORT('COM1').SendStr('4'); //01.04.2020
end;
// Called when cart player is stopped
procedure OnCartwallPlayerStop(PlayerIndex: integer; Item: IAudioCartwallItem; PlaylistItem: IPlaylistItem; Duration: TTimeValue);
begin
COMPORT('COM1').SendStr('d'); // Cart Player stopp 01.04.2020
end;
// Called when cart player reaches EOF warning point
procedure OnCartwallPlayerEOFWarning(PlayerIndex: integer; Item: IAudioCartwallItem; PlaylistItem: IPlaylistItem);
begin
COMPORT('COM1').SendStr('D'); //01.04.2020
end;
Vielen Dank für die Hilfe und für die Übersicht der einzelnen Player-Zustände.
LG Frank
gelten die Zustände noch als aktuell oder sind die teilweise (wie ich vermute) in die Prozeduren ausgelagert?
zumindest find ich diese ... OnPlayerStart ... ... OnPlayerEOFWarning ... ... OnPlayerStop ...
Hiermal mein Code:
procedure OnPlayerStateChange(PlaylistIndex: integer; PlayerIndex: integer; OldState: TPlayerState; NewState: TPlayerState; Item: IPlaylistItem);
begin
// PLAYER 2
// EMPTY
if (PlayerIndex = 1) and (NewState = psEmpty) then begin
MidiOut(APCMini, bright100, 01, off);
end;
// LOADING
if (PlayerIndex = 1) and (NewState = psLoading) then begin
MidiOut(APCMini, bright100, 01, blue);
end;
// LOADED
if (PlayerIndex = 1) and (NewState = psLoaded) then begin
MidiOut(APCMini, bright100, 01, yellow);
end;
// PLAYING
if (PlayerIndex = 1) and (NewState = psPlaying) then begin
MidiOut(APCMini, pulse2, 01, green);
end;
// PAUSED
if (PlayerIndex = 1) and (NewState = psPaused) then begin
MidiOut(APCMini, pulse8, 01, yellow);
end;
// FADING
if (PlayerIndex = 1) and (NewState = psFading) then begin
MidiOut(APCMini, blink24, 01, red);
end;
// EOF
if (PlayerIndex = 1) and (NewState = psEOF) then begin
MidiOut(APCMini, blink8, 01, red);
end;
// STOPPED
if (PlayerIndex = 1) and (NewState = psStopped) then begin
MidiOut(APCMini, pulse8, 01, red);
end;
// ERROR
if (PlayerIndex = 1) and (NewState = psError) then begin
EnableTimerEx('Error01Blink', 100);
end;
end;
Alle funktionieren (soweit ich testen konnte) bis auf // EOF
mach ich ein Fehler?
kann ich irgendwie ein // ERROR provozieren, damit ich die vorgänge prüfen kann?
LG und guts nächtle euch (zumindest für mich aktuell)
Die unteren als “virtual” gekennzeichneten (psPFL und folgende) wirst du in der Realität nie antreffen, sie dienen nur der einfacheren Verarbeitung der Skin.