home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 April / PCWorld_2005-04_cd.bin / software / temacd / godfather / TGF_069.exe / $INSTDIR / Scripts / SaveAsCue.scl < prev    next >
Encoding:
Text File  |  2005-02-06  |  1.3 KB  |  50 lines

  1. Program SaveAsCue;
  2.  
  3. var
  4.   i, iCount: integer;
  5.   fDur, fDurTotal: extended;
  6.   slTmp: TStringList;
  7.   sFile, sTrack, sTitle, sComposer, sTime: string;
  8. begin
  9.  
  10.   iCount := on_getGrdAlbumRowCount;
  11.   if iCount = 0 then exit;
  12.  
  13.   slTmp := TStringList.Create;
  14.   try
  15.  
  16.     sFile := on_getGrdField( 'File' ); // get file from current row
  17.  
  18.     slTmp.Add( 'PERFORMER ' + #34 + on_getArtist + #34 );
  19.     slTmp.Add( 'TITLE '     + #34 + on_getAlbum  + #34 );
  20.     slTmp.Add( 'FILE '      + #34 + sFile        + #34 + ' ' + UpperCase( Copy( ExtractFileExt( sFile ), 2, 99 ) ) );
  21.  
  22.     fDur  := 0;
  23.     fDurTotal := 0;
  24.  
  25.     for i := 1 to iCount do begin
  26.  
  27.         on_getTrack( i, sTrack, sTitle, sComposer, sTime, fDur );
  28.  
  29.         slTmp.Add( '  TRACK '   + PadLeft( IntToStr( i ), 2, '0' ) + ' AUDIO' );
  30.         slTmp.Add( '    TITLE ' + #34 + sTitle + #34 );
  31.  
  32.         if i = 1 then begin
  33.            slTmp.Add( '    INDEX 01 00:00:00' );
  34.         end else begin
  35.            slTmp.Add( '    INDEX 01 ' + sys_FormatDurationEx( Trunc( fDurTotal ), true ) );
  36.         end;
  37.  
  38.         fDurTotal  := fDurTotal + ( fDur * 1000 );
  39.  
  40.     end;
  41.  
  42.     sFile := sys_SaveFileDialog( 'CUE|*.cue', sys_getCurrentDirectory );
  43.     if sFile <> '' then slTmp.SaveToFile( ChangeFileExt( sFile, '.cue' ) );
  44.  
  45.   finally
  46.     slTmp.Free;
  47.   end;
  48.  
  49. end.
  50.