ir::GPDSPInputtableNode class

入力ターミナルを持つノードを表す抽象クラス

GPDSPInputtableNode クラスは, 入力ターミナルを持つノードを表す抽象クラスです.

固定個数の入力ターミナルを持つ各種ノードを表す具象クラスは, GPDSPInputtableNode クラスを継承して実装します.

Base classes

class GPDSPNode virtual
ノードを表すインターフェースクラス

Derived classes

class GPDSPAmplifyNode
増幅ノードを表す具象クラス
class GPDSPBufferNode
任意遅延ノードを表す具象クラス
class GPDSPBufferOutputNode
バッファ出力ノードを表す具象クラス
class GPDSPDelayNode
単位遅延ノードを表す具象クラス
class GPDSPFlexInputtableNode
可変個数の入力ターミナルを持つノードを表す抽象クラス
class GPDSPGateNode
制限ノードを表す具象クラス
class GPDSPGenerativeNode
生成的ノードを表す具象クラス
class GPDSPGenerativeOutputNode
外部出力ノードを表す具象クラス
class GPDSPPeakNode
極値ノードを表す具象クラス
class GPDSPSignNode
符号ノードを表す具象クラス
class GPDSPSquareRootNode
平方根ノードを表す具象クラス
class GPDSPWaveNode
波形ノードを表す抽象クラス

Constructors, destructors, conversion operators

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

Public functions

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
引数に指定された定数値を持つ入力ターミナルを検索します.
void invalidate(void) virtual noexcept
入力の演算結果を無効化し, 再演算を要求します.
GPDSPError fixate(void) noexcept pure virtual
固定個数の入出力ターミナルを生成します.
GPDSPError prepare(void) noexcept pure virtual
演算前の準備をします.
GPDSPError process(void) noexcept pure virtual
演算を行います.

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::GPDSPInputtableNode::GPDSPInputtableNode(void) explicit protected noexcept

コンストラクタです.

何もしません.

ir::GPDSPInputtableNode::~GPDSPInputtableNode(void) noexcept pure virtual protected

デストラクタです.

管理しているリソースを解放します.

int ir::GPDSPInputtableNode::getCountI(void) const noexcept

入力ターミナルの個数を取得します.

Returns 現在の個数

GPDSPError ir::GPDSPInputtableNode::setNameI(int index, std::string const& what) noexcept

入力ターミナルの名前を設定します.

Parameters
index in ターミナル番号
what in 設定する名前
Returns
GPDSPERROR_OK 正常
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ

GPDSPError ir::GPDSPInputtableNode::getNameI(int index, std::string* what) const noexcept

入力ターミナルの名前を取得します.

Parameters
index in ターミナル番号
what out 名前の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ

GPDSPError ir::GPDSPInputtableNode::setLinkPositiveI(int index, GPDSPOutputtableNode const* from, int which) noexcept

入力ターミナルの非反転入力のノード接続を設定し, モードを GPDSPMODE_POSITIVE に変更します.

Parameters
index in ターミナル番号
from in 設定するノード (NULL 可能)
which in 設定するノードのターミナル番号
Returns
GPDSPERROR_OK 正常
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ

GPDSPError ir::GPDSPInputtableNode::setLinkNegativeI(int index, GPDSPOutputtableNode const* from, int which) noexcept

入力ターミナルの反転入力のノード接続を設定し, モードを GPDSPMODE_NEGATIVE に変更します.

Parameters
index in ターミナル番号
from in 設定するノード (NULL 可能)
which in 設定するノードのターミナル番号
Returns
GPDSPERROR_OK 正常
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ

GPDSPError ir::GPDSPInputtableNode::setLinkConstantI(int index, GPDSPFloat constant) noexcept

入力ターミナルの定数入力の定数値を設定し, モードを GPDSPMODE_CONSTANT に変更します.

Parameters
index in ターミナル番号
constant in 設定する定数値
Returns
GPDSPERROR_OK 正常
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ

GPDSPError ir::GPDSPInputtableNode::getModeI(int index, GPDSPMode* mode) const noexcept

入力ターミナルのモードを取得します.

Parameters
index in ターミナル番号
mode out モードの取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ

GPDSPError ir::GPDSPInputtableNode::getLinkI(int index, GPDSPOutputtableNode const** from, int* which) const noexcept

入力ターミナルのモードが GPDSPMODE_POSITIVEGPDSPMODE_NEGATIVE の場合に, ノード接続を取得します.

Parameters
index in ターミナル番号
from out ノードの取得先 (NULL 可能)
which out ノードのターミナル番号の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_INVALID_STATE 不正な状態
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ

GPDSPError ir::GPDSPInputtableNode::getLinkI(int index, GPDSPFloat* constant) const noexcept

入力ターミナルのモードが GPDSPMODE_CONSTANT の場合に, 定数値を取得します.

Parameters
index in ターミナル番号
constant out 定数値の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_INVALID_STATE 不正な状態
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ

GPDSPError ir::GPDSPInputtableNode::clearLinkI(int index) noexcept

入力ターミナルのノード接続と定数値を解除し, モードを GPDSPMODE_NONE に変更します.

Parameters
index in ターミナル番号
Returns
GPDSPERROR_OK 正常
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ

void ir::GPDSPInputtableNode::clearLinkI(GPDSPMode mode) noexcept

入力ターミナルのノード接続と定数値を解除し, モードを GPDSPMODE_NONE に変更します.

Parameters
mode in 解除するモード

void ir::GPDSPInputtableNode::clearLinkI(GPDSPOutputtableNode const* from, int which) noexcept

入力ターミナルのノード接続を解除し, モードを GPDSPMODE_NONE に変更します.

Parameters
from in 解除するノード (NULL 可能)
which in 解除するノードのターミナル番号

void ir::GPDSPInputtableNode::clearLinkI(GPDSPOutputtableNode const* from) noexcept

入力ターミナルのノード接続を解除し, モードを GPDSPMODE_NONE に変更します.

Parameters
from in 解除するノード (NULL 可能)

void ir::GPDSPInputtableNode::clearLinkI(GPDSPFloat constant) noexcept

入力ターミナルの定数値を解除し, モードを GPDSPMODE_NONE に変更します.

Parameters
constant in 解除する定数値

GPDSPError ir::GPDSPInputtableNode::getValueI(int index, GPDSPFloat* value) const noexcept

入力ターミナルの値を取得します.

Parameters
index in ターミナル番号
value out 値の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_WAIT データフロー入力待ち
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ

int ir::GPDSPInputtableNode::findNameI(std::string const& what) const noexcept

引数に指定された名前を持つ入力ターミナルを検索します.

同じ名前を持つ入力ターミナルが複数ある場合には, 最初に見つかった入力ターミナルを返却します.

Parameters
what in 検索する名前
Returns
-1 存在しない
その他 ターミナル番号

int ir::GPDSPInputtableNode::findModeI(GPDSPMode mode) const noexcept

引数に指定されたモードを持つ入力ターミナルを検索します.

同じモードを持つ入力ターミナルが複数ある場合には, 最初に見つかった入力ターミナルを返却します.

Parameters
mode in 検索するモード
Returns
-1 存在しない
その他 ターミナル番号

int ir::GPDSPInputtableNode::findLinkI(GPDSPOutputtableNode const* from, int which) const noexcept

引数に指定されたノード接続を持つ入力ターミナルを検索します.

同じノード接続を持つ入力ターミナルが複数ある場合には, 最初に見つかった入力ターミナルを返却します.

Parameters
from in 検索するノード (NULL 可能)
which in 検索するノードのターミナル番号
Returns
-1 存在しない
その他 ターミナル番号

int ir::GPDSPInputtableNode::findLinkI(GPDSPOutputtableNode const* from) const noexcept

引数に指定されたノード接続を持つ入力ターミナルを検索します.

同じノード接続を持つ入力ターミナルが複数ある場合には, 最初に見つかった入力ターミナルを返却します.

Parameters
from in 検索するノード (NULL 可能)
Returns
-1 存在しない
その他 ターミナル番号

int ir::GPDSPInputtableNode::findLinkI(GPDSPFloat constant) const noexcept

引数に指定された定数値を持つ入力ターミナルを検索します.

同じ定数値を持つ入力ターミナルが複数ある場合には, 最初に見つかった入力ターミナルを返却します.

Parameters
constant in 検索する定数値
Returns
-1 存在しない
その他 ターミナル番号

void ir::GPDSPInputtableNode::invalidate(void) virtual noexcept

入力の演算結果を無効化し, 再演算を要求します.

何もしません.

GPDSPError ir::GPDSPInputtableNode::setCountI(int count, std::string const& what) protected noexcept

入力ターミナルの個数と名前を設定します.

Parameters
count in 設定する個数
what in 設定する名前
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している

GPDSPError ir::GPDSPInputtableNode::appendI(std::string const& what) protected noexcept

引数に指定された名前を持つ入力ターミナルを追加します.

Parameters
what in 追加する名前
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している

GPDSPError ir::GPDSPInputtableNode::insertI(int index, std::string const& what) protected noexcept

引数に指定された名前を持つ入力ターミナルを挿入します.

Parameters
index in 挿入する位置
what in 挿入する名前
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ

GPDSPError ir::GPDSPInputtableNode::removeI(int index) protected noexcept

入力ターミナルを削除します.

Parameters
index in ターミナル番号
Returns
GPDSPERROR_OK 正常
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ