類別:LoopBuffer
循環緩衝區
類型 | 使用 | 成員 | 說明 |
建構子 | public | ||
建構子 | public | ||
解構子 | public | ||
資料 | protected | 緩衝區。 |
|
資料 | protected | 緩衝區大小。 |
|
資料 | protected | 留空區域大小。 |
|
資料 | protected | 開始位置。 |
|
資料 | protected | 結尾位置。 |
|
函式 | public | 緩衝區大小。 |
|
函式 | public | 留空區域大小。 | |
函式 | public | 開始位置。 | |
函式 | public | 結尾位置。 | |
函式 | public | 設定緩衝區大小。 | |
函式 | public | 設定留空區域大小。 | |
函式 | public | 將開始位置與結尾位置歸零。 | |
函式 | public | 緩衝資料大小。 | |
函式 | public | 緩衝資料是否為零。 | |
函式 | public | 緩衝資料是否大於Size - Margin。 | |
函式 | public | 數據輸入緩衝區。 |
|
函式 | public | 從緩衝區中取得數據。 |
說明
循環緩衝區一般用於快取時間固定時間大小的音訊輸出入,它記錄大約Size - Margin的數據,Margin的使用,目的是盡可能不導致緩衝區溢出的問題發生。C/C++定義
class LoopBuffer
{
public:
explicit LoopBuffer (void) ;
LoopBuffer (int size,int margin) ;
virtual ~LoopBuffer (void) ;
int size (void) const ;
int margin (void) const ;
int start (void) const ;
int tail (void) const ;
int setBufferSize (int size) ;
int setMargin (int margin) ;
void reset (void) ;
int available (void) ;
bool isEmpty (void) ;
bool isFull (void) ;
int put (void * data,int length) ;
int get (void * data,int length) ;
protected:
unsigned char * buffer ;
int Size ;
int Margin ;
int Start ;
int Tail ;
};