Lines Matching refs:rec

125 	struct audio_buf play, rec;
137 int offs; /* offset between play & rec dir */
474 sc->rec.used = sc->rec.start = 0;
475 sc->rec.pos = sc->rec.xrun = 0;
476 audio_fill_sil(sc, sc->rec.data, sc->rec.len);
507 nblk = sc->rec.len / sc->rec.blksz;
511 DPRINTFN(1, "%s: rec ptr wrapped, moving %d blocks\n",
565 printf("%s: rec interrupt but not recording\n", DEVNAME(sc));
569 DPRINTF("%s: quiesced, skipping rec intr\n", DEVNAME(sc));
597 sc->rec.pos += sc->rec.blksz;
601 ptr = audio_buf_wgetblk(&sc->rec, &count);
602 audio_fill_sil(sc, ptr, sc->rec.blksz);
604 audio_buf_wcommit(&sc->rec, sc->rec.blksz);
605 if (sc->rec.used > sc->rec.len - sc->rec.blksz) {
606 DPRINTFN(1, "%s: rec overrun\n", DEVNAME(sc));
607 sc->rec.xrun += sc->rec.blksz;
608 audio_buf_rdiscard(&sc->rec, sc->rec.blksz);
610 DPRINTFN(1, "%s: rec intr, used -> %zu\n", DEVNAME(sc), sc->rec.used);
613 ptr = audio_buf_wgetblk(&sc->rec, &count);
615 ptr, sc->rec.blksz, audio_rintr, sc);
617 printf("%s: rec restart failed: %d\n",
622 if (sc->rec.used > 0) {
623 DPRINTFN(1, "%s: rec wakeup, chan = %d\n",
624 DEVNAME(sc), sc->rec.blocking);
625 audio_buf_wakeup(&sc->rec);
673 sc->rec.data,
674 sc->rec.data + sc->rec.len,
675 sc->rec.blksz,
679 ptr = audio_buf_wgetblk(&sc->rec, &count);
681 ptr, sc->rec.blksz, audio_rintr, sc);
705 sc->play.xrun = sc->play.pos = sc->rec.xrun = sc->rec.pos = 0;
727 if ((sc->mode & AUMODE_RECORD) && sc->rec.used != 0)
751 max = sc->rec.datalen / 2 / (sc->rchan * sc->bps);
803 if ((sc->mode & AUMODE_RECORD) && blk_max > sc->rec.datalen / 2)
804 blk_max = sc->rec.datalen / 2;
866 max = sc->rec.datalen / (sc->round * sc->rchan * sc->bps);
870 DPRINTF("%s: rec nblks -> %u\n", DEVNAME(sc), max);
872 sc->rec.nblks = max;
1035 sc->rec.blksz = sc->round * sc->rchan * sc->bps;
1036 sc->rec.len = sc->rec.nblks * sc->rec.blksz;
1057 if ((sc->mode & AUMODE_RECORD) && sc->rec.used != 0) {
1168 sc->rec.data, sc->rec.len);
1236 error = audio_buf_init(sc, &sc->rec, AUMODE_RECORD);
1260 sc->play.pos = sc->play.xrun = sc->rec.pos = sc->rec.xrun = 0;
1312 * good drivers run play and rec handlers in a single
1314 * sc->quiesce value to both play and rec handlers
1366 sc->rec.start = sc->rec.len - sc->rec.used;
1367 audio_fill_sil(sc, sc->rec.data, sc->rec.len);
1407 wakeup(&sc->rec.blocking);
1416 klist_invalidate(&sc->rec.klist);
1424 audio_buf_done(sc, &sc->rec);
1491 sc->rec.blocking = 0;
1614 while (sc->rec.used == 0) {
1620 sc->rec.blocking = 1;
1621 error = msleep_nsec(&sc->rec.blocking,
1634 while (uio->uio_resid > 0 && sc->rec.used > 0) {
1635 ptr = audio_buf_rgetblk(&sc->rec, &count);
1640 DEVNAME(sc), ptr - sc->rec.data, count);
1647 audio_buf_rdiscard(&sc->rec, count);
1764 ap->rec_pos = sc->rec.pos;
1765 ap->rec_xrun = sc->rec.xrun;
2158 klist = &sc->rec.klist;
2195 klist_remove(&sc->rec.klist, kn);
2205 return (sc->mode & AUMODE_RECORD) && (sc->rec.used > 0);