1*9a747e4fSDavid du Colombier #include "acd.h" 2*9a747e4fSDavid du Colombier 3*9a747e4fSDavid du Colombier Toc thetoc; 4*9a747e4fSDavid du Colombier 5*9a747e4fSDavid du Colombier void tocthread(void * v)6*9a747e4fSDavid du Colombiertocthread(void *v) 7*9a747e4fSDavid du Colombier { 8*9a747e4fSDavid du Colombier Drive *d; 9*9a747e4fSDavid du Colombier 10*9a747e4fSDavid du Colombier threadsetname("tocthread"); 11*9a747e4fSDavid du Colombier d = v; 12*9a747e4fSDavid du Colombier DPRINT(2, "recv ctocdisp?..."); 13*9a747e4fSDavid du Colombier while(recv(d->ctocdisp, &thetoc) == 1) { 14*9a747e4fSDavid du Colombier DPRINT(2, "recv ctocdisp!..."); 15*9a747e4fSDavid du Colombier drawtoc(d->w, &thetoc); 16*9a747e4fSDavid du Colombier DPRINT(2, "send dbreq...\n"); 17*9a747e4fSDavid du Colombier send(d->ctocdbreq, &thetoc); 18*9a747e4fSDavid du Colombier } 19*9a747e4fSDavid du Colombier } 20*9a747e4fSDavid du Colombier 21*9a747e4fSDavid du Colombier void freetoc(Toc * t)22*9a747e4fSDavid du Colombierfreetoc(Toc *t) 23*9a747e4fSDavid du Colombier { 24*9a747e4fSDavid du Colombier int i; 25*9a747e4fSDavid du Colombier 26*9a747e4fSDavid du Colombier free(t->title); 27*9a747e4fSDavid du Colombier for(i=0; i<t->ntrack; i++) 28*9a747e4fSDavid du Colombier free(t->track[i].title); 29*9a747e4fSDavid du Colombier } 30*9a747e4fSDavid du Colombier 31*9a747e4fSDavid du Colombier void cddbthread(void * v)32*9a747e4fSDavid du Colombiercddbthread(void *v) 33*9a747e4fSDavid du Colombier { 34*9a747e4fSDavid du Colombier Drive *d; 35*9a747e4fSDavid du Colombier Toc t; 36*9a747e4fSDavid du Colombier 37*9a747e4fSDavid du Colombier threadsetname("cddbthread"); 38*9a747e4fSDavid du Colombier d = v; 39*9a747e4fSDavid du Colombier while(recv(d->ctocdbreply, &t) == 1) { 40*9a747e4fSDavid du Colombier if(thetoc.nchange == t.nchange) { 41*9a747e4fSDavid du Colombier freetoc(&thetoc); 42*9a747e4fSDavid du Colombier thetoc = t; 43*9a747e4fSDavid du Colombier redrawtoc(d->w, &thetoc); 44*9a747e4fSDavid du Colombier } 45*9a747e4fSDavid du Colombier } 46*9a747e4fSDavid du Colombier } 47*9a747e4fSDavid du Colombier 48*9a747e4fSDavid du Colombier void cdstatusthread(void * v)49*9a747e4fSDavid du Colombiercdstatusthread(void *v) 50*9a747e4fSDavid du Colombier { 51*9a747e4fSDavid du Colombier Drive *d; 52*9a747e4fSDavid du Colombier Cdstatus s; 53*9a747e4fSDavid du Colombier 54*9a747e4fSDavid du Colombier d = v; 55*9a747e4fSDavid du Colombier 56*9a747e4fSDavid du Colombier for(;;) 57*9a747e4fSDavid du Colombier recv(d->cstat, &s); 58*9a747e4fSDavid du Colombier 59*9a747e4fSDavid du Colombier } 60