- メインページ
- ネームスペース
- クラス
- ファイル

- ファイル一覧
- ファイルメンバ

# dline.h

説明を見る。

    00001 /**
    00002    * \file dline.h
    00003    * \brief 遅延バッファの実装
    00004    *
    00005    */
    00006 #include <shortfract>
    00007 /** 遅延バッファ
    00008 *
    00009 * 遅延バッファ型を提供する名前空間
    00010 */
    00011 namespace dline{
    00012     /** 遅延バッファ型
    00013        *
    00014        * 与えられたサイズのバッファを確保し、遅延バッファとして使う。
    00015        */
    00016     class CShifter {
    00017     public:
    00018         /** 遅延バッファを確保するコンストラクタ
    00019            * @param aMaxDelay 最大遅延量を指定する。単位はサンプル。
    00020            *
    00021            * 遅延バッファを確保し、0で初期化する。確保に失敗したら内部バッファにはNULLをいれる。
    00022            */
    00023         CShifter( int aMaxDelay );
    00024
    00025         /** デストラクタ
    00026            *
    00027            * 内部バッファを開放する
    00028            */
    00029         virtual ~CShifter(void);
    00030
    00031         /** 遅延を行う
    00032            * @param in 入力バッファ
    00033            * @param out 出力バッファ
    00034            * @param count 入力バッファのサンプル数。最大遅延量をこえてもかまわない。
    00035            * @param delay 出力バッファへの遅延量。0でもかまわない。。
    00036            *
    00037            * 与えられた入力を内部バッファにコピーしながら、内部バッファの内容を出力にコピーする。
    00038            * delayが0のとき、出力には入力の値がそのままコピーされる。ディレイが1のときには、
    00039            * 1サンプル遅れた値がコピーされる。
    00040            *
    00041            * 最大遅延量を以上のdelayを指定すると、最大遅延量-1 分遅延させる。最大遅延量は
    00042            * コンストラクタ CShifter::CShifter() であたえる
    00043            */
    00044         virtual void run( const shortfract in[], shortfract out[], int count, int delay );
    00045     private:
    00046         /** 最大遅延量
    00047            *
    00048            * コンストラクタが与える最大遅延量
    00049            */
    00050         int maxDelay;
    00051
    00052         /** 遅延バッファの先頭
    00053            *
    00054            * データをバッファに挿入すたびに、デクリメントする
    00055            */
    00056         int head;
    00057
    00058         /** 遅延バッファへのポインタ
    00059            *
    00060            * コンストラクタで値を割り当て、初期化する。
    00061            */
    00062         shortfract * state;
    00063     };
    00064 };