{ Comments:
  This script started life as the USNews script. Thanks Elbert. I needed your
  input, or this could not have been done.
  This script relies on having the associated TIME mp3 files. You should
  have the attachement from the KB.  Point your script to where
  you put them.
  I am having a few problems with SAM having a little hiccup each time it
  starts a track - not only these time ones. Hopefully your milage is better.
  So, unpack the time files, and put this in your PAL list, make
  the suitable adjustments, and every time you set it, this will say the time!


function ActivePlayer:TPlayer; forward; 
PAL.Loop := True;
const TimeHeader  : String = 'C:\Documents and Settings\Robert\My Documents\Radio Daze\Times\';
const TimeHours   : String = 'C:\Documents and Settings\Robert\My Documents\Radio Daze\Times\Hours\';
const TimeMinutes : String = 'C:\Documents and Settings\Robert\My Documents\Radio Daze\Times\Minutes\';
const MyGMTZone   : Integer = +10;

var C,N          : Integer;
var fname        : String;
var fnamehh      : String;
var fnamemm      : String;
var ampm         : String;
var E : DateTime = Queue.ETA;    // Return the length of the queues
var hh,mm,ss,ms : Integer;

N := 0;
while N < 24 do begin

   if (hh = 0) then hh := 24;
   WriteLn('The Time Is '+IntToStr(hh)+':'+IntToStr(mm));

   //WriteLn('Wait for 10 Minutes');     // Say time every ten minutes

   E := Queue.ETA;                   // You could even wait for the current
     DecodeTime(E,hh,mm,ss,ms);        // cue length of time to finish
          if (hh <= 9) then
       fnamehh := '0'+IntToStr(hh)+'.mp3'       //get the right file name
       fnamehh := IntToStr(hh)+'.mp3';         //get the right file name

    if (mm <= 9) then
       fnamemm := '0'+IntToStr(mm)+'.mp3'      //get the right file name
       fnamemm := IntToStr(mm)+'.mp3';        //get the right file name

       fname := 'Header.mp3';
   WriteLn('SayTime at '+IntToStr(hh)+':'+IntToStr(mm));        // Just checking

   // you need to reverse the order, mm - hh - header, so that the header
 // ends up in queuetop.
 //ActivePlayer.FadeToNext;         // then fade to say the time.
 PAL.WaitForQueue(5);            // wait till the queue fills again
                                  // but what does it do in the even that
                                  // there are more than 4 files already ??

 N := N+1;

function ActivePlayer:TPlayer; 
if DeckA.Status = psPlaying then 
Result := DeckA 
Result := DeckB;