class
GPDSPBufferOutputNodeバッファ出力ノードを表す具象クラス
Contents
GPDSPBufferOutputNode クラスは, 設定されたバッファにデータを書き込むためのバッファ出力ノードを表す具象クラスです.
1つの入力ターミナル "in" を持ち, 出力ターミナルは持ちません.
番号 | 入力 | 出力 |
---|---|---|
0 | in | - |
gpdsp ファイルでの記述例
<GPDSPBufferOutputNode> <name>ノード名</name> <param> <length>出力バッファのサイズ</length> <interleave>データの間隔</interleave> </param> <input> <::0> <node>in に対する入力元のノード名</node> <output>::in に対する入力元のターミナル番号</output> </::0> </input> </GPDSPBufferOutputNode>
Base classes
- class GPDSPInputtableNode
- 入力ターミナルを持つノードを表す抽象クラス
- class GPDSPRewindableNode virtual
- 巻き戻し可能なノードを表すインターフェースクラス
- class GPDSPRefreshableNode virtual
- リフレッシュ可能なノードを表すインターフェースクラス
Constructors, destructors, conversion operators
- GPDSPBufferOutputNode(void) explicit noexcept
- コンストラクタです.
- ~GPDSPBufferOutputNode(void) virtual noexcept
- デストラクタです.
Public functions
- GPDSPError setBuffer(GPDSPFloat* buffer, int length, int interleave) noexcept
- 既存の出力バッファを参照, または, 新規の出力バッファを自動的に確保します.
- GPDSPFloat const * getBufferReadonly(int* length, int* interleave) const 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 getCountI(void) const noexcept
- 入力ターミナルの個数を取得します.
- GPDSPError setNameI(int index, std::string const& what) noexcept
- 入力ターミナルの名前を設定します.
- GPDSPError getNameI(int index, std::string* what) const noexcept
- 入力ターミナルの名前を取得します.
- GPDSPError setLinkPositiveI(int index, GPDSPOutputtableNode const* from, int which) noexcept
- 入力ターミナルの非反転入力のノード接続を設定し, モードを GPDSPMODE_POSITIVE に変更します.
- GPDSPError setLinkNegativeI(int index, GPDSPOutputtableNode const* from, int which) noexcept
- 入力ターミナルの反転入力のノード接続を設定し, モードを GPDSPMODE_NEGATIVE に変更します.
- GPDSPError setLinkConstantI(int index, GPDSPFloat constant) noexcept
- 入力ターミナルの定数入力の定数値を設定し, モードを GPDSPMODE_CONSTANT に変更します.
- GPDSPError getModeI(int index, GPDSPMode* mode) const noexcept
- 入力ターミナルのモードを取得します.
- GPDSPError getLinkI(int index, GPDSPOutputtableNode const** from, int* which) const noexcept
- 入力ターミナルのモードが GPDSPMODE_POSITIVE か GPDSPMODE_NEGATIVE の場合に, ノード接続を取得します.
- GPDSPError getLinkI(int index, GPDSPFloat* constant) const noexcept
- 入力ターミナルのモードが GPDSPMODE_CONSTANT の場合に, 定数値を取得します.
- GPDSPError clearLinkI(int index) noexcept
- 入力ターミナルのノード接続と定数値を解除し, モードを GPDSPMODE_NONE に変更します.
- void clearLinkI(GPDSPMode mode) noexcept
- 入力ターミナルのノード接続と定数値を解除し, モードを GPDSPMODE_NONE に変更します.
- void clearLinkI(GPDSPOutputtableNode const* from, int which) noexcept
- 入力ターミナルのノード接続を解除し, モードを GPDSPMODE_NONE に変更します.
- void clearLinkI(GPDSPOutputtableNode const* from) noexcept
- 入力ターミナルのノード接続を解除し, モードを GPDSPMODE_NONE に変更します.
- void clearLinkI(GPDSPFloat constant) noexcept
- 入力ターミナルの定数値を解除し, モードを GPDSPMODE_NONE に変更します.
- void clearLinkI(void) noexcept
- すべての入力ターミナルのノード接続と定数値を解除し, モードを GPDSPMODE_NONE に変更します.
- GPDSPError getValueI(int index, GPDSPFloat* value) const noexcept
- 入力ターミナルの値を取得します.
- int findNameI(std::string const& what) const noexcept
- 引数に指定された名前を持つ入力ターミナルを検索します.
- int findModeI(GPDSPMode mode) const noexcept
- 引数に指定されたモードを持つ入力ターミナルを検索します.
- int findLinkI(GPDSPOutputtableNode const* from, int which) const noexcept
- 引数に指定されたノード接続を持つ入力ターミナルを検索します.
- int findLinkI(GPDSPOutputtableNode const* from) const noexcept
- 引数に指定されたノード接続を持つ入力ターミナルを検索します.
- int findLinkI(GPDSPFloat constant) const noexcept
- 引数に指定された定数値を持つ入力ターミナルを検索します.
- void invalidate(void) virtual noexcept
- 入力の演算結果を無効化し, 再演算を要求します.
Protected functions
- GPDSPError setCountI(int count, std::string const& what) noexcept
- 入力ターミナルの個数と名前を設定します.
- GPDSPError appendI(std::string const& what) noexcept
- 引数に指定された名前を持つ入力ターミナルを追加します.
- GPDSPError insertI(int index, std::string const& what) noexcept
- 引数に指定された名前を持つ入力ターミナルを挿入します.
- GPDSPError removeI(int index) noexcept
- 入力ターミナルを削除します.
- void clearI(void) noexcept
- すべての入力ターミナルを削除します.
Function documentation
ir:: GPDSPBufferOutputNode:: ~GPDSPBufferOutputNode(void) virtual noexcept
デストラクタです.
管理しているリソースを解放します.
GPDSPError ir:: GPDSPBufferOutputNode:: setBuffer(GPDSPFloat* 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:: GPDSPBufferOutputNode:: getBufferReadonly(int* length,
int* interleave) const noexcept
読み込み専用の出力バッファを取得します.
戻り値に NULL が返却される場合でも length 引数と interleave 引数は書き換えられます.
Parameters | |
---|---|
length out | 出力バッファのサイズ (NULL 可能) |
interleave out | データの間隔 (NULL 可能) |
Returns | |
NULL | 出力バッファが設定されていない |
その他 | 有効な出力バッファ |
GPDSPError ir:: GPDSPBufferOutputNode:: setPosition(int position) noexcept
出力バッファの操作位置を設定します.
Parameters | |
---|---|
position in | 設定する操作位置 |
Returns | |
GPDSPERROR_OK | 正常 |
GPDSPERROR_INVALID_STATE | 不正な状態 |
GPDSPERROR_INVALID_RANGE | 範囲外のパラメータ |
bool ir:: GPDSPBufferOutputNode:: isDelegate(void) const noexcept
出力バッファが既存の出力バッファへの参照であるかどうかを判定します.
Returns | |
---|---|
true | 既存の出力バッファへの参照 |
false | 出力バッファが設定されていないか自動的に確保された出力バッファ |
GPDSPError ir:: GPDSPBufferOutputNode:: fixate(void) virtual noexcept
入力ターミナルを1つ生成します.
Returns | |
---|---|
GPDSPERROR_OK | 正常 |
GPDSPERROR_NO_MEMORY | メモリが不足している |
GPDSPError ir:: GPDSPBufferOutputNode:: prepare(void) virtual noexcept
演算前の準備をします.
何もしません.
Returns | |
---|---|
GPDSPERROR_OK | 正常 (準備を完了) |
GPDSPError ir:: GPDSPBufferOutputNode:: process(void) virtual noexcept
演算を行います.
Returns | |
---|---|
GPDSPERROR_OK | 正常 (演算を完了) |
GPDSPERROR_WAIT | データフロー入力待ち |
GPDSPERROR_INVALID_RANGE | 範囲外のパラメータ |