mirror of
https://github.com/outbackdingo/UltraGrid.git
synced 2026-03-21 10:40:21 +00:00
ring_buffer: add ring_get_available_write_size()
This commit is contained in:
@@ -130,6 +130,12 @@ int ring_get_current_size(struct ring_buffer * ring)
|
||||
return (ring->end - ring->start + ring->len) % ring->len;
|
||||
}
|
||||
|
||||
int ring_get_available_write_size(struct ring_buffer * ring){
|
||||
/* Ring buffer needs at least one free byte, otherwise start == end
|
||||
* and the ring would appear empty */
|
||||
return ring_get_size(ring) - ring_get_current_size(ring) - 1;
|
||||
}
|
||||
|
||||
struct audio_buffer_api ring_buffer_fns = {
|
||||
(void (*)(void *)) ring_buffer_destroy,
|
||||
(int (*)(void *, char *, int)) ring_buffer_read,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* @file utils/ring_buffer.h
|
||||
* @author Martin Pulec <martin.pulec@cesnet.cz>
|
||||
* @author Martin Piatka <piatka@cesnet.cz>
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 2011-2019 CESNET, z. s. p. o.
|
||||
@@ -76,6 +77,11 @@ void ring_buffer_flush(struct ring_buffer *ring);
|
||||
*/
|
||||
int ring_get_current_size(struct ring_buffer * ring);
|
||||
|
||||
/**
|
||||
* Returns size available for writing
|
||||
*/
|
||||
int ring_get_available_write_size(struct ring_buffer * ring);
|
||||
|
||||
extern struct audio_buffer_api ring_buffer_fns;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
Reference in New Issue
Block a user