class
GPDSPGenerativeNode生成的ノードを表す具象クラス
Contents
GPDSPGenerativeNode クラスは, gpdsp 形式の外部ファイルから XML で記述されたノードの構成を読み込み, 任意の特性を持つフィルタとして振る舞う生成的ノードを表す具象クラスです.
GPDSPGenerativeInputNode クラス, GPDSPGenerativeOutputNode クラスとともに利用します.
入力ターミナルと出力ターミナルの個数と名前は, 読み込むノードの構成に依存します.
番号 | 入力 | 出力 |
---|---|---|
0 | ? | ? |
1 | ? | ? |
N-1 | ? | ? |
gpdsp ファイルでの記述例
<GPDSPGenerativeNode> <name>ノード名</name> <param> <file>gpdsp ファイルのパス</file> </param> <input> <::0> <node>[入力ターミナル名] に対する入力元のノード名</node> <output>::[入力ターミナル名] に対する入力元のターミナル番号</output> </::0> <::1> <node>[入力ターミナル名] に対する入力元のノード名</node> <output>::[入力ターミナル名] に対する入力元のターミナル番号</output> </::1> ... <::N-1> <node>[入力ターミナル名] に対する入力元のノード名</node> <output>::[入力ターミナル名] に対する入力元のターミナル番号</output> </::N-1> </input> </GPDSPGenerativeNode>
Base classes
- class GPDSPInputtableNode
- 入力ターミナルを持つノードを表す抽象クラス
- class GPDSPOutputtableNode
- 出力ターミナルを持つノードを表す抽象クラス
- class GPDSPRewindableNode virtual
- 巻き戻し可能なノードを表すインターフェースクラス
- class GPDSPRefreshableNode virtual
- リフレッシュ可能なノードを表すインターフェースクラス
Constructors, destructors, conversion operators
- GPDSPGenerativeNode(int rate) explicit noexcept
- コンストラクタです.
- ~GPDSPGenerativeNode(void) virtual noexcept
- デストラクタです.
Public functions
- int getRate(void) const noexcept
- サンプリングレートを取得します.
- GPDSPNodeRenderer const & getRenderer(void) const noexcept
- 内部で利用している GPDSPNodeRenderer クラスのインスタンスを取得します.
- std::string const & getFile(void) const noexcept
- 開いているファイルのパスを取得します.
- GPDSPError open(std::string const& file) noexcept
- gpdsp 形式の外部ファイルを開いて, XML で記述されたノードの構成を読み込みます.
- void close(void) noexcept
- 開いているファイルを閉じて, 管理しているリソースを解放します.
- GPDSPError fixate(void) virtual noexcept
- 固定個数の入出力ターミナルを生成します.
- void invalidate(void) virtual noexcept
- 演算結果を無効化し, 再演算を要求します.
- GPDSPError prepare(void) virtual noexcept
- 演算前の準備をします.
- GPDSPError process(void) virtual noexcept
- 演算を行います.
- void rewind(void) virtual noexcept
- 入出力バッファの操作位置などを再初期化します.
- void refresh(void) virtual noexcept
- 入出力バッファの値などを再初期化します.
- 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
- 引数に指定された定数値を持つ入力ターミナルを検索します.
- 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
- 引数に指定された名前を持つ出力ターミナルを検索します.
Protected functions
- GPDSPError copyInput(void) noexcept
- 入力ターミナルの値を対応する内部の GPDSPGenerativeInputNode クラスのインスタンスにコピーします.
- GPDSPError copyOutput(void) noexcept
- 内部の GPDSPGenerativeOutputNode クラスのインスタンスの値を対応する出力ターミナルにコピーします.
- 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
- すべての入力ターミナルを削除します.
- 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
ir:: GPDSPGenerativeNode:: GPDSPGenerativeNode(int rate) explicit noexcept
コンストラクタです.
リソースを初期化します.
Parameters | |
---|---|
rate in | サンプリングレート >= 0 |
GPDSPNodeRenderer const & ir:: GPDSPGenerativeNode:: getRenderer(void) const noexcept
内部で利用している GPDSPNodeRenderer クラスのインスタンスを取得します.
Returns | インスタンスへの参照 |
---|
std::string const & ir:: GPDSPGenerativeNode:: getFile(void) const noexcept
開いているファイルのパスを取得します.
Returns | パスへの参照 |
---|
GPDSPError ir:: GPDSPGenerativeNode:: open(std::string const& file) noexcept
gpdsp 形式の外部ファイルを開いて, XML で記述されたノードの構成を読み込みます.
Parameters | |
---|---|
file in | ファイルのパス |
Returns | |
GPDSPERROR_OK | 正常 |
GPDSPERROR_NO_SUPPORT | サポートされていない |
GPDSPERROR_NO_FILE | ファイルが存在しない |
GPDSPERROR_NO_MEMORY | メモリが不足している |
GPDSPERROR_NO_FOUND | 項目が見つからない |
GPDSPERROR_ALREADY_EXIST | すでに存在している |
GPDSPERROR_INVALID_STATE | 不正な状態 |
GPDSPERROR_INVALID_PARAM | 不正なパラメータ |
GPDSPERROR_INVALID_RANGE | 範囲外のパラメータ |
GPDSPERROR_INVALID_FORMAT | 不正なフォーマット |
GPDSPERROR_FAILED | 失敗 |
GPDSPError ir:: GPDSPGenerativeNode:: fixate(void) virtual noexcept
固定個数の入出力ターミナルを生成します.
何もしません.
Returns | |
---|---|
GPDSPERROR_OK | 正常 |
GPDSPError ir:: GPDSPGenerativeNode:: prepare(void) virtual noexcept
演算前の準備をします.
Returns | |
---|---|
GPDSPERROR_OK | 正常 (準備を完了) |
GPDSPERROR_WAIT | [返却なし] |
GPDSPERROR_IGNORE | [返却なし] |
GPDSPERROR_FRAGMENT | [返却なし] |
GPDSPERROR_LOOP | [返却なし] |
その他のエラー |
GPDSPError ir:: GPDSPGenerativeNode:: process(void) virtual noexcept
演算を行います.
Returns | |
---|---|
GPDSPERROR_OK | 正常 (演算を完了) |
GPDSPERROR_WAIT | データフロー入力待ち |
GPDSPERROR_IGNORE | [返却なし] |
GPDSPERROR_FRAGMENT | 一部の演算のみ完了 |
GPDSPERROR_LOOP | [返却なし] |
その他のエラー |
GPDSPError ir:: GPDSPGenerativeNode:: copyInput(void) protected noexcept
入力ターミナルの値を対応する内部の GPDSPGenerativeInputNode クラスのインスタンスにコピーします.
Returns | |
---|---|
GPDSPERROR_OK | 正常 |
GPDSPERROR_INVALID_RANGE | 範囲外のパラメータ |
GPDSPError ir:: GPDSPGenerativeNode:: copyOutput(void) protected noexcept
内部の GPDSPGenerativeOutputNode クラスのインスタンスの値を対応する出力ターミナルにコピーします.
Returns | |
---|---|
GPDSPERROR_OK | 正常 |
GPDSPERROR_INVALID_RANGE | 範囲外のパラメータ |