/* * cbuffer.h * * Copyright (C) 1997 by Sony Computer Entertainment * All rights Reserved */ #define CBUFFERSIZE (1024) typedef struct _cbuffer { int count; int puti; int geti; unsigned char buf[CBUFFERSIZE]; } cbuffer; #define clean_cbuffer(bf) ((bf).count = 0, (bf).puti = 0, (bf).geti = 0) #define is_full_cbuffer(bf) ((bf).count == CBUFFERSIZE) #define is_empty_cbuffer(bf) ((bf).count == 0) #define cbuffer_count(bf) ((bf).count) /* you must check buffer is'nt full ! */ #define put_cbuffer(bf,ch) ((bf).buf[(bf).puti]=(ch), \ (bf).puti = ((bf).puti+1 < CBUFFERSIZE) \ ? (bf).puti+1 \ : 0 , (bf).count ++) /* you must check data exist in buffer ! */ #define get_cbuffer(bf,var) ((var)=(bf).buf[(bf).geti], \ (bf).geti = ((bf).geti+1 < CBUFFERSIZE) \ ? (bf).geti+1 \ : 0 , (bf).count --)