• 首頁
  • 文件
  • 下載
  • 狀態
  • 常見問題
  • 郵件列表
  • 應用程式
  • 外部鏈結
  • 版權
  • 志願者
  • 聯繫

類別:LoopBuffer

循環緩衝區


類型 使用 成員 說明
建構子 public LoopBuffer(void)
建構子 public LoopBuffer(int size,int margin)
解構子 public ~LoopBuffer(void)
資料 protected unsigned char * buffer 緩衝區。
資料 protected int Size 緩衝區大小。
資料 protected int Margin 留空區域大小。
資料 protected int Start 開始位置。
資料 protected int Tail 結尾位置。
函式 public int size (void) const 緩衝區大小。
函式 public int margin (void) const 留空區域大小。
函式 public int start (void) const 開始位置。
函式 public int tail (void) const 結尾位置。
函式 public int setBufferSize (int size) 設定緩衝區大小。
函式 public int setMargin (int margin) 設定留空區域大小。
函式 public void reset (void) 將開始位置與結尾位置歸零。
函式 public int available (void) 緩衝資料大小。
函式 public bool isEmpty (void) 緩衝資料是否為零。
函式 public bool isFull (void) 緩衝資料是否大於Size - Margin。
函式 public int put (void * data,int length) 數據輸入緩衝區。
函式 public int get (void * data,int length) 從緩衝區中取得數據。

說明

循環緩衝區一般用於快取時間固定時間大小的音訊輸出入,它記錄大約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   ;

};