procedure OnCartwallOnAirModeChange(OldMode, NewMode: TCartwallOnAirMode);
begin
if NewMode = oamOnAir then begin
//mach was, wenn On Air;
end
else if NewMode = oamPFL then begin
//mach was anderes, wenn PFL
end;
end;
Du bist großartig!!! - Jetzt läuft wirklich alles und ohne Glitches!
Tausend Dank!
Jetzt teste ich noch etwas und wenn alles so läuft wie ich das brauche, werde ich wohl mal auf die Internetseite gehen und meine Demo Version zu einer Richtigen machen. Großartige Software!!!
Einen Glitch gibt es noch:
Wenn ich in der Playliste einen Titel auf PFL schalte, läuft er ja sofort los (was auch korrekt ist). Wenn ich jetzt aber die Pause Taste drücke schließt sich das Fenster sofort, was so nicht sein sollte. Ich denke es liegt daran, dass ExtraPFL dann PFLCount=“0” zurückgibt, weil nichts mehr läuft und ich diese Abfrage nutze um PFL zu beenden. Das ist natürlich doof. hast du vielleicht noch eine Idee, wie ich das Umgehen könnte?
Das wird schwierig, denn wir haben keine Prozedur OnPFLPlayerStateChange. Hätte man sie, könnte man mit
if NewState = psPaused then ...
das Schließen des Cue-Editors verhindern. Steuertest Du das ganze über externe Tastatur o. ä., dann wäre dies auch möglich. Es funktioniert halt nicht, GUI-Befehle abzufangen. Das ganze wäre mal einen Wunsch an @Torben wert, es umzusetzen.
Für den Moment bliebe nur, den Fensterschluß anderweitig zu lösen (als mit PFLCount).
Das heißt auch das gibt “0”, wenn der Cue Player auf Pause steht? Sonst würde das ja funktionieren.
Fragen über Fragen
Die eigentliche Frage ist ja: kann ich Den ExtraPFL Zustand abfragen, wenn der Cue Player auf “Pause” steht?
Insofern wäre es vielleicht besser @Torben wenn die Pausetaste im Cue Editor nicht dazu führen würde, dass PFLCount=“0” ist wenn das Cue Fenster noch offen ist.
Da Ferienzeit ist, bitte ich bei Anfragen Richtung Torben, die nicht allerhöchste Priorität haben (Studio abgeraucht oder vergleichbar), etwas Geduld zu haben.
Im Bereich “privater Benutzer” bzw. “kein Premium-Support” kennen wir keinerlei Provision oder ähnliches. Da du, @derrotedj, hier aber den Kauf von mAirList “angedroht” hast und @Tondose einen nicht unerheblichen Anteil dazu beigetragen hat, möchte ich nach erfolgreicher Transaktion bei einem möglichen kulinarischen Treffen mit TSD die Rechnung übernehmen dürfen.
Rein privat, versteht sich. Nichts offizielles. Einfach nur als “Dankeschön” für die geleistete Arbeit.
Schön auch, dass so die gesamte Community später noch einen Mehrwert daraus ziehen darf.
Vielen Dank!
Jetzt verwirrst du mich total - die Prozedur ist doch im Background Script Template drin:
// Called when (playlist) player changes its state
procedure OnPlayerStateChange(PlaylistIndex: integer; PlayerIndex: integer; OldState: TPlayerState; NewState: TPlayerState; Item: IPlaylistItem);
begin
end;
Meinst du damit es gibt den Zustand “psPaused” nicht oder was?
Das heißt derzeit ist es nicht möglich bei ExtraPFL per Script abzufragen ob das ExtraPFL Cue Fenster noch geöffnet ist bzw. der Player nur auf Pause geschaltet ist. Das ist quasi in einem Script nicht abfragbar. Richtig? Dann muss ich nicht weiter suchen.
Ich habe es doch hinbekommen. So funktioniert es nun in beide Richtungen:
//PFL Automation
var
EPFL: boolean;
procedure OnExtPFLOn(Item: IPlaylistItem; PFLCount: integer);
begin
MidiOut(1, $B1, $50, $00);
MidiOut(1, $B1, $32, $7F);
MidiOut(1, $B1, $33, $7F);
EPFL := true;
end;
procedure OnExtPFLOff(Item: IPlaylistItem; PFLCount: integer);
begin
MidiOut(1, $B1, $50, $7F);
MidiOut(1, $B1, $32, $00);
MidiOut(1, $B1, $33, $00);
EPFL := false;
end;
procedure OnExecuteCommand(Command: string);
begin
if (Command = 'X32PFLON') and not EPFL then
ExecuteCommand('PLAYLIST 1 EXTRAPFL ON')
else if (Command = 'X32PFLOFF') and EPFL then
ExecuteCommand('PLAYLIST 1 EXTRAPFL OFF');
end;
begin
end.
Die einzige Einschränkung dabei ist, dass das Mischpult bei Pause im Cue Fenster das Vorhören ausschaltet, aber bei erneutem Play sofort wieder einschaltet. Damit kann ich erstmal leben.
Danke an alle und liebe Grüße
Robert
Edit:
Weitere Einschränkung wie ich gerade festgestellt habe:
Sobald man im Cue Fenster den Schalter “Zum Anfang springen” drückt, schließt sich das Cue Fenster. Der Schalter “END MON” Funktioniert aber kurioserweise problemlos.