ir::GPDSPSumNode class

総和ノードを表す具象クラス

GPDSPSumNode クラスは, すべての入力の総和を計算して出力する総和ノードを表す具象クラスです. 入力を1つも持たないときは, 0.0 を出力します.

任意の数の任意の名前を持つ入力ターミナルと, 1つの出力ターミナル "out" を持ちます.

番号入力出力
0inout
1in-
N-1in-

gpdsp ファイルでの記述例

<GPDSPSumNode>
    <name>ノード名</name>
    <param>
        <count>入力ターミナルの個数</count>
    </param>
    <input>
        <::0>
            <node>in[0] に対する入力元のノード名</node>
            <output>::in[0] に対する入力元のターミナル番号</output>
        </::0>
        <::1>
            <node>in[1] に対する入力元のノード名</node>
            <output>::in[1] に対する入力元のターミナル番号</output>
        </::1>
        ...
        <::N-1>
            <node>in[N-1] に対する入力元のノード名</node>
            <output>::in[N-1] に対する入力元のターミナル番号</output>
        </::N-1>
    </input>
</GPDSPSumNode>

Base classes

class GPDSPFlexInputtableNode
可変個数の入力ターミナルを持つノードを表す抽象クラス
class GPDSPOutputtableNode
出力ターミナルを持つノードを表す抽象クラス

Constructors, destructors, conversion operators

GPDSPSumNode(void) explicit noexcept
コンストラクタです.
~GPDSPSumNode(void) virtual noexcept
デストラクタです.

Public functions

GPDSPError fixate(void) virtual noexcept
出力ターミナルを1つ生成します.
void invalidate(void) virtual noexcept
入出力の演算結果を無効化し, 再演算を要求します.
GPDSPError prepare(void) virtual noexcept
演算前の準備をします.
GPDSPError process(void) virtual noexcept
演算を行います.
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
すべての入力ターミナルを削除します.
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_POSITIVEGPDSPMODE_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 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::GPDSPSumNode::GPDSPSumNode(void) explicit noexcept

コンストラクタです.

何もしません.

ir::GPDSPSumNode::~GPDSPSumNode(void) virtual noexcept

デストラクタです.

何もしません.

GPDSPError ir::GPDSPSumNode::fixate(void) virtual noexcept

出力ターミナルを1つ生成します.

Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している

GPDSPError ir::GPDSPSumNode::prepare(void) virtual noexcept

演算前の準備をします.

何もしません.

Returns
GPDSPERROR_OK 正常 (準備を完了)

GPDSPError ir::GPDSPSumNode::process(void) virtual noexcept

演算を行います.

Returns
GPDSPERROR_OK 正常 (演算を完了)
GPDSPERROR_WAIT データフロー入力待ち
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ