Skip to content

File f32_buffer_core.h

File List > doppler > f32_buffer > f32_buffer_core.h

Go to the documentation of this file

#ifndef DP_F32_BUFFER_CORE_H
#define DP_F32_BUFFER_CORE_H

#include "doppler/clib_common.h"

#include "doppler/buffer/buffer.h"
#include "doppler/dp_interrupt_guard/dp_interrupt_guard_core.h"

#ifdef __cplusplus
extern "C"
{
#endif

typedef dp_f32_t dp_f32_buffer_state_t;

static inline dp_f32_t *dp_f32_create (size_t capacity);

static inline bool
dp_f32_write_view (dp_f32_t *state, const float _Complex *x, size_t x_len);

static inline size_t
dp_f32_write_some_view (dp_f32_t *state, const float _Complex *x,
                        size_t x_len);

static inline float _Complex *dp_f32_wait_view (dp_f32_t *state, size_t n);

static inline float _Complex *dp_f32_peek_view (dp_f32_t *state, size_t n);

static inline int dp_f32_consume (dp_f32_t *state, size_t n);

static inline void dp_f32_close (dp_f32_t *state);

static inline void dp_f32_reset (dp_f32_t *state);

static inline void dp_f32_destroy (dp_f32_t *state);

static inline size_t
dp_f32_buffer_get_capacity (const dp_f32_buffer_state_t *state)
{
  return state->capacity;
}

static inline size_t
dp_f32_buffer_get_available (const dp_f32_buffer_state_t *state)
{
  return dp_f32_available (state);
}

static inline size_t
dp_f32_buffer_get_space (const dp_f32_buffer_state_t *state)
{
  return dp_f32_space (state);
}

static inline size_t
dp_f32_buffer_get_dropped (const dp_f32_buffer_state_t *state)
{
  return state->dropped;
}

static inline bool
dp_f32_buffer_get_closed (const dp_f32_buffer_state_t *state)
{
  return dp_f32_closed (state);
}

DECLARE_DP_BUFFER_VIEW (f32, float, float _Complex)
DECLARE_DP_BUFFER_FRAMES (f32, float, float _Complex)

#ifdef __cplusplus
}
#endif

#endif /* F32_BUFFER_CORE_H */