version 1.17, 2010/04/24 06:18:23 |
version 1.18, 2010/05/02 11:54:27 |
|
|
} |
} |
} |
} |
pipe_close(file); |
pipe_close(file); |
|
dev_unref(); |
} |
} |
|
|
/* |
/* |
|
|
dbg_puts(": attaching\n"); |
dbg_puts(": attaching\n"); |
} |
} |
#endif |
#endif |
|
|
|
/* |
|
* start the device (dev_getpos() and dev_attach() must |
|
* be called on a started device |
|
*/ |
|
dev_wakeup(0); |
|
|
dev_attach(f->pipe.file.name, f->mode, |
dev_attach(f->pipe.file.name, f->mode, |
rbuf, &f->hpar, f->join ? dev_opar.cmax - dev_opar.cmin + 1 : 0, |
rbuf, &f->hpar, f->join ? dev_opar.cmax - dev_opar.cmin + 1 : 0, |
wbuf, &f->hpar, f->join ? dev_ipar.cmax - dev_ipar.cmin + 1 : 0, |
wbuf, &f->hpar, f->join ? dev_ipar.cmax - dev_ipar.cmin + 1 : 0, |
|
|
perror(name); |
perror(name); |
} |
} |
f = (struct wav *)pipe_new(ops, fd, name); |
f = (struct wav *)pipe_new(ops, fd, name); |
if (f == NULL) |
if (f == NULL) { |
|
close(fd); |
return NULL; |
return NULL; |
|
} |
|
if (!dev_ref()) { |
|
close(fd); |
|
return NULL; |
|
} |
if (hdr == HDR_WAV) { |
if (hdr == HDR_WAV) { |
if (!wav_readhdr(f->pipe.fd, par, &f->startpos, &f->rbytes, &f->map)) { |
if (!wav_readhdr(f->pipe.fd, par, &f->startpos, &f->rbytes, &f->map)) { |
file_del((struct file *)f); |
file_del((struct file *)f); |
|
|
} |
} |
} |
} |
f = (struct wav *)pipe_new(ops, fd, name); |
f = (struct wav *)pipe_new(ops, fd, name); |
if (f == NULL) |
if (f == NULL) { |
|
close(fd); |
return NULL; |
return NULL; |
|
} |
|
if (!dev_ref()) { |
|
close(fd); |
|
return NULL; |
|
} |
if (hdr == HDR_WAV) { |
if (hdr == HDR_WAV) { |
par->le = 1; |
par->le = 1; |
par->sig = (par->bits <= 8) ? 0 : 1; |
par->sig = (par->bits <= 8) ? 0 : 1; |