Files
jens 714e0293e3 - fixed includes after refactor
- fixed mutual inclusions

git-svn-id: http://moon:8086/svn/software/trunk/libsrc/radio@866 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-05-23 11:49:12 +00:00

63 lines
1.7 KiB
C
Executable File

// --------------------------------------------------------------
#ifndef _RADIO_RINGBUF_H_
#define _RADIO_RINGBUF_H_
#include <stdint.h>
#include "radio_types.h"
// --------------------------------------------------------------
// Types
// --------------------------------------------------------------
typedef struct _rbuf_t
{
uint32_t size, iw, ir, dist;
radio_float_t *pData;
} rbuf_t;
typedef struct _fifo_t
{
uint32_t size_max;
uint32_t size;
uint32_t ir;
uint32_t iw;
uint32_t *pData;
} fifo_t;
// --------------------------------------------------------------
#ifdef __cplusplus
extern "C" {
#endif
// --------------------------------------------------------------
// Functions
// --------------------------------------------------------------
// RingBuffer
void RBufInit(rbuf_t *pObj, uint32_t size);
void RBufFree(rbuf_t *pObj);
void RBufPut(rbuf_t *pObj, radio_float_t x);
radio_float_t RBufGet(rbuf_t *pObj);
radio_float_t RBufGetAfter(rbuf_t *pObj, int32_t delay);
radio_float_t RBufGetAt(rbuf_t *pObj, uint32_t index);
// Fifo
void FifoInit(fifo_t *pObj, uint32_t max_size);
void FifoFree(fifo_t *pObj);
uint32_t FifoSize(fifo_t *pObj);
uint32_t FifoSizeMax(fifo_t *pObj);
uint32_t FifoFront(fifo_t *pObj);
uint32_t FifoBack(fifo_t *pObj);
void FifoPushBack(fifo_t *pObj, uint32_t item);
void FifoPushFront(fifo_t *pObj, uint32_t item);
void FifoPopBack(fifo_t *pObj);
void FifoPopFront(fifo_t *pObj);
// --------------------------------------------------------------
#ifdef __cplusplus
}
#endif // __cplusplus
// --------------------------------------------------------------
#endif // _RADIO_RINGBUF_H_