INNER CODE UNIT · C

avail

Cateners/tiny_container · app/src/main/cpp/tiny_audio_jni.c:103

    uint32_t avail = w - rd;
    if (n > avail) n = avail;
    if (!n) return 0;
    uint32_t off = rd % RING_SIZE, c0 = RING_SIZE - off;
    if (c0 > n) c0 = n;
    memcpy(dst, r->buf + off, c0);
    if (n > c0) memcpy(dst + c0, r->buf, n - c0);
    atomic_store_explicit(&r->read_idx, rd + n, memory_order_release);
    return n;
}

/* ================================================================= */
/*  State                                                            */
/* ================================================================= */
typedef struct {
    ring_t        ring;
    atomic_bool   running;
    atomic_bool   stream_ready;

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…