add a bytes counter to abuf structures to count the number of
authorratchov <ratchov@openbsd.org>
Thu, 14 Aug 2008 09:46:36 +0000 (09:46 +0000)
committerratchov <ratchov@openbsd.org>
Thu, 14 Aug 2008 09:46:36 +0000 (09:46 +0000)
bytes that entered the FIFO. The counter may overflow, so it
should be used with "modulo 2^32" arithmetic. The counter will
be used later to synchronize playback to record. No behaviour
change.

ok jakemsr

usr.bin/aucat/abuf.c
usr.bin/aucat/abuf.h

index a6f2ebc..e6f4803 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: abuf.c,v 1.4 2008/08/14 09:44:15 ratchov Exp $        */
+/*     $OpenBSD: abuf.c,v 1.5 2008/08/14 09:46:36 ratchov Exp $        */
 /*
  * Copyright (c) 2008 Alexandre Ratchov <alex@caoua.org>
  *
@@ -61,6 +61,7 @@ abuf_new(unsigned nfr, unsigned bpf)
        buf->len = len;
        buf->used = 0;
        buf->start = 0;
+       buf->abspos = 0;
        buf->silence = 0;
        buf->drop = 0;
        buf->rproc = NULL;
@@ -113,6 +114,7 @@ abuf_rdiscard(struct abuf *buf, unsigned count)
        buf->start += count;
        if (buf->start >= buf->len)
                buf->start -= buf->len;
+       buf->abspos += count;
 }
 
 /*
index 860a6c5..71be396 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: abuf.h,v 1.6 2008/08/14 09:44:15 ratchov Exp $        */
+/*     $OpenBSD: abuf.h,v 1.7 2008/08/14 09:46:36 ratchov Exp $        */
 /*
  * Copyright (c) 2008 Alexandre Ratchov <alex@caoua.org>
  *
@@ -49,6 +49,7 @@ struct abuf {
        unsigned start;         /* offset where data starts */
        unsigned used;          /* valid data */
        unsigned len;           /* size of the ring */
+       unsigned abspos;        /* frame number of the start position */
        unsigned silence;       /* silence to insert on next write */
        unsigned drop;          /* frames to drop on next read */
        struct aproc *rproc;    /* reader */