ik heb een vraagje of iemand dat zo 1 2 3 weet....
als er een verzoek gedaan word zou ik graag een jingle voor draaien van dit is een verzoekje
is dit mogelijk?
zo ja kan mij dat uitgelegd worden
bedankt alvast
groet,
LiDelf
Code: Selecteer alles
PAL.Loop := True;
{PAL.MemoryLeakWarning := True;}
{-->Insert first songs into queue}
PAL.LockExecution;
{-->Insert next request + Jingle if request was found}
var AQuery, queueBottom : TDataSet;
var Song : TSongInfo;
AQuery := Query('SELECT songlist.*, requestlist.*, requestlist.ID as requestID '
+' FROM songlist, requestlist '
+' WHERE (requestlist.ETA<:now) AND (requestlist.status=''new'') AND (songlist.ID=requestlist.songID) '
+ 'ORDER BY requestlist.ETA ASC '
+' LIMIT 1 ',[Now],True);
if not(AQuery.BOF and AQuery.EOF) then
begin
{Also Set SAM to leave Requests in the queue}
{A cool idea would be to insert a jingle here
that says "The next song is by request" or something similar}
{For example: Queue.AddFile('c:\.mp3',ipBottom);}
{CHECK IF PRIOR JINGLE IS ALREADY IN QUEUE}
queueBottom := Query('SELECT queuelist.requestID, queuelist.songID, songlist.title, songlist.songtype, songlist.artist, songlist.album from queuelist, songlist where queuelist.songID = songlist.ID ORDER BY sortID DESC LIMIT 1', [], true);
if(queueBottom['songtype'] <> 'J') then
begin
// CAT['Jingles (All)'].QueueBottom(smRandom,NoRules); //<----this is the jingle that gets inserted before each requested song
Queue.Addfile('c:\promo\request.mp3', ipBottom);
queueBottom.Free;
end;
{Copy the needed information from the dataset}
Song := TSongInfo.Create();
Song['ID'] := AQuery['ID'];
Song['filename'] := AQuery['filename'];
Song['artist'] := AQuery['artist'];
Song['title'] := AQuery['title'];
Song['duration'] := AQuery['duration'];
Song['requestID'] := AQuery['requestID'];
{Add request to queue}
Queue.Add(Song,ipBottom);
WriteLn('Request handled: '+Song['artist']+' - '+Song['title']);
{Change status of request}
ExecSQL('UPDATE requestlist SET status=:status WHERE (songID = :songID) AND ((status=''new'') OR (status=''pending'')) ',['pending',song['ID']]);
end
else
WriteLn('No request found');
PAL.UnLockExecution;
{Wait for songs in queue to play}
AQuery.Free;
Song.Free;
queueBottom.Free;
//while (Queue.Count > 1) do
PAL.WaitForPlayCount(1);
PAL.WaitForTime('+00:00:25');
Code: Selecteer alles
// CAT['Jingles (All)'].QueueBottom(smRandom,NoRules); //<----this is the jingle that gets inserted before each requested song
Queue.Addfile('c:\promo\request.mp3', ipBottom);
Code: Selecteer alles
PAL.Loop := True;
PAL.LockExecution;
var AQuery : TDataSet;
var Song : TSongInfo;
AQuery := Query('SELECT songlist.*, requestlist.*, requestlist.ID as requestID '
+' FROM songlist, requestlist '
+' WHERE (requestlist.ETA<:now) AND (requestlist.status=''new'') AND (songlist.ID=requestlist.songID) '
+ 'ORDER BY requestlist.ETA ASC '
+' LIMIT 1 ',[Now],True);
if not(AQuery.BOF and AQuery.EOF) then
begin
Song := TSongInfo.Create();
Song['ID'] := AQuery['ID'];
Song['filename'] := AQuery['filename'];
Song['artist'] := AQuery['artist'];
Song['title'] := AQuery['title'];
Song['duration'] := AQuery['duration'];
Song['requestID'] := AQuery['requestID'];
Queue.Add(Song,ipTop);
WriteLn('Request handled: '+Song['artist']+' - '+Song['title']);
Queue.AddFile('d:\Jingles\Requestjingle\Studio 26 Radio - Request Jingle.mp3',ipTop);
ExecSQL('UPDATE requestlist SET status=:status WHERE (songID = :songID) AND ((status=''new'') OR (status=''pending'')) ',['pending',song['ID']]);
end
else
WriteLn('No request found');
PAL.UnLockExecution;
AQuery.Free;
Song.Free;Dat werkt helaas ook niet. Heb al veel Requestscripts geprobeerd, maar ASC veranderen naar DESC levert niets op. Dat word door puzzelenWout schreef:ASC veranderen in DESC
Code: Selecteer alles
PAL.Loop := True;
PAL.LockExecution;
var AQuery : TDataSet;
var Song : TSongInfo;
AQuery := Query('SELECT songlist.*, requestlist.*, requestlist.ID as requestID '
+' FROM songlist, requestlist '
+' WHERE (requestlist.ETA<:now) AND (requestlist.status=''new'') AND (songlist.ID=requestlist.songID) '
+ 'ORDER BY requestlist.ETA ASC '
+' LIMIT 1 ',[Now],True);
if not(AQuery.BOF and AQuery.EOF) then
begin
Song := TSongInfo.Create();
Song['ID'] := AQuery['ID'];
Song['filename'] := AQuery['filename'];
Song['artist'] := AQuery['artist'];
Song['title'] := AQuery['title'];
Song['duration'] := AQuery['duration'];
Song['requestID'] := AQuery['requestID'];
Queue.AddFile('E:\muziek\Verzoekjingle\jingel - Mededeling Verzoekjesbalie.mp3',ipbottom);
Queue.Add(Song,ipbottom);
WriteLn('Request handled: '+Song['artist']+' - '+Song['title']);
ExecSQL('UPDATE requestlist SET status=:status WHERE (songID = :songID) AND ((status=''new'') OR (status=''pending'')) ',['pending',song['ID']]);
end
else
WriteLn('No request found');
PAL.UnLockExecution;
AQuery.Free;
Song.Free;
Code: Selecteer alles
PAL.Loop := True;
PAL.LockExecution;
var AQuery : TDataSet;
var Song : TSongInfo;
AQuery := Query('SELECT songlist.*, requestlist.*, requestlist.ID as requestID '
+' FROM songlist, requestlist '
+' WHERE (requestlist.ETA<:now) AND (requestlist.status=''new'') AND (songlist.ID=requestlist.songID) '
+ 'ORDER BY requestlist.ETA ASC '
+' LIMIT 1 ',[Now],True);
if not(AQuery.BOF and AQuery.EOF) then
begin
Song := TSongInfo.Create();
Song['ID'] := AQuery['ID'];
Song['filename'] := AQuery['filename'];
Song['artist'] := AQuery['artist'];
Song['title'] := AQuery['title'];
Song['duration'] := AQuery['duration'];
Song['requestID'] := AQuery['requestID'];
Queue.Add(Song,iptop);
Queue.AddFile('E:\muziek\Verzoekjingle\jingel - Mededeling Verzoekjesbalie.mp3',iptop);
WriteLn('Request handled: '+Song['artist']+' - '+Song['title']);
ExecSQL('UPDATE requestlist SET status=:status WHERE (songID = :songID) AND ((status=''new'') OR (status=''pending'')) ',['pending',song['ID']]);
end
else
WriteLn('No request found');
PAL.UnLockExecution;
AQuery.Free;
Song.Free;