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

類別:RingBuffer

環狀緩衝區

類型 使用 成員 說明
建構子 public RingBuffer(void)
建構子 public RingBuffer(
CaInt32 elementSizeBytes,
CaInt32 elementCount,
void * dataPtr)

解構子 public ~RingBuffer(void)
資料 public CaInt32 bufferSize
資料 public volatile CaInt32 writeIndex
資料 public volatile CaInt32 readIndex
資料 public CaInt32 bigMask
資料 public CaInt32 smallMask
資料 public CaInt32 elementSizeBytes
資料 public char * buffer
函式 public virtual CaInt32 Initialize (CaInt32 elementSizeBytes ,
CaInt32 elementCount ,
void * dataPtr )

函式 public virtual CaInt32 ReadAvailable (void)
函式 public virtual CaInt32 WriteAvailable (void)
函式 public virtual void Flush (void)
函式 public virtual CaInt32 WriteRegions (CaInt32 elementCount ,
void ** dataPtr1 ,
CaInt32 * sizePtr1 ,
void ** dataPtr2 ,
CaInt32 * sizePtr2 )

函式 public virtual CaInt32 AdvanceWriteIndex (CaInt32 elementCount)
函式 public virtual CaInt32 ReadRegions (CaInt32 elementCount ,
void ** dataPtr1 ,
CaInt32 * sizePtr1 ,
void ** dataPtr2 ,
CaInt32 * sizePtr2 )

函式 public virtual CaInt32 AdvanceReadIndex (CaInt32 elementCount)
函式 public virtual CaInt32 Write (const void * data,CaInt32 elementCount)
函式 public virtual CaInt32 Read (void * data,CaInt32 elementCount)

建議

外部程式不應使用這個類別,這是專門為了「音訊驅動介面」內部使用的類別。

C/C++定義


class RingBuffer
{
  public:

    CaInt32          bufferSize       ;
    volatile CaInt32 writeIndex       ;
    volatile CaInt32 readIndex        ;
    CaInt32          bigMask          ;
    CaInt32          smallMask        ;
    CaInt32          elementSizeBytes ;
    char           * buffer           ;

    explicit RingBuffer               (void) ;
             RingBuffer               (CaInt32 elementSizeBytes ,
                                       CaInt32 elementCount     ,
                                       void  * dataPtr        ) ;
    virtual ~RingBuffer               (void) ;

    virtual CaInt32 Initialize        (CaInt32 elementSizeBytes ,
                                       CaInt32 elementCount     ,
                                       void  * dataPtr        ) ;
    virtual CaInt32 ReadAvailable     (void) ;
    virtual CaInt32 WriteAvailable    (void) ;
    virtual void    Flush             (void) ;
    virtual CaInt32 WriteRegions      (CaInt32    elementCount ,
                                       void    ** dataPtr1     ,
                                       CaInt32  * sizePtr1     ,
                                       void    ** dataPtr2     ,
                                       CaInt32  * sizePtr2   ) ;
    virtual CaInt32 AdvanceWriteIndex (CaInt32 elementCount) ;
    virtual CaInt32 ReadRegions       (CaInt32    elementCount ,
                                       void    ** dataPtr1     ,
                                       CaInt32  * sizePtr1     ,
                                       void    ** dataPtr2     ,
                                       CaInt32  * sizePtr2   ) ;
    virtual CaInt32 AdvanceReadIndex  (CaInt32 elementCount) ;

    virtual CaInt32 Write             (const void * data,CaInt32 elementCount) ;
    virtual CaInt32 Read              (void * data,CaInt32 elementCount) ;

};