1 #include "cd-utils.h"
2 
cd_length(const SDL_CD * cdrom)3 extern int cd_length(const SDL_CD * cdrom)
4 {
5     int len = 0, i;
6     for (i = 0; i < cdrom->numtracks; i++) {
7         len += cdrom->track[i].length;
8     }
9     return len;
10 }
11 
cddb_sum(unsigned int n)12 static int cddb_sum(unsigned int n)
13 {
14     int result = 0;
15     while (n != 0) {
16         result += n % 10;
17         n /= 10;
18     }
19     return result;
20 }
21 
cddb_discid(const SDL_CD * cdrom)22 extern unsigned long cddb_discid(const SDL_CD * cdrom)
23 {
24     int i, t = 0, n = 0;
25     for (i = 0; i < cdrom->numtracks; i++) {
26         n += cddb_sum(cdrom->track[i].offset / CD_FPS);
27     }
28     if (cdrom->numtracks > 0) {
29         t = (cdrom->track[cdrom->numtracks].offset / CD_FPS) -
30             (cdrom->track[0].offset / CD_FPS);
31     }
32     return ((n % 0xff) << 24 | t << 8 | cdrom->numtracks);
33 }
34