home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FreeWare Collection 3
/
FreeSoftwareCollection3pd199x-jp.img
/
pao
/
ms_dos
/
cdplay
/
src
/
cdnow.c
next >
Wrap
Text File
|
1980-01-02
|
4KB
|
172 lines
/** << MSC V5.1 >> ************************************************************
**
** 簡易CD演奏プログラム...現在の演奏曲を表示するだけです。
**
** CREATE : 1990.06.29
** FINISH : 1990.07.02 Version 1.00
**
** ----- HISTORY -----
** 1990.06.29 : CREATE
**
** Programed by Y.Hirata ( Nifty ID : NAB03321 )
**
******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include "cdr.h"
#define RED printf("\x1b[31m") ;
#define GREEN printf("\x1b[32m") ;
#define YELLOW printf("\x1b[33m") ;
#define SKYBLUE printf("\x1b[36m") ;
#define STD printf("\x1b[m") ;
#define Cddrv 0 /* CDドライブ番号 ( 0 - 6 ) */
/* TOWNSでは Cddrv=0 のみ */
int Status ; /* 音楽の演奏状態 */
int Nowmusicno ; /* 現在演奏中の曲番号 */
typedef struct _TOC {
char min ;
char sec ;
char frame ;
} TOC ;
static TOC Disctime,Nowtime ;
/*
** Disctime : ディスク内演奏時間
** Nowtime : 演奏中のトラック内演奏時間
*/
void message( int messageno )
{
switch ( messageno ) {
case CDERR0 :
YELLOW ;
printf("CDがセットされていませんョ♪\n") ;
break ;
case CDERR1 :
RED ;
printf("アリャ CDNOW PROGRAM ERROR - ") ;
printf("パラメータエラー!\n") ;
break ;
case CDERR2 :
RED ;
printf("ガク! CD-ROM BIOS : ERROR - ") ;
printf("ドライブ非接続!\n") ;
break ;
case CDERR3 :
RED ;
printf("ガク! CD-ROM BIOS : ERROR - ") ;
printf("コマンド異常終了!\n") ;
break ;
case CDERR4 :
RED ;
printf("ガク! CD-ROM BIOS : ERROR - ") ;
printf("メディアエラー!\n") ;
break ;
case CDERR5 :
RED ;
printf("ガク! CD-ROM BIOS : ERROR - ") ;
printf("ハードエラー!\n") ;
break ;
case CDERR6 :
RED ;
printf("ガク! CD-ROM BIOS : ERROR - ") ;
printf("パリティエラー!\n") ;
break ;
case CDERR7 :
YELLOW ;
printf("メディア(CD)を交換しましたネ♪\n") ;
break ;
case DEVERR :
RED ;
printf("アリャ CDNOW PROGRAM ERROR - ") ;
printf("指定デバイス番号誤り! オカシイナァー \n") ;
break ;
case DEVSEC :
RED ;
printf("アリャ CDNOW PROGRAM ERROR - ") ;
printf("セクタ長誤り\n") ;
break ;
case DEVPLY :
YELLOW ;
printf("音楽演奏中\n") ;
break ;
case DEVPAUSE :
YELLOW ;
printf("既に演奏が一時停止中です!\n") ;
break ;
case DEVNPAUSE :
YELLOW ;
printf("演奏が一時停止状態でないョ!\n") ;
break ;
case 0 :
break ;
default :
RED ;
printf("わからないけど、エラー!\n") ;
break ;
}
STD ;
}
char *msg[] = {
"環境エラー : 環境設定をし直すか、本プログラムの使用を諦めて下さい♪",
"MS-DOSで使用する場合には、'CDDRV.SYS' と 'CDISC.SYS' のデバイス",
"ドライバが必要です。"
} ;
void deverr()
{
RED ;
printf("%s\n",msg[0]) ;
YELLOW ;
printf("※") ;
printf("%s\n",msg[1]) ;
printf("%s\n",msg[2]) ;
STD ;
}
void main( void )
{
int ret,retw ;
printf("簡易CD確認プログラム (C)パオパオ 1990. ") ;
printf("<< Copyright (C) Y.Hirata 1990. >>\n") ;
printf("\nCD-STATUS Version 1.00\n") ;
ret = CDR_mphase
( Cddrv,&Status,&Nowmusicno,(char *)&Nowtime,(char *)&Disctime ) ;
if ( ret == DEVERR ) {
deverr() ;
} else {
message( ret ) ;
}
if ( !ret ) {
if ( Status ) { /* 演奏中 */
SKYBLUE ;
printf("現在 %d 曲目を演奏中です♪\n",Nowmusicno) ;
STD ;
} else { /* 停止中 or PAUSE中 */
if ( !CDR_continue( Cddrv ) ) { /* PAUSE中 */
CDR_pause( Cddrv ) ;
GREEN ;
printf("現在 PAUSE 中です♪\n") ;
STD ;
} else { /* 停止中 */
GREEN ;
printf("現在 CD演奏は行われていません。\n") ;
STD ;
}
}
}
close: ;
}