Liebe ASSIST
-Benutzer,
jetzt, da wir gerade eine nagelneue Timerprozedur bekommen haben,* hier ein kleiner Kniff für Eure Kassentastatur:
In Anlehnung an die Funktion des Hardwarecontrollers beim Ausspielsystem d’Accord
läßt sich die Taste für den (mAirList-)Befehl PFL END MON
doppelt belegen: Drückt man dort während des Vorhörens die Taste End
, so springt die Abspielposition kurz vor das Ende des Audios, soweit klar. Ist einem das schon zu weit, könnte man jetzt mit dem Rad zurückleiern. Braucht man aber nicht, denn wenn man innerhalb kurzer Zeit noch einmal die Taste drückt, springt die Position um einen gewissen Betrag zurück. Reicht das immer noch nicht … undsoweiter. Auf diese Weise läßt es sich relativ fix „zurückspulen“, ohne die Hand von der Taste nehmen zu müssen. Das will ich auch!
Und so geht’s:
var
HoldEnd: boolean;
const
HOLD = 300; // <-- Hier die Aktionszeit in Millisekunden eintragen.
procedure OnLoad;
HoldEnd := false;
procedure OnTimerEx(ID: string);
begin
if ID = 'TimerEnd' then begin
HoldEnd := false;
DisableTimerEx('TimerEnd');
end;
end;
procedure OnExecuteCommand(Command: string);
begin
if Command = 'END' then begin // <-- Diesen Befehl an Eure eigene Umgebung anpassen!
if HoldEnd then begin
ExecuteCommand('PFL JUMP -3000'); // <-- Hier das Rücksprungintervall in Millisekunden eintragen.
EnableTimerEx('TimerEnd', HOLD);
end
else begin
ExecuteCommand('PFL END MON');
HoldEnd := true;
EnableTimerEx('TimerEnd', HOLD);
end;
end;
end;
begin
end.
Beim ersten Tastendruck wird der Timer gestartet, und die Variable HoldEnd
merkt sich das. Abhängig davon wird die Bedeutung der Taste umgeschaltet. Ist man schnell genug, dann bewirkt die Taste den Rücksprung der Abspielposition. Warum aber wird auch dann der Timer gestartet? Nun, bei jedem Tastendruck soll die Haltezeit aufs neue loslaufen, damit man jedesmal die gleiche Zeit für den Nachtast hat.
Das geht natürlich für beliebige Funktionen, die (d’Accord-)Taste Begin
beispielsweise stellt normalerweise die Abspielposition ganz an den Anfang, ein Doppeltast bewirkt das Löschen einer gesetzten Cue-in-Marke.
DisableTimerEx('TSD')
* Diejenigen mit mAirList früher als 6.2/4112 nehmen einfach das normale TimerEnable
/TimerDisable
.