/* TS: CD.TS */
 
/* CD_PLAY */
 
int cdr_tseek(int , char *);
int cdr_mtplay(int , char *, char *);
int cdr_pause(int );
int cdr_continue(int );
int cdr_mstop(int );
#include<stdio.h>
 
#define CDMAX 100 
#define CDTIME(a, b, c) ((a * 60 + b) * 75 + c) 
 
int cd[CDMAX];
int cdmax;
 
struct cdtime{
        char min;
        char sec;
        char frame;
    } time1, time2;
 
int cdinit(char *filename) 
{
    FILE *fp;
    char line[256];
    int c = 0;
    int min, sec, frame;
     
    fp = fopen(filename, "r");
    if (fp == NULL){
        fclose(fp);
        return -1;
    }
    while ((fgets(line, 256, fp) != NULL) && (line[0] != 0)){
        sscanf(line, "%d %d %d", &min, &sec, &frame);
        cd[c] = CDTIME(min, sec, frame);
        c++;
    }
    cdmax = c - 1;
    fclose(fp);
    return 0;
}
 
int cdseek(int t1) 
{
    time1.frame = t1 % 75;
    t1 /= 75;
    time1.sec = t1 % 60;
    t1 /= 60;
    time1.min = t1;
     
    return cdr_tseek(0, (char *)&time1);
}
 
int cdplay(int t1, int t2) 
{
    time1.frame = t1 % 75;
    t1 /= 75;
    time1.sec = t1 % 60;
    t1 /= 60;
    time1.min = t1;
     
    time2.frame = t2 % 75;
    t2 /= 75;
    time2.sec = t2 % 60;
    t2 /= 60;
    time2.min = t2;
     
    /*
        time1.frame = 0;
        time1.sec = t1 % 60;
        time1.min = t1 / 60;
         
        time2.frame = 0;
        time2.sec = t2 % 60;
        time2.min = t2 / 60;
    */
     
    return cdr_mtplay(0, (char *)&time1, (char *)&time2);
}
 
int cdpause() 
{
    return cdr_pause(0);
}
 
int cdcont() 
{
    return cdr_continue(0);
}
 
int cdstop() 
{
    return cdr_mstop(0);
}
/* TS-END */
