home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 2 / FreeSoftwareCollection2pd199x-jp.img / demo / music.c < prev    next >
Text File  |  1990-06-14  |  1KB  |  79 lines

  1. #include "demo.h"
  2. #include <cdr.h>
  3.  
  4. int MusicFlag = 1;
  5.  
  6. struct TOC{
  7.     char min;
  8.     char sec;
  9.     char frame;
  10. } tracktime[99],disktime,starttime,endtime,nowtime,disktime;
  11.  
  12. void
  13. MusicInit()
  14. {
  15.     SND_elevol_set(0,0,0);
  16.     SND_elevol_set(1,127,127);
  17.     SND_elevol_set(2,0,0);
  18.     SND_elevol_set(3,0,0);
  19.     SND_elevol_mute(0x30);
  20.     SND_elevol_all_mute(-1);
  21. }
  22.  
  23. void
  24. MusicOut()
  25. {
  26.     int i,j;
  27.     for(i=127;i!=0;i--) {
  28.         SND_elevol_set(1,i,i);
  29.         SND_elevol_mute(0x30);
  30.         for(j=0;j<10000;j++);
  31.     }
  32. }
  33.  
  34. void
  35. MusicStart(no)
  36. int no;
  37. {
  38.     int ret,cnt,status,nowno;
  39.     int cdtype,start,end;
  40.  
  41.     MusicOut();    
  42.     for(cnt=0,ret=1;(cnt<10) && (ret!=0);cnt++) {
  43.         ret = cdr_cdinfo(0,&cdtype,&start,&end,(char *)&tracktime[0],(char *)&disktime);
  44.         cdr_pause(0) ;
  45.     }
  46.     if (ret) {
  47.         MusicFlag = 0;
  48.         return;
  49.     }
  50.     
  51.     starttime.min = tracktime[no].min;
  52.     starttime.sec = tracktime[no].sec;
  53.     starttime.frame = tracktime[no].frame;
  54.     
  55.     endtime.min = tracktime[no+1].min;
  56.     endtime.sec = tracktime[no+1].sec;
  57.     endtime.frame = tracktime[no+1].frame;
  58.     
  59.     for (cnt=0,status=0;(cnt<10) && (status==0);cnt++) {
  60.         SND_elevol_set(1,127,127);
  61.         ret = cdr_mtrplay(0,(char *)&starttime,(char *)&endtime,99);
  62.         cdr_mphase(0,&status,&nowno,(char *)&nowtime,(char *)&disktime);
  63.     }
  64.     if (status == 0) {
  65.         MusicFlag = 0;
  66.     } else {
  67.         MusicFlag = 1;
  68.         NowMusic = no;
  69.     }
  70. }
  71.  
  72. void
  73. MusicStop()
  74. {
  75.     MusicOut();
  76.     cdr_mstop(0);
  77.     MusicFlag = 0;
  78. }
  79.