---
name: "roar_vs_buffer"
section: "3"
platform: "linux"
package: "libroar-dev"
version: "1.0~beta12-4"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/roar_vs_buffer"
---

# roar\_vs\_buffer(3)

Use buffered mode streams

## NAME

roar\_vs\_buffer - Use buffered mode streams

## SYNOPSIS

\#include \<roaraudio.h\>

int roar\_vs\_buffer(roar\_vs\_t \* vss, size\_t buffer, int \* error);

ssize\_t roar\_vs\_get\_avail\_read(roar\_vs\_t \* vss, int \* error);

ssize\_t roar\_vs\_get\_avail\_write(roar\_vs\_t \* vss, int \* error);

int     roar\_vs\_reset\_buffer(roar\_vs\_t \* vss, int writering, int readring, int \* error);

## DESCRIPTION

These functions controls the buffered mode of the VS object. Using this mode is not recommended.

**roar\_vs\_buffer()** initializes the buffered mode. It takes the size for the buffer as argument. The size should be a power of two. Common values include 2048 and 4096.

**roar\_vs\_get\_avail\_read()** and **roar\_vs\_get\_avail\_write()** return the amount of free space in the read and write buffer.

**roar\_vs\_reset\_buffer()** resets the read and/or write buffer. This means the data in the buffers is discarded. This does not happen frame aligned and may result in broken audio.

Buffers are not flushed automaically. To do this use [**roar\_vs\_iterate**(3)](/roar_vs_iterate/3.md) or [**roar\_vs\_run**(3)](/roar_vs_run/3.md).

## PARAMETERS

- **vss**

  The VS object to be used.

- **buffer**

  The size of the buffer to be used in bytes.

- **writering**, **readring**

  Selects the buffer to reset. Must be ROAR\_VS\_TRUE or ROAR\_VS\_FALSE.

- **error**

  This is a pointer to a integer used to store the error value in case of error. This can be NULL if not used but it is very recommended to use this error value to report good error messages to the user.

## RETURN VALUE

On success these calls return 0. roar\_vs\_get\_avail\_read() and roar\_vs\_get\_avail\_write() return the free space in the corresponding buffer. On error, -1 is returned.

## EXAMPLES

FIXME

## SEE ALSO

[**roarvs**(7)](/roarvs/7.md), [**libroar**(7)](/libroar/7.md), [**RoarAudio**(7)](/RoarAudio/7.md).
