home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 3 / FreeSoftwareCollection3pd199x-jp.img / pao / ms_dos / cdplay / src / cdnow.c next >
Text File  |  1980-01-02  |  4KB  |  172 lines

  1. /** << MSC V5.1 >> ************************************************************
  2. **
  3. **    簡易CD演奏プログラム...現在の演奏曲を表示するだけです。
  4. **
  5. **    CREATE : 1990.06.29
  6. **    FINISH : 1990.07.02  Version 1.00
  7. **
  8. **    ----- HISTORY -----
  9. **    1990.06.29 : CREATE
  10. **
  11. **    Programed by Y.Hirata ( Nifty ID : NAB03321 )
  12. **
  13. ******************************************************************************/
  14. #include    <stdio.h>
  15. #include    <stdlib.h>
  16. #include    "cdr.h"
  17.  
  18. #define        RED            printf("\x1b[31m") ;
  19. #define        GREEN        printf("\x1b[32m") ;
  20. #define        YELLOW        printf("\x1b[33m") ;
  21. #define        SKYBLUE        printf("\x1b[36m") ;
  22. #define        STD            printf("\x1b[m") ;
  23.  
  24. #define        Cddrv        0            /*  CDドライブ番号 ( 0 - 6 )    */
  25.                                     /*  TOWNSでは Cddrv=0 のみ        */
  26. int    Status ;                        /*    音楽の演奏状態                */
  27. int    Nowmusicno ;                    /*    現在演奏中の曲番号            */
  28.  
  29. typedef struct _TOC {
  30.         char    min ;
  31.         char    sec ;
  32.         char    frame ;
  33. } TOC ;
  34.  
  35. static TOC Disctime,Nowtime ;
  36. /*
  37. **    Disctime   : ディスク内演奏時間
  38. **    Nowtime    : 演奏中のトラック内演奏時間
  39. */
  40.  
  41. void message( int messageno )
  42. {
  43.     switch ( messageno ) {
  44.     case CDERR0 :
  45.                     YELLOW ;
  46.                     printf("CDがセットされていませんョ♪\n") ;
  47.                     break ;
  48.     case CDERR1 :
  49.                     RED ;
  50.                     printf("アリャ CDNOW PROGRAM ERROR - ") ;
  51.                     printf("パラメータエラー!\n") ;
  52.                     break ;
  53.     case CDERR2 :
  54.                     RED ;
  55.                     printf("ガク! CD-ROM BIOS : ERROR - ") ;
  56.                     printf("ドライブ非接続!\n") ;
  57.                     break ;
  58.     case CDERR3 :
  59.                     RED ;
  60.                     printf("ガク! CD-ROM BIOS : ERROR - ") ;
  61.                     printf("コマンド異常終了!\n") ;
  62.                     break ;
  63.     case CDERR4 :
  64.                     RED ;
  65.                     printf("ガク! CD-ROM BIOS : ERROR - ") ;
  66.                     printf("メディアエラー!\n") ;
  67.                     break ;
  68.     case CDERR5 :
  69.                     RED ;
  70.                     printf("ガク! CD-ROM BIOS : ERROR - ") ;
  71.                     printf("ハードエラー!\n") ;
  72.                     break ;
  73.     case CDERR6 :
  74.                     RED ;
  75.                     printf("ガク! CD-ROM BIOS : ERROR - ") ;
  76.                     printf("パリティエラー!\n") ;
  77.                     break ;
  78.     case CDERR7 :
  79.                     YELLOW ;
  80.                     printf("メディア(CD)を交換しましたネ♪\n") ;
  81.                     break ;
  82.     case DEVERR :
  83.                     RED ;
  84.                     printf("アリャ CDNOW PROGRAM ERROR - ") ;
  85.                     printf("指定デバイス番号誤り! オカシイナァー \n") ;
  86.                     break ;
  87.     case DEVSEC :
  88.                     RED ;
  89.                     printf("アリャ CDNOW PROGRAM ERROR - ") ;
  90.                     printf("セクタ長誤り\n") ;
  91.                     break ;
  92.     case DEVPLY :
  93.                     YELLOW ;
  94.                     printf("音楽演奏中\n") ;
  95.                     break ;
  96.     case DEVPAUSE :
  97.                     YELLOW ;
  98.                     printf("既に演奏が一時停止中です!\n") ;
  99.                     break ;
  100.     case DEVNPAUSE :
  101.                     YELLOW ;
  102.                     printf("演奏が一時停止状態でないョ!\n") ;
  103.                     break ;
  104.     case 0 :
  105.                     break ;
  106.     default :
  107.                     RED ;
  108.                     printf("わからないけど、エラー!\n") ;
  109.                     break ;
  110.     }
  111.     STD ;
  112. }
  113.  
  114. char    *msg[] = {
  115.     "環境エラー : 環境設定をし直すか、本プログラムの使用を諦めて下さい♪",
  116.     "MS-DOSで使用する場合には、'CDDRV.SYS' と 'CDISC.SYS' のデバイス",
  117.     "ドライバが必要です。"
  118.                 } ;
  119.  
  120. void deverr()
  121. {
  122.     RED ;
  123.     printf("%s\n",msg[0]) ;
  124.     YELLOW ;
  125.     printf("※") ;
  126.     printf("%s\n",msg[1]) ;
  127.     printf("%s\n",msg[2]) ;
  128.     STD ;
  129. }
  130.  
  131. void main( void )
  132. {
  133.     int        ret,retw ;
  134.     
  135.     printf("簡易CD確認プログラム (C)パオパオ 1990.    ") ;
  136.     printf("<< Copyright (C) Y.Hirata 1990. >>\n") ;
  137.     printf("\nCD-STATUS  Version 1.00\n") ;
  138.  
  139.     ret = CDR_mphase
  140.         ( Cddrv,&Status,&Nowmusicno,(char *)&Nowtime,(char *)&Disctime ) ;
  141.     if ( ret == DEVERR ) {
  142.         deverr() ;
  143.     } else {
  144.         message( ret ) ;
  145.     }
  146.  
  147.     if ( !ret ) {
  148.         if ( Status ) {                                    /*  演奏中        */
  149.             SKYBLUE ;
  150.             printf("現在 %d 曲目を演奏中です♪\n",Nowmusicno) ;
  151.             STD ;
  152.         } else {                                /*  停止中 or PAUSE中    */
  153.  
  154.             if ( !CDR_continue( Cddrv ) ) {                /*  PAUSE中        */
  155.                 CDR_pause( Cddrv ) ;
  156.                 GREEN ;
  157.                 printf("現在 PAUSE 中です♪\n") ;
  158.                 STD ;
  159.             } else {                                    /*  停止中        */
  160.                 GREEN ;
  161.                 printf("現在 CD演奏は行われていません。\n") ;
  162.                 STD ;
  163.             }
  164.  
  165.         }
  166.     }
  167.  
  168. close: ;
  169.  
  170. }
  171.  
  172.