vdr-plugin-softhddevice-drm-gles 1.4.0
ringbuffer.h
Go to the documentation of this file.
1
21#ifndef __SOFTHDRINGBUFFER_H
22#define __SOFTHDRINGBUFFER_H
23
24#include <stdio.h>
25#include <stdlib.h>
26#include <string.h>
27
28#include "iatomic.h"
29
35{
36public:
37 cSoftHdRingbuffer(size_t);
38 virtual ~cSoftHdRingbuffer(void);
39 void Reset(void);
40 size_t Write(const void *, size_t);
41 size_t GetWritePointer(void **);
42 size_t WriteAdvance(size_t);
43 size_t Read(void *, size_t);
44 size_t GetReadPointer(const void **);
45 size_t ReadAdvance(size_t);
46 size_t FreeBytes(void);
47 size_t UsedBytes(void);
48
49private:
50 char *m_pBuffer;
51 const char *m_pBufferEnd;
52 size_t m_Size;
53 const char *m_pReadPointer;
55
56 // The only thing modified by both
58};
59#endif
cSoftHdRingbuffer - RingBuffer class
Definition: ringbuffer.h:35
size_t GetWritePointer(void **)
Get write pointer and free bytes at this position of ring buffer.
Definition: ringbuffer.cpp:161
virtual ~cSoftHdRingbuffer(void)
cSoftHdRingbuffer destructor
Definition: ringbuffer.cpp:61
char * m_pWritePointer
only used by writer
Definition: ringbuffer.h:54
size_t Read(void *, size_t)
Read from a ring buffer.
Definition: ringbuffer.cpp:225
size_t UsedBytes(void)
Get used bytes in ring buffer.
Definition: ringbuffer.cpp:301
size_t WriteAdvance(size_t)
Advance write pointer in ring buffer.
Definition: ringbuffer.cpp:83
size_t FreeBytes(void)
Get free bytes in ring buffer.
Definition: ringbuffer.cpp:291
cSoftHdRingbuffer(size_t)
cSoftHdRingbuffer constructor
Definition: ringbuffer.cpp:46
atomic_t m_filled
how many of the buffer is used
Definition: ringbuffer.h:57
size_t ReadAdvance(size_t)
Advance read pointer in ring buffer.
Definition: ringbuffer.cpp:188
const char * m_pReadPointer
only used by reader
Definition: ringbuffer.h:53
size_t GetReadPointer(const void **)
Get read pointer and used bytes at this position of ring buffer.
Definition: ringbuffer.cpp:266
const char * m_pBufferEnd
end of buffer
Definition: ringbuffer.h:51
size_t m_Size
bytes in buffer (for faster calc)
Definition: ringbuffer.h:52
size_t Write(const void *, size_t)
Write to a ring buffer.
Definition: ringbuffer.cpp:120
char * m_pBuffer
ring buffer data
Definition: ringbuffer.h:50
void Reset(void)
Reset ring buffer pointers.
Definition: ringbuffer.cpp:69
Atomic wrapper macros function header file.
volatile int atomic_t
atomic type, 24 bit useable
Definition: iatomic.h:22