home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FreeWare Collection 3
/
FreeSoftwareCollection3pd199x-jp.img
/
pao
/
ms_dos
/
cdplay
/
src
/
cdtime.c
< prev
next >
Wrap
Text File
|
1980-01-02
|
2KB
|
104 lines
/******************************************************************************
**
** CD 関係のプログラム用時間ルーチン
**
** Programed by Y.HIRATA Nifty-ID (NAB03321)
**
******************************************************************************/
#include "cdtime.h"
/************************** 時間の大小を求める *****************************/
/* TIME1 : TIME2 : RETURN */
/* < : = -1 */
/* = : = 0 */
/* > : = +1 */
int cmptime( min1,sec1,frame1,min2,sec2,frame2 )
signed char min1, sec1, frame1 ;
signed char min2, sec2, frame2 ;
{
if ( min1 > min2 ) {
return( 1 ) ; /* TIME1 > TIME2 */
} else if ( min1 == min2 ) {
if ( sec1 > sec2 ) {
return( 1 ) ; /* TIME1 > TIME2 */
} else if ( sec1 == sec2 ) {
if ( frame1 > frame2 ) {
return( 1 ) ; /* TIME1 > TIME2 */
} else if ( frame1 == frame2 ) {
return( 0 ) ; /* TIME1 = TIME2 */
} else {
return( -1 ) ; /* TIME1 < TIME2 */
}
} else {
return( -1 ) ; /* TIME1 < TIME2 */
}
} else {
return( -1 ) ; /* TIME1 < TIME2 */
}
}
/**************************** 時間差を求める *******************************/
void subtime( min1,sec1,frame1,min2,sec2,frame2,min,sec,frame )
char min1, sec1, frame1 ;
char min2, sec2, frame2 ;
char *min, *sec, *frame ;
{
*min = 0 ; *sec = 0 ; *frame = 0 ;
if ( frame1 >= frame2 ) {
*frame = frame1 - frame2 ;
} else {
frame1 += 75 ;
if ( sec1 == 0 ) {
sec1 += 60 ;
min1 -- ;
}
sec1 -- ;
*frame = frame1 - frame2 ;
}
if ( sec1 >= sec2 ) {
*sec = sec1 - sec2 ;
} else {
sec1 += 60 ;
min1 -- ;
*sec = sec1 - sec2 ;
}
*min = min1 - min2 ;
}
/**************************** 時間和を求める *******************************/
void addtime( min1,sec1,frame1,min2,sec2,frame2,min,sec,frame )
char min1, sec1, frame1 ;
char min2, sec2, frame2 ;
char *min, *sec, *frame ;
{
min1 += min2 ;
sec1 += sec2 ;
frame1 += frame2 ;
if ( sec1 >= 60 ) {
sec1 -= 60 ;
min1 ++ ;
}
if ( frame1 >= 75 ) {
frame1 -= 75 ;
sec1 ++ ;
if ( sec1 >= 60 ) {
sec1 -= 60 ;
min1 ++ ;
}
}
*min = min1 ;
*sec = sec1 ;
*frame = frame1 ;
return ;
}