Erst einmal Danke für die Unterstützung.
Leider verhält sich das Script noch nicht so wie ich mir das vorstelle.
Bitte beachten: Zur vollen Stunde wird eine neue Playliste geladen, die restlichen Titel werden verworfen.
Also, so müsste es aussehen:
Grenzwärtig wäre:
weil es sich da kaum noch lohnt den Song zu starten.
Das Script fügt hier ein:
Irgendwie muss noch zur Auswertung rein.
Also, Restzeit bis Stundenwechsel z.B. 60 sec., Brücke einfügen anstatt nächsten Titel spielen.
Restzeit bis Stundenwechsel > 60 sec., nichts unternehmen, nächsten Titel in der Liste laufen lassen.
Hoffe, Du konntest mir folgen.
Das Problem ist (oder viel mehr war), dass mAirList das startdatum anscheinend immer statisch auf den 30.12.1899 setzt… ich hab aber das heutige datum als vergleichswert genommen.
wie auch immer, es sollte jetzt funktionieren… (habe es extra kurz getestet)
[code]{um mehr brückenelemente hinzuzufügen einfach #1. array erweitern #2. pfad[id] := ‘pfad’ hinzufügen #3. bei url den ‘max-wert’ ändern #4. ggf die if bedingung ändern, rauslöschen, je nach anwendung #5. fertig
#—Stand: 13.04.2008— michi
}
procedure Einfuegen(index: Integer);
var i : Integer;
pfad: Array[0…3] of string; //
begin
pfad[0] := ‘C:\test.mp3’;
pfad[1] := ‘C:\test.mp3’;
pfad[2] := ‘C:\test.mp3’;
pfad[3] := ‘C:\test.mp3’;
i := Random(3);
try
SYstemLog(IntToStr(index));
CurrentPlaylist.InsertFile(index, pfad[i], eaNone);
except
SystemLog(‘Fehler beim Einfügen.’);
end;
end;
var //variabeln fuer die suche nach dem letzten element der laufenden Stunde
nextHour: TDateTime;
jetzigeStunde: Integer;
jetzt: TDateTime;
i: Integer;
begin
jetzigeStunde := StrToInt(FormatDateTime(‘h’, now));
nextHour :=EncodeDate(1899, 12, 30);
nextHour := nextHour + EncodeTime(jetzigeStunde,0,0,0)+ + 0.0416666666;
for i:=0 to CurrentPlaylist.GetCount-1 do begin
if (CurrentPlaylist.GetItem(i).GetStartTime(sttEstimated) > (nextHour-0.000694444)) and (CurrentPlaylist.GetItem(i).GetStartTime(sttEstimated) < (nextHour)) then begin
Einfuegen(i);
end;
end;
end.[/code]
@ Torben:
stimmt das, dass das startdatum immer auf den 30.12.1899 gesetzt wird und ist das absicht? denn wenn nicht, müsste man das script nochmal etwas anpassen.
ich möchte eigentlich, dass nur bei weniger als z.B. 60 sec. das Brückenelement eingefügt wird.
In diesem Fall wurde eingefügt, obwohl noch 3:28 Min. Zeit war.
Hätte dann nichts machen sollen und den regulären Song spielen sollen.
Das ist sehr sehr komisch, denn bei mir funktioniert es.
Nochmal in meinen Worten : Das Script “sucht” ein Element in der Playlist, bei dem die startzeit größer als “:59:00” und kleiner als “<jetzigestunde+1>:00:00” ist.
Obwohl ich nicht glaube, dass es was damit zu tun hat, aber schick mir mal den inhalt deines config-ordners (info@flashlighter.de).
Bei mir funktioniert es auch mit deiner Konfigruation.
einmal hab ichs getestet mit einem Element mit Starttime um 22:59:22 —> Brückenelement wird eingefügt.
und einmal mit 22:58:35 —> kein brückenelement wird eingefügt.
ich weiss jetzt nicht mehr sicher, ob ich in der eile das falsche script kopiert hab, deshalb hier nochmal:
[code]{um mehr brückenelemente hinzuzufügen einfach #1. array erweitern #2. pfad[id] := ‘pfad’ hinzufügen #3. bei url den ‘max-wert’ ändern #4. ggf die if bedingung ändern, rauslöschen, je nach anwendung #5. fertig
#—Stand: 13.04.2008— michi
}
procedure Einfuegen(index: Integer);
var i : Integer;
pfad: Array[0…3] of string; //
begin
pfad[0] := ‘C:\test.mp3’;
pfad[1] := ‘C:\test.mp3’;
pfad[2] := ‘C:\test.mp3’;
pfad[3] := ‘C:\test.mp3’;
i := Random(3);
try
CurrentPlaylist.InsertFile(index, pfad[i], eaNone);
except
SystemLog(‘Fehler beim Einfügen.’);
end;
end;
var //variabeln fuer die suche nach dem letzten element der laufenden Stunde
nextHour: TDateTime;
jetzigeStunde: Integer;
jetzt: TDateTime;
i: Integer;
begin
jetzigeStunde := StrToInt(FormatDateTime(‘h’, now));
nextHour :=EncodeDate(1899, 12, 30);
nextHour := nextHour + EncodeTime(jetzigeStunde,0,0,0)+ + 0.0416666666;
for i:=0 to CurrentPlaylist.GetCount-1 do begin
if (CurrentPlaylist.GetItem(i).GetStartTime(sttEstimated) > (nextHour-0.000694444)) and (CurrentPlaylist.GetItem(i).GetStartTime(sttEstimated) < (nextHour)) then begin
Einfuegen(i);
end;
end;
end.[/code]
Hat sich das Element bei Dir mit meiner Config gefärbt?
Also bei mir nicht.
Wie kann ich aber am besten das Ganze automatisieren?
Ausserdem ist es wohl nicht sinnvoll zu Beginn der Stunde das Script auszuführen.
Wird im Laufe der Stunde ein Song nicht gespielt (übersprungen, - fehlerhaft o.ä. …)
spielt das Brückenelement an einer ganz falschen Stelle.
(wird ja dann nicht automatisch an die richtige Stelle geschoben)
[quote=“isanhagen, post:208, topic:2848”]Hat sich das Element bei Dir mit meiner Config gefärbt?
Also bei mir nicht.[/quote]
nö, das macht das Script auch nicht
Dieses hier macht es aber: (ungetestet)
[code]{um mehr brückenelemente hinzuzufügen einfach #1. array erweitern #2. pfad[id] := ‘pfad’ hinzufügen #3. bei url den ‘max-wert’ ändern #4. ggf die if bedingung ändern, rauslöschen, je nach anwendung #5. fertig
#—Stand: 13.04.2008— michi
}
procedure Einfuegen(index: Integer);
var i : Integer;
pfad: Array[0…3] of string; //
begin
pfad[0] := ‘C:\test.mp3’;
pfad[1] := ‘C:\test.mp3’;
pfad[2] := ‘C:\test.mp3’;
pfad[3] := ‘C:\test.mp3’;
i := Random(3);
try
CurrentPlaylist.InsertFile(index, pfad[i], eaNone);
except
SystemLog(‘Fehler beim Einfügen.’);
end;
end;
var //variabeln fuer die suche nach dem letzten element der laufenden Stunde
nextHour: TDateTime;
jetzigeStunde: Integer;
jetzt: TDateTime;
i: Integer;
begin
jetzigeStunde := StrToInt(FormatDateTime(‘h’, now));
nextHour :=EncodeDate(1899, 12, 30);
nextHour := nextHour + EncodeTime(jetzigeStunde,0,0,0)+ + 0.0416666666;
for i:=0 to CurrentPlaylist.GetCount-1 do begin
if (CurrentPlaylist.GetItem(i).GetStartTime(sttEstimated) > (nextHour-0.000694444)) and (CurrentPlaylist.GetItem(i).GetStartTime(sttEstimated) < (nextHour)) then begin
Einfuegen(i);
CurrentPlaylist.GetItem(i).SetColor(clYellow);
CurrentPlaylist.GetItem(i).SetColored(true);
end;
end;
end.[/code]
[quote=“isanhagen, post:208, topic:2848”]Wie kann ich aber am besten das Ganze automatisieren?
Ausserdem ist es wohl nicht sinnvoll zu Beginn der Stunde das Script auszuführen.
Wird im Laufe der Stunde ein Song nicht gespielt (übersprungen, - fehlerhaft o.ä. …)
spielt das Brückenelement an einer ganz falschen Stelle.
(wird ja dann nicht automatisch an die richtige Stelle geschoben)[/quote]
ich suche nach einer Möglichkeit um beim Schließen von mAirList noch schnell nen Eintrag in die Logging-Datenbank zu schreiben.
Bis jetzt schaut das so aus:
procedure OnShutdown;
var connection: IZConnection;
begin
connection := ZeosDriverManager.GetConnectionWithLogin('zdbc:mysql-3.23:192.168.1.1', 'mairlog', 'mairlog');
connection.PrepareStatement('INSERT INTO mairlog (artist, title) VALUES ('fips-Team', 'fips-Mix')');
connection := nil;
end;
Und mAirList erzählt mir was von nem Kommafehler kurz hinter VALUES.
Aber ich weiß eigentlichauch nicht so ganz, ob der Weg überhaupt in die Richtige Richtung führt.
PrepareStatement bereitet den Befehl nur vor, du musst ihn noch ausführen (mit ExecuteUpdatePrepared). Guck mal ins eldoDB-Datenbank-Script, dann sollte das deutlich werden.
Wird automatisch getrennt in dem Moment, wo das durch “connection” referenzierte Objekt zerstört wird (was dank reference counting automatisch am Ende der Prozedur geschieht; ansonsten manuall durch connection := nil).
so wird dir wahrscheinlich keiner helfen können (ich versteh zumindest nicht, was du unter “neuester stand” verstehst).
grüße, michi[/quote]
Ich öffne eine Playlist (Hinzufügen => Playlist) mAirList öffnet die Playlist. die Playlist läuft immer eine Stunde (z.B. von 13:00 - 14:00). In der Redaktion (anderer Computer) wir die Playlist erstellt. Ist mit Netzwerk verbunden. Die Playlist heißt immer gleich (x), sobald er die nächste Playlist fertig hat speichert er sie unter x. Nur ich muss jetzt immer (wenn ich die neue Playlist hole) dann muss ich immer wieder von vorne anfangen (Hinzufügen => Playlist))
HAllo zusammen,
ich habe jetzt endlich die “Grundfunktionen” von Mairlist durchblickt und die Software soweit, dass es zusammen mit meinem Mischpult und den anderen Geräten das tut, was ich gerne hätte. Nur möche ich mich ein wenig der SOftware selber widmen. Das Forum hier habe ich bereits durchsucht und auch schon diverse andere Quellen genutzt, aber für mein aktuelles “Vorhaben” nicht wirklich was gefunden:
Derzeit habe ich 16 Cartwalls, die auf einem zweiten Monitor liegen. Klappt alles wunderbar. Aber ich hätte in den Cartwalls die Nummerierung gerne weg gemacht und die Schriften ein wenig kleiner. Kann mir hier jemand weiterhelfen? Gibt es vielleicht eine Vorlage und wenn ja, wo genau muss diese abgespeichert werden?