version 1.42, 2006/01/09 00:20:31 |
version 1.43, 2006/01/09 04:05:43 |
|
|
char *strstatus(int); |
char *strstatus(int); |
int cdid(void); |
int cdid(void); |
void addmsf(u_int *, u_int *, u_int *, u_char, u_char, u_char); |
void addmsf(u_int *, u_int *, u_int *, u_char, u_char, u_char); |
|
void toc2msf(u_int, u_char *, u_char *, u_char *); |
|
|
void |
void |
help(void) |
help(void) |
|
|
else if (tr1 > n) |
else if (tr1 > n) |
tr1 = n; |
tr1 = n; |
|
|
if (msf) { |
toc2msf(tr1+1, &tm, &ts, &tf); |
tm = toc_buffer[tr1].addr.msf.minute; |
|
ts = toc_buffer[tr1].addr.msf.second; |
|
tf = toc_buffer[tr1].addr.msf.frame; |
|
} else |
|
lba2msf(toc_buffer[tr1].addr.lba, &tm, &ts, &tf); |
|
if ((m1 > tm) |
if ((m1 > tm) |
|| ((m1 == tm) |
|| ((m1 == tm) |
&& ((s1 > ts) |
&& ((s1 > ts) |
|
|
addmsf(&m2, &s2, &f2, m1, s1, f1); |
addmsf(&m2, &s2, &f2, m1, s1, f1); |
} else { |
} else { |
tr2 = n; |
tr2 = n; |
if (msf) { |
toc2msf(tr2+1, &tm, &ts, &tf); |
m2 = toc_buffer[n].addr.msf.minute; |
m2 = tm; |
s2 = toc_buffer[n].addr.msf.second; |
s2 = ts; |
f2 = toc_buffer[n].addr.msf.frame; |
f2 = tf; |
} else { |
|
lba2msf(toc_buffer[n].addr.lba, &tm, |
|
&ts, &tf); |
|
m2 = tm; |
|
s2 = ts; |
|
f2 = tf; |
|
} |
|
} |
} |
} else if (tr2 > n) { |
} else if (tr2 > n) { |
tr2 = n; |
tr2 = n; |
|
|
} else { |
} else { |
if (m2 || s2 || f2) |
if (m2 || s2 || f2) |
tr2--; |
tr2--; |
if (msf) { |
toc2msf(tr2+1, &tm, &ts, &tf); |
tm = toc_buffer[tr2].addr.msf.minute; |
|
ts = toc_buffer[tr2].addr.msf.second; |
|
tf = toc_buffer[tr2].addr.msf.frame; |
|
} else |
|
lba2msf(toc_buffer[tr2].addr.lba, &tm, &ts, |
|
&tf); |
|
addmsf(&m2, &s2, &f2, tm, ts, tf); |
addmsf(&m2, &s2, &f2, tm, ts, tf); |
} |
} |
|
|
if (msf) { |
toc2msf(n+1, &tm, &ts, &tf); |
tm = toc_buffer[n].addr.msf.minute; |
|
ts = toc_buffer[n].addr.msf.second; |
|
tf = toc_buffer[n].addr.msf.frame; |
|
} else |
|
lba2msf(toc_buffer[n].addr.lba, &tm, &ts, &tf); |
|
if ((tr2 < n) |
if ((tr2 < n) |
&& ((m2 > tm) |
&& ((m2 > tm) |
|| ((m2 == tm) |
|| ((m2 == tm) |
|
|
goto Clean_up; |
goto Clean_up; |
|
|
if (m2 == 0) { |
if (m2 == 0) { |
if (msf) { |
toc2msf(n+1, &tm, &ts, &tf); |
m2 = toc_buffer[n].addr.msf.minute; |
m2 = tm; |
s2 = toc_buffer[n].addr.msf.second; |
s2 = ts; |
f2 = toc_buffer[n].addr.msf.frame; |
f2 = tf; |
} else { |
|
lba2msf(toc_buffer[n].addr.lba, &tm, &ts, &tf); |
|
m2 = tm; |
|
s2 = ts; |
|
f2 = tf; |
|
} |
|
} |
} |
|
|
return play_msf(m1, s1, f1, m2, s2, f2); |
return play_msf(m1, s1, f1, m2, s2, f2); |
} |
} |
|
|
|
|
} |
} |
|
|
*m += m_inc; |
*m += m_inc; |
|
} |
|
|
|
void |
|
toc2msf(u_int track, u_char *m, u_char *s, u_char *f) |
|
{ |
|
struct cd_toc_entry *ctep; |
|
|
|
ctep = &toc_buffer[track - 1]; |
|
|
|
if (msf) { |
|
*m = ctep->addr.msf.minute; |
|
*s = ctep->addr.msf.second; |
|
*f = ctep->addr.msf.frame; |
|
} else |
|
lba2msf(ctep->addr.lba, m, s, f); |
} |
} |