gibt es die Möglichkeit das mAirList, in dem zugewiesenen Kanal, in der Anzeige die Restzeit eines Liedes anzeigt?
Und die andere Frage ist, ob es die Möglichkeit gibt, einen gesamten Kanal stiel zulegen, bis auf dem jeweiligen Kanal ein Element liegt. Mit Stiel legen ist gemeint das die Stop sowie Start Taste nicht mehr Leuchtet.
Habe dann noch eine andere Frage, die mir gestern eingefallen ist
Gibt es die Möglichkeit, wenn ich PFL irgendwo öffne in der Playlist, zusagen das an einem bestimmten Player die PFL Taste virtuell gedrückt werden soll?
Beispiel:
Ich habe auf dem ganz linken Kanal mein PFL liegen und ich drücke in der Playlist auf dem 6 Titel auf PFL. Dann möchte ich das automatisch auf dem PFL Kanal, der PFL Taster gedrückt wird. Und wenn ich PFL wieder schließe, dieser auch wieder aus geht.
// Called when cue editor, mix editor... (but not a player) starts playback
// ExtPFLCount is the number of active such ExtPFL sources
procedure OnExtPFLOn(Item: IPlaylistItem; ExtPFLCount: integer);
begin
if ExtPFLCount = 1 then
DMAXRemote(0).SetPFL(3);
end;
// Called when cue editor, mix editor... (but not a player) stops playback
// ExtPFLCount is the number of active such ExtPFL sources
procedure OnExtPFLOff(Item: IPlaylistItem; ExtPFLCount: integer);
begin
if ExtPFLCount = 0 then
DMAXRemote(0).SetPFL(0);
end;
“3” ist hier im Beispiel die Nummer des Faders. 0 bedeutet “alles PFL aus”.
EDIT: ExtPFLCount hinzugefügt.
Hier ist noch ein ähnliches Script, das den Zustand der Cartwall (ON, OFF, PFL) auf dem zugehörigen Fader abbildet, so dass man die Cartwall per Maus/Touch umschalten kann kann, und am Pult öffnet sich der Fader bzw. geht auf PFL:
// Called when the cartwall switches its on air mode (on air, off air, PFL)
procedure OnCartwallOnAirModeChange(OldMode, NewMode: TCartwallOnAirMode);
var
CartFader: byte;
begin
// Fader der Cartwall ermitteln
CartFader := DMAXRemote(0).GetFaderOfChannel(13);
if NewMode = oamOnAir then begin
// wenn vorher PFL, dann PFL ganz aus
if OldMode = oamPFL then
DMAXRemote(0).SetPFL(0);
// Cartfader an
DMAXRemote(0).SetGoStatus(CartFader, true);
end
else if NewMode = oamPFL then begin
DMAXRemote(0).SetGoStatus(CartFader, false);
DMAXRemote(0).SetPFL(CartFader);
end
else begin // off air
// wenn vorher PFL, dann PFL ganz aus
if OldMode = oamPFL then
DMAXRemote(0).SetPFL(0);
// Cartfader aus
DMAXRemote(0).SetGoStatus(CartFader, false);
end;
end;
Dieses Script ist sogar so “schlau” und fragt vorher ab, auf welchem Fader die Cartwall (im Beispiel Input Nr. 13) überhaupt liegt. So funktioniert es auch dann, wenn man die Cartwall mal abweichend auf einen anderen Fader legt.
Also, ich habe das so verstanden, daß das Argument von SetNext (hier: 4) die „Kanalnummer“ angibt. Hast Du mal das von mir verlinkte Skript angeschaut?
Ja hatte ich mir. Hatte dieses Script von Torben umgeschrieben
// Called when cue editor, mix editor… (but not a player) starts playback
// ExtPFLCount is the number of active such ExtPFL sources
procedure OnExtPFLOn(Item: IPlaylistItem; ExtPFLCount: integer);
begin
if ExtPFLCount = 1 then
DMAXRemote(0).SetPFL(3);
end;
// Called when cue editor, mix editor… (but not a player) stops playback
// ExtPFLCount is the number of active such ExtPFL sources
procedure OnExtPFLOff(Item: IPlaylistItem; ExtPFLCount: integer);
begin
if ExtPFLCount = 0 then
DMAXRemote(0).SetPFL(0);
end;
Um auf die Ursprungsfrage zurück zu kommen. Ja, die Dauer des Lieder kann beim Laden des Players an das D.MAX übertragen werden. Sobald am D.MAX START gedrückt wird, fängt die Zeit an, runter zu zählen.
Ich muss noch einige Playerzustände abfangen, damit z.B. bei Pause im Player, das DMAX nicht weiterzählt.
Weiß jemand, ob man mit dem DMAXRemote(0) Befehl auch eigene Daten senden kann? Aktuell schicke ich die Zeit der COMPort.SendStr.