Browse Source

Report ringbuffer.c fixes from jack1. Fix for ticket #102.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@3126 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.9.1
sletz 17 years ago
parent
commit
7f5f7dec44
2 changed files with 14 additions and 17 deletions
  1. +5
    -1
      ChangeLog
  2. +9
    -16
      common/ringbuffer.c

+ 5
- 1
ChangeLog View File

@@ -23,7 +23,11 @@ Michael Voigt
Jackdmp changes log
---------------------------

2008-11-31 Stephane Letz <letz@grame.fr>
2008-11-27 Stephane Letz <letz@grame.fr>

* Report ringbuffer.c fixes from jack1.

2008-11-21 Stephane Letz <letz@grame.fr>

* Better isolation of server and clients system resources to allow starting the server in several user account at the same time.



+ 9
- 16
common/ringbuffer.c View File

@@ -193,13 +193,11 @@ jack_ringbuffer_read (jack_ringbuffer_t * rb, char *dest, size_t cnt)
}

memcpy (dest, &(rb->buf[rb->read_ptr]), n1);
rb->read_ptr += n1;
rb->read_ptr &= rb->size_mask;
rb->read_ptr = (rb->read_ptr + n1) & rb->size_mask;

if (n2) {
memcpy (dest + n1, &(rb->buf[rb->read_ptr]), n2);
rb->read_ptr += n2;
rb->read_ptr &= rb->size_mask;
rb->read_ptr = (rb->read_ptr + n2) & rb->size_mask;
}

return to_read;
@@ -237,13 +235,10 @@ jack_ringbuffer_peek (jack_ringbuffer_t * rb, char *dest, size_t cnt)
}

memcpy (dest, &(rb->buf[tmp_read_ptr]), n1);
tmp_read_ptr += n1;
tmp_read_ptr &= rb->size_mask;
tmp_read_ptr = (tmp_read_ptr + n1) & rb->size_mask;

if (n2) {
memcpy (dest + n1, &(rb->buf[tmp_read_ptr]), n2);
tmp_read_ptr += n2;
tmp_read_ptr &= rb->size_mask;
}

return to_read;
@@ -277,13 +272,11 @@ jack_ringbuffer_write (jack_ringbuffer_t * rb, const char *src, size_t cnt)
}

memcpy (&(rb->buf[rb->write_ptr]), src, n1);
rb->write_ptr += n1;
rb->write_ptr &= rb->size_mask;
rb->write_ptr = (rb->write_ptr + n1) & rb->size_mask;

if (n2) {
memcpy (&(rb->buf[rb->write_ptr]), src + n1, n2);
rb->write_ptr += n2;
rb->write_ptr &= rb->size_mask;
rb->write_ptr = (rb->write_ptr + n2) & rb->size_mask;
}

return to_write;
@@ -294,8 +287,8 @@ jack_ringbuffer_write (jack_ringbuffer_t * rb, const char *src, size_t cnt)
EXPORT void
jack_ringbuffer_read_advance (jack_ringbuffer_t * rb, size_t cnt)
{
rb->read_ptr += cnt;
rb->read_ptr &= rb->size_mask;
size_t tmp = (rb->read_ptr + cnt) & rb->size_mask;
rb->read_ptr = tmp;
}

/* Advance the write pointer `cnt' places. */
@@ -303,8 +296,8 @@ jack_ringbuffer_read_advance (jack_ringbuffer_t * rb, size_t cnt)
EXPORT void
jack_ringbuffer_write_advance (jack_ringbuffer_t * rb, size_t cnt)
{
rb->write_ptr += cnt;
rb->write_ptr &= rb->size_mask;
size_t tmp = (rb->write_ptr + cnt) & rb->size_mask;
rb->write_ptr = tmp;
}

/* The non-copying data reader. `vec' is an array of two places. Set


Loading…
Cancel
Save