mirror of
https://github.com/thug1src/thug.git
synced 2025-01-22 05:43:47 +00:00
82 lines
1.5 KiB
C++
82 lines
1.5 KiB
C++
#include "gel/movies/ngps/defs.h"
|
|
#include "gel/movies/ngps/readbuf.h"
|
|
|
|
#define BUFF_SIZE (N_READ_UNIT * READ_UNIT_SIZE)
|
|
|
|
namespace Flx
|
|
{
|
|
|
|
|
|
|
|
// ////////////////////////////////////////////////////////////////
|
|
//
|
|
// Create read buffer
|
|
//
|
|
void readBufCreate(ReadBuf *b)
|
|
{
|
|
b->put = b->count = 0;
|
|
b->size = BUFF_SIZE;
|
|
}
|
|
|
|
// ////////////////////////////////////////////////////////////////
|
|
//
|
|
// Delete read buffer
|
|
//
|
|
void readBufDelete(ReadBuf *b)
|
|
{
|
|
}
|
|
|
|
// ////////////////////////////////////////////////////////////////
|
|
//
|
|
// Get empty area
|
|
//
|
|
int readBufBeginPut(ReadBuf *b, u_char **ptr)
|
|
{
|
|
int size = b->size - b->count;
|
|
if (size) {
|
|
*ptr = b->data + b->put;
|
|
}
|
|
return size;
|
|
}
|
|
|
|
// ////////////////////////////////////////////////////////////////
|
|
//
|
|
// Proceed 'write' pointer
|
|
//
|
|
int readBufEndPut(ReadBuf *b, int size)
|
|
{
|
|
int size_ok = min(b->size - b->count, size);
|
|
|
|
b->put = (b->put + size_ok) % b->size;
|
|
b->count += size_ok;
|
|
|
|
return size_ok;
|
|
}
|
|
|
|
// ////////////////////////////////////////////////////////////////
|
|
//
|
|
// Get data area
|
|
//
|
|
int readBufBeginGet(ReadBuf *b, u_char **ptr)
|
|
{
|
|
if (b->count) {
|
|
*ptr = b->data + (b->put - b->count + b->size) % b->size;
|
|
}
|
|
return b->count;
|
|
}
|
|
|
|
// ////////////////////////////////////////////////////////////////
|
|
//
|
|
// Proceed 'read' pointer
|
|
//
|
|
int readBufEndGet(ReadBuf *b, int size)
|
|
{
|
|
int size_ok = min(b->count, size);
|
|
|
|
b->count -= size_ok;
|
|
|
|
return size_ok;
|
|
}
|
|
|
|
} // namespace Flx
|