class
GPDSPBufferInputNodeバッファ入力ノードを表す具象クラス
Contents
GPDSPBufferInputNode クラスは, 設定されたバッファからデータを読み込むためのバッファ入力ノードを表す具象クラスです. バッファが設定されていないときは, 0.0 を出力します.
入力ターミナルは持たず, 1つの出力ターミナル "out" を持ちます.
番号 | 入力 | 出力 |
---|---|---|
0 | - | out |
gpdsp ファイルでの記述例
<GPDSPBufferInputNode> <name>ノード名</name> <param> <length>入力バッファのサイズ</length> <interleave>データの間隔</interleave> </param> </GPDSPBufferInputNode>
Base classes
- class GPDSPOutputtableNode
- 出力ターミナルを持つノードを表す抽象クラス
- class GPDSPRewindableNode virtual
- 巻き戻し可能なノードを表すインターフェースクラス
- class GPDSPRefreshableNode virtual
- リフレッシュ可能なノードを表すインターフェースクラス
Constructors, destructors, conversion operators
- GPDSPBufferInputNode(void) explicit noexcept
- コンストラクタです.
- ~GPDSPBufferInputNode(void) virtual noexcept
- デストラクタです.
Public functions
- GPDSPError setBuffer(GPDSPFloat const* buffer, int length, int interleave) noexcept
- 既存の入力バッファを参照, または, 新規の入力バッファを自動的に確保します.
- GPDSPFloat const * getBufferReadonly(int* length, int* interleave) const noexcept
- 読み込み専用の入力バッファを取得します.
- GPDSPFloat* getBufferWritable(int* length, int* interleave) noexcept
- 書き込み可能な入力バッファを取得します.
- GPDSPError setPosition(int position) noexcept
- 入力バッファの操作位置を設定します.
- int getPosition(void) const noexcept
- 入力バッファの操作位置を取得します.
- bool isDelegate(void) const noexcept
- 入力バッファが既存の入力バッファへの参照であるかどうかを判定します.
- GPDSPError fixate(void) virtual noexcept
- 出力ターミナルを1つ生成します.
- GPDSPError prepare(void) virtual noexcept
- 演算前の準備をします.
- GPDSPError process(void) virtual noexcept
- 演算を行います.
- void rewind(void) virtual noexcept
- 入力バッファの操作位置を先頭に再初期化します.
- void refresh(void) virtual noexcept
- 入力バッファの値を 0.0 に再初期化します.
- int getCountO(void) const noexcept
- 出力ターミナルの個数を取得します.
- GPDSPError setNameO(int index, std::string const& what) noexcept
- 出力ターミナルの名前を設定します.
- GPDSPError getNameO(int index, std::string* what) const noexcept
- 出力ターミナルの名前を取得します.
- GPDSPError getValueO(int index, GPDSPFloat* value) const noexcept
- 出力ターミナルの値を取得します.
- int findNameO(std::string const& what) const noexcept
- 引数に指定された名前を持つ出力ターミナルを検索します.
- void invalidate(void) virtual noexcept
- 出力の演算結果を無効化し, 再演算を要求します.
Protected functions
- GPDSPError setCountO(int count, std::string const& what) noexcept
- 出力ターミナルの個数と名前を設定します.
- GPDSPError setValueO(int index, GPDSPFloat value) noexcept
- 出力ターミナルの値を設定します.
- GPDSPError appendO(std::string const& what) noexcept
- 引数に指定された名前を持つ出力ターミナルを追加します.
- GPDSPError insertO(int index, std::string const& what) noexcept
- 引数に指定された名前を持つ出力ターミナルを挿入します.
- GPDSPError removeO(int index) noexcept
- 出力ターミナルを削除します.
- void clearO(void) noexcept
- すべての出力ターミナルを削除します.
Function documentation
GPDSPError ir:: GPDSPBufferInputNode:: setBuffer(GPDSPFloat const* buffer,
int length,
int interleave) noexcept
既存の入力バッファを参照, または, 新規の入力バッファを自動的に確保します.
buffer 引数に NULL 以外を設定すると, 既存の入力バッファを入力バッファとして参照します. このとき, length 引数, もしくは interleave 引数に 0 以下の値を設定するとこの関数は失敗します.
buffer 引数に NULL を設定し length 引数が 0 以下でないとき, length 引数と interleave 引数から適切な入力バッファのサイズを計算し, 自動的に入力バッファを確保します. このとき, interleave 引数に 0 以下の値を設定するとこの関数は失敗します.
buffer 引数に NULL を設定し length 引数が 0 以下のとき, 既存の入力バッファが設定されている場合は入力バッファの参照を解除し, 入力バッファが自動的に確保されている場合は入力バッファを解放します.
Parameters | |
---|---|
buffer in | 既存の入力バッファ (NULL 可能) |
length in | 入力バッファのサイズ |
interleave in | データの間隔 |
Returns | |
GPDSPERROR_OK | 正常 |
GPDSPERROR_NO_MEMORY | メモリが不足している |
GPDSPERROR_INVALID_PARAM | 不正なパラメータ |
GPDSPFloat const * ir:: GPDSPBufferInputNode:: getBufferReadonly(int* length,
int* interleave) const noexcept
読み込み専用の入力バッファを取得します.
戻り値に NULL が返却される場合でも length 引数と interleave 引数は書き換えられます.
Parameters | |
---|---|
length out | 入力バッファのサイズ (NULL 可能) |
interleave out | データの間隔 (NULL 可能) |
Returns | |
NULL | 入力バッファが設定されていない |
その他 | 有効な入力バッファ |
GPDSPFloat* ir:: GPDSPBufferInputNode:: getBufferWritable(int* length,
int* interleave) noexcept
書き込み可能な入力バッファを取得します.
戻り値に NULL が返却される場合でも length 引数と interleave 引数は書き換えられます.
Parameters | |
---|---|
length out | 入力バッファのサイズ (NULL 可能) |
interleave out | データの間隔 (NULL 可能) |
Returns | |
NULL | 自動的に確保された入力バッファではない |
その他 | 有効な入力バッファ |
GPDSPError ir:: GPDSPBufferInputNode:: setPosition(int position) noexcept
入力バッファの操作位置を設定します.
Parameters | |
---|---|
position in | 設定する操作位置 |
Returns | |
GPDSPERROR_OK | 正常 |
GPDSPERROR_INVALID_STATE | 不正な状態 |
GPDSPERROR_INVALID_RANGE | 範囲外のパラメータ |
bool ir:: GPDSPBufferInputNode:: isDelegate(void) const noexcept
入力バッファが既存の入力バッファへの参照であるかどうかを判定します.
Returns | |
---|---|
true | 既存の入力バッファへの参照 |
false | 入力バッファが設定されていないか自動的に確保された入力バッファ |
GPDSPError ir:: GPDSPBufferInputNode:: fixate(void) virtual noexcept
出力ターミナルを1つ生成します.
Returns | |
---|---|
GPDSPERROR_OK | 正常 |
GPDSPERROR_NO_MEMORY | メモリが不足している |
GPDSPError ir:: GPDSPBufferInputNode:: prepare(void) virtual noexcept
演算前の準備をします.
Returns | |
---|---|
GPDSPERROR_OK | 正常 (準備を完了) |
GPDSPERROR_INVALID_RANGE | 範囲外のパラメータ |
GPDSPError ir:: GPDSPBufferInputNode:: process(void) virtual noexcept
演算を行います.
何もしません.
Returns | |
---|---|
GPDSPERROR_OK | 正常 (演算を完了) |