home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / database / cdmusic.zip / CDMUSIC.C < prev    next >
C/C++ Source or Header  |  1993-06-01  |  3KB  |  96 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <dos.h>
  4.  
  5. #define OKAY 0
  6.  
  7. #include "cdmaster.h"
  8.  
  9. char *nodrives= "No CDROM drives attached.\n";
  10. char *nomscdex= "MSCDEX is not installed.\n";
  11.  
  12. main(int argc, char **argv)
  13.   {
  14.     int bgntrack = 1;
  15.     int endtrack = 1;
  16.     int numcdroms = 0;
  17.     int ourdrive = 0;
  18.         int quitcd = 0;
  19.         int status = 0;
  20.     struct cdtable *cdt;
  21.  
  22.     if (!ismscdex())
  23.         {
  24.         fprintf(stderr, nomscdex);
  25.         return(1);
  26.         }
  27.  
  28.     if (!(numcdroms= getnumcdroms()))
  29.         {
  30.         fprintf(stderr, nodrives);
  31.         return(2);
  32.         }
  33.  
  34.     if (!(ourdrive= getfirstcdrom()))
  35.                 {
  36.         fprintf(stderr, nodrives);
  37.         return(4);
  38.         }
  39.       do
  40.         {
  41.     if ( cdt = buildaudiotoc( ourdrive ) )
  42.             {
  43.         long sframe,
  44.                      f,
  45.                      dframes = 0,
  46.                      lc10,
  47.                      lcsec,
  48.                      lcmin,
  49.                  track = 1;
  50.                 struct discinfo *di;
  51.         struct trackinfo ti;
  52.                 if ( di = getdiscinfotable( ourdrive ) )
  53.                   {
  54.                   }
  55.  
  56.                 printf( "CD #%ld\n", cdt->di.eodisc );
  57.                 /* printf( "CD #%ld\n", di->eodisc ); */
  58.                 printf( "Tracks->\t%d\n", cdt->di.ltrk );
  59.                 endtrack = cdt->di.ltrk;
  60.                 do 
  61.                   {
  62.                     printf( "%ld", cdt->di.eodisc );
  63.                     printf( "\t%d", track);
  64.             if (status= cdtrackinfo(ourdrive, bgntrack, &ti) >= 0)
  65.                       f = gettrackframes( ourdrive, track );
  66.                     dframes += f;
  67.                     lcmin = ( ( f / 75 ) / 60 );
  68.                     lcsec = ( ( f - ( ( lcmin * 60 ) * 75 ) ) / 75 );
  69.                     lc10  = ( ( f - ( ( ( lcmin * 60 ) * 75 ) + 
  70.                                         ( lcsec * 75 )      ) ) * ( 100 / 75 ) );
  71.                     printf( "\t%2.2ld:%2.2ld.%2.2ld\n", lcmin, lcsec, lc10 );
  72.                   } 
  73.                 while ( ++track <= endtrack );
  74.  
  75.                 lcmin = ( ( dframes / 75 ) / 60 );
  76.                 lcsec = ( ( dframes - ( ( lcmin * 60 ) * 75 ) ) / 75 );
  77.                 lc10  = ( ( dframes - ( ( ( lcmin * 60 ) * 75 ) + 
  78.                                      ( lcsec * 75 )      ) ) * ( 100 / 75 ) );
  79.                 printf( "disc length-> %2.2ld:%2.2ld.%2.2ld\n", lcmin, lcsec, lc10 );
  80.  
  81.         destroyaudiotoc(ourdrive);
  82.                 cdeject( ourdrive );
  83.         }
  84.     else
  85.         printf("failed, no initialization.\n");
  86.         do
  87.           {
  88.             status = cdstatus( ourdrive );
  89.           }
  90.         while ( !( status & CDISHERE) ); 
  91.         }
  92.       while( !quitcd );
  93.       return(OKAY);
  94. }
  95.  
  96.