home *** CD-ROM | disk | FTP | other *** search
/ CD-X 1 / cdx_01.iso / melyviz / cdrombol / pcxcdp4.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1994-10-25  |  1.5 KB  |  74 lines

  1. program PCXCDP4; { PC-X CD-ROM Player }
  2.  
  3. uses CRT, PCXCDU4;
  4.  
  5. var
  6.    AudioCD  : TAudioDisk;
  7.    pTrack   : Byte;
  8.    Track    : TAudioTrack;
  9.    TrackEnd : TRedBook;
  10.    TrackLen : Longint;
  11.    Code     : Integer;
  12.  
  13. begin
  14.    WriteLn('PC-X CD-ROM Player - The "command line" version - PC-X magazine, Dec 1994');
  15.  
  16.    if ParamCount<>1 then
  17.    begin
  18.       WriteLn('Usage: PCXCDP <Track Number>');
  19.       WriteLn;
  20.       Halt(1);
  21.    end;
  22.  
  23.    Val(ParamStr(1),pTrack,Code);
  24.    if Code<>0 then
  25.    begin
  26.       WriteLn('Error: Illegal track number specified!');
  27.       WriteLn;
  28.       Halt(2);
  29.    end;
  30.  
  31.    CDR_AudioDiskInfo(AudioCD);
  32.    if (CDR_Status SHR 15)=1 then
  33.    begin
  34.       WriteLn('Error: Drive not ready!');
  35.       WriteLn;
  36.       Halt(3);
  37.    end;
  38.  
  39.    with AudioCD do
  40.    begin
  41.       if (pTrack<LoTrack) OR (pTrack>HiTrack) then
  42.       begin
  43.          WriteLn('Error: Track number out of range!');
  44.          WriteLn;
  45.          Halt(4);
  46.       end;
  47.    end;
  48.  
  49.    if pTrack<AudioCD.HiTrack then
  50.    begin
  51.       CDR_AudioTrackInfo(pTrack+1, Track);
  52.       TrackEnd:=Track.TrackStart;
  53.    end
  54.    else
  55.       TrackEnd:=AudioCD.LeadOut;
  56.  
  57.    CDR_AudioTrackInfo(pTrack, Track);
  58.    if (Track.TrackInfo SHR 6)=1 then
  59.    begin
  60.       WriteLn('Error: The specified track is a data track!');
  61.       WriteLn;
  62.       Halt(5);
  63.    end;
  64.    Track.TrackEnd:=TrackEnd;
  65.  
  66.    WriteLn('Playing track ',pTrack,'...');
  67.    WriteLn;
  68.    with Track do
  69.    begin
  70.       TrackLen:=RB2HSG(TrackEnd)-RB2HSG(TrackStart);
  71.       CDR_PlayAudio(TrackStart.RBL,TrackLen);
  72.    end;
  73. end.
  74.