ir::GPDSPNodeRenderer class

ノードを管理してデジタル信号処理の演算を行うクラス

GPDSPNodeRenderer クラスは, 各種ノードを生成したり管理し, デジタル信号処理の演算を行うためのクラスです.

Constructors, destructors, conversion operators

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

Public functions

GPDSPError setRate(int rate) noexcept
サンプリングレートを設定します.
int getRate(void) const noexcept
サンプリングレートを取得します.
std::shared_ptr<GPDSPBufferInputNode> getNodeBufferInput(std::string const& name) const noexcept
GPDSPBufferInputNode クラスのノードを取得します.
std::shared_ptr<GPDSPBufferOutputNode> getNodeBufferOutput(std::string const& name) const noexcept
GPDSPBufferOutputNode クラスのノードを取得します.
std::shared_ptr<GPDSPConstantNode> getNodeConstant(std::string const& name) const noexcept
GPDSPConstantNode クラスのノードを取得します.
std::shared_ptr<GPDSPSignNode> getNodeSign(std::string const& name) const noexcept
GPDSPSignNode クラスのノードを取得します.
std::shared_ptr<GPDSPGateNode> getNodeGate(std::string const& name) const noexcept
GPDSPGateNode クラスのノードを取得します.
std::shared_ptr<GPDSPPeakNode> getNodePeak(std::string const& name) const noexcept
GPDSPPeakNode クラスのノードを取得します.
std::shared_ptr<GPDSPAmplifyNode> getNodeAmplify(std::string const& name) const noexcept
GPDSPAmplifyNode クラスのノードを取得します.
std::shared_ptr<GPDSPDelayNode> getNodeDelay(std::string const& name) const noexcept
GPDSPDelayNode クラスのノードを取得します.
std::shared_ptr<GPDSPBufferNode> getNodeBuffer(std::string const& name) const noexcept
GPDSPBufferNode クラスのノードを取得します.
std::shared_ptr<GPDSPSumNode> getNodeSum(std::string const& name) const noexcept
GPDSPSumNode クラスのノードを取得します.
std::shared_ptr<GPDSPMultiplyNode> getNodeMultiply(std::string const& name) const noexcept
GPDSPMultiplyNode クラスのノードを取得します.
std::shared_ptr<GPDSPSquareRootNode> getNodeSquareRoot(std::string const& name) const noexcept
GPDSPSquareRootNode クラスのノードを取得します.
std::shared_ptr<GPDSPSinWaveNode> getNodeSinWave(std::string const& name) const noexcept
GPDSPSinWaveNode クラスのノードを取得します.
std::shared_ptr<GPDSPTriangleWaveNode> getNodeTriangleWave(std::string const& name) const noexcept
GPDSPTriangleWaveNode クラスのノードを取得します.
std::shared_ptr<GPDSPSawtoothWaveNode> getNodeSawtoothWave(std::string const& name) const noexcept
GPDSPSawtoothWaveNode クラスのノードを取得します.
std::shared_ptr<GPDSPSquareWaveNode> getNodeSquareWave(std::string const& name) const noexcept
GPDSPSquareWaveNode クラスのノードを取得します.
std::shared_ptr<GPDSPGenerativeNode> getNodeGenerative(std::string const& name) const noexcept
GPDSPGenerativeNode クラスのノードを取得します.
std::shared_ptr<GPDSPNode> getNode(std::string const& name) const noexcept
ノードを取得します.
int getSize(void) const noexcept
ノードの個数を取得します.
GPDSPError setCountI(std::string const& name, int count, std::string const& what) noexcept
入力ターミナルの個数と名前を設定します.
GPDSPError getCountI(std::string const& name, int* count) const noexcept
入力ターミナルの個数を取得します.
GPDSPError setCountO(std::string const& name, int count, std::string const& what) noexcept
出力ターミナルの個数と名前を設定します.
GPDSPError getCountO(std::string const& name, int* count) const noexcept
出力ターミナルの個数を取得します.
GPDSPError setNameI(std::string const& name, int index, std::string const& what) noexcept
入力ターミナルの名前を設定します.
GPDSPError getNameI(std::string const& name, int index, std::string* what) const noexcept
入力ターミナルの名前を取得します.
GPDSPError setNameO(std::string const& name, int index, std::string const& what) noexcept
出力ターミナルの名前を設定します.
GPDSPError getNameO(std::string const& name, int index, std::string* what) const noexcept
出力ターミナルの名前を取得します.
GPDSPError setLinkPositiveI(std::string const& name, int index, std::string const& from, int which) noexcept
入力ターミナルの非反転入力のノード接続を設定し, モードを GPDSPMODE_POSITIVE に変更します.
GPDSPError setLinkNegativeI(std::string const& name, int index, std::string const& from, int which) noexcept
入力ターミナルの反転入力のノード接続を設定し, モードを GPDSPMODE_NEGATIVE に変更します.
GPDSPError setLinkConstantI(std::string const& name, int index, GPDSPFloat constant) noexcept
入力ターミナルの定数入力の定数値を設定し, モードを GPDSPMODE_CONSTANT に変更します.
GPDSPError getModeI(std::string const& name, int index, GPDSPMode* mode) const noexcept
入力ターミナルのモードを取得します.
GPDSPError getLinkI(std::string const& name, int index, std::string* from, int* which) const noexcept
入力ターミナルのモードが GPDSPMODE_POSITIVEGPDSPMODE_NEGATIVE の場合に, ノード接続を取得します.
GPDSPError getLinkI(std::string const& name, int index, GPDSPFloat* constant) const noexcept
入力ターミナルのモードが GPDSPMODE_CONSTANT の場合に, 定数値を取得します.
GPDSPError clearLinkI(std::string const& name, int index) noexcept
入力ターミナルのノード接続と定数値を解除し, モードを GPDSPMODE_NONE に変更します.
GPDSPError clearLinkI(std::string const& name, GPDSPMode mode) noexcept
入力ターミナルのノード接続と定数値を解除し, モードを GPDSPMODE_NONE に変更します.
GPDSPError clearLinkI(std::string const& name, std::string const& from, int which) noexcept
入力ターミナルのノード接続を解除し, モードを GPDSPMODE_NONE に変更します.
GPDSPError clearLinkI(std::string const& name, std::string const& from) noexcept
入力ターミナルのノード接続を解除し, モードを GPDSPMODE_NONE に変更します.
GPDSPError clearLinkI(std::string const& name, GPDSPFloat constant) noexcept
入力ターミナルの定数値を解除し, モードを GPDSPMODE_NONE に変更します.
GPDSPError clearLinkI(std::string const& name) noexcept
すべての入力ターミナルのノード接続と定数値を解除し, モードを GPDSPMODE_NONE に変更します.
GPDSPError clearLinkO(std::string const& name, int index) noexcept
執筆中.
GPDSPError clearLinkO(std::string const& name) noexcept
執筆中.
GPDSPError getValueI(std::string const& name, int index, GPDSPFloat* value) const noexcept
入力ターミナルの値を取得します.
GPDSPError getValueO(std::string const& name, int index, GPDSPFloat* value) const noexcept
出力ターミナルの値を取得します.
std::string const & getNextNode(void) const noexcept
執筆中.
bool hasNextNode(void) const noexcept
執筆中.
std::string const & findNode(std::shared_ptr<GPDSPNode const> const& node) const noexcept
執筆中.
GPDSPError findNameI(std::string const& name, std::string const& what, int* index) const noexcept
引数に指定された名前を持つ入力ターミナルを検索します.
GPDSPError findNameO(std::string const& name, std::string const& what, int* index) const noexcept
引数に指定された名前を持つ出力ターミナルを検索します.
GPDSPError findModeI(std::string const& name, GPDSPMode mode, int* index) const noexcept
引数に指定されたモードを持つ入力ターミナルを検索します.
GPDSPError findLinkI(std::string const& name, std::string const& from, int which, int* index) const noexcept
引数に指定されたノード接続を持つ入力ターミナルを検索します.
GPDSPError findLinkI(std::string const& name, std::string const& from, int* index) const noexcept
引数に指定されたノード接続を持つ入力ターミナルを検索します.
GPDSPError findLinkI(std::string const& name, GPDSPFloat constant, int* index) const noexcept
引数に指定された定数値を持つ入力ターミナルを検索します.
GPDSPError newNodeBufferInput(std::string const& name, GPDSPFloat const* buffer, int length, int interleave) noexcept
既存の入力バッファを参照, または, 新規の入力バッファを自動的に確保して GPDSPBufferInputNode クラスのノードを生成します.
GPDSPError newNodeBufferOutput(std::string const& name, GPDSPFloat* buffer, int length, int interleave) noexcept
既存の出力バッファを参照, または, 新規の出力バッファを自動的に確保して GPDSPBufferOutputNode クラスのノードを生成します.
GPDSPError newNodeConstant(std::string const& name, GPDSPFloat constant) noexcept
定数値を指定して GPDSPConstantNode クラスのノードを生成します.
GPDSPError newNodeSign(std::string const& name) noexcept
GPDSPSignNode クラスのノードを生成します.
GPDSPError newNodeGate(std::string const& name, GPDSPFloat minimum, GPDSPFloat maximum) noexcept
最小値と最大値を指定して GPDSPGateNode クラスのノードを生成します.
GPDSPError newNodePeak(std::string const& name) noexcept
GPDSPPeakNode クラスのノードを生成します.
GPDSPError newNodeAmplify(std::string const& name, GPDSPFloat gain) noexcept
増幅率を指定して GPDSPAmplifyNode クラスのノードを生成します.
GPDSPError newNodeDelay(std::string const& name) noexcept
GPDSPDelayNode クラスのノードを生成します.
GPDSPError newNodeBuffer(std::string const& name, int size) noexcept
内部バッファのサイズを指定し, 値を 0.0 に初期化して GPDSPBufferNode クラスのノードを生成します.
GPDSPError newNodeSum(std::string const& name, int count) noexcept
入力ターミナルの個数を指定して GPDSPSumNode クラスのノードを生成します.
GPDSPError newNodeMultiply(std::string const& name, int count) noexcept
入力ターミナルの個数を指定して GPDSPMultiplyNode クラスのノードを生成します.
GPDSPError newNodeSquareRoot(std::string const& name) noexcept
GPDSPSquareRootNode クラスのノードを生成します.
GPDSPError newNodeSinWave(std::string const& name, GPDSPFloat resolution = GPDSPSinWaveNode::defaultResolution()) noexcept
解像度を指定して GPDSPSinWaveNode クラスのノードを生成します.
GPDSPError newNodeTriangleWave(std::string const& name, GPDSPFloat resolution = GPDSPTriangleWaveNode::defaultResolution()) noexcept
解像度を指定して GPDSPTriangleWaveNode クラスのノードを生成します.
GPDSPError newNodeSawtoothWave(std::string const& name, GPDSPFloat resolution = GPDSPSawtoothWaveNode::defaultResolution()) noexcept
解像度を指定して GPDSPSawtoothWaveNode クラスのノードを生成します.
GPDSPError newNodeSquareWave(std::string const& name, GPDSPFloat resolution = GPDSPSquareWaveNode::defaultResolution()) noexcept
解像度を指定して GPDSPSquareWaveNode クラスのノードを生成します.
GPDSPError newNodeGenerative(std::string const& name, std::string const& file) noexcept
gpdsp 形式の外部ファイルを開いて, XML で記述されたノードの構成を読み込み GPDSPGenerativeNode クラスのノードを生成します.
GPDSPError appendNode(std::string const& name, std::shared_ptr<GPDSPNode> const& node) noexcept
既存のノードを追加します.
GPDSPError appendI(std::string const& name, std::string const& what) noexcept
引数に指定された名前を持つ入力ターミナルを追加します.
GPDSPError appendO(std::string const& name, std::string const& what) noexcept
引数に指定された名前を持つ出力ターミナルを追加します.
GPDSPError insertI(std::string const& name, int index, std::string const& what) noexcept
引数に指定された名前を持つ入力ターミナルを挿入します.
GPDSPError insertO(std::string const& name, int index, std::string const& what) noexcept
引数に指定された名前を持つ出力ターミナルを挿入します.
GPDSPError removeNode(std::string const& name) noexcept
執筆中.
GPDSPError removeI(std::string const& name, int index) noexcept
入力ターミナルを削除します.
GPDSPError removeO(std::string const& name, int index) noexcept
出力ターミナルを削除します.
void clearNode(void) noexcept
執筆中.
GPDSPError clearI(std::string const& name) noexcept
すべての入力ターミナルを削除します.
GPDSPError clearO(std::string const& name) noexcept
すべての出力ターミナルを削除します.
GPDSPError renameNode(std::string const& name, std::string const& alternate) noexcept
執筆中.
void iterateNode(void) const noexcept
執筆中.
void invalidate(void) noexcept
執筆中.
GPDSPError prepare(void) noexcept
執筆中.
GPDSPError process(void) noexcept
執筆中.
GPDSPError render(int count, int* remain = NULL) noexcept
執筆中.
GPDSPError rewind(std::string const& name) noexcept
執筆中.
void rewind(void) noexcept
執筆中.
GPDSPError refresh(std::string const& name) noexcept
執筆中.
void refresh(void) noexcept
執筆中.
GPDSPError load(std::string const& file, GPDSPSerializable* serializable = NULL) noexcept
執筆中.
GPDSPError save(std::string const& file, GPDSPSerializable* serializable = NULL) const noexcept
執筆中.

Public static functions

static GPDSPError addTag(tinyxml2::XMLElement* parent, std::string const& tag, tinyxml2::XMLElement** child) noexcept
執筆中.
static GPDSPError writeTag(tinyxml2::XMLElement* parent, std::string const& tag, int value) noexcept
執筆中.
static GPDSPError writeTag(tinyxml2::XMLElement* parent, std::string const& tag, GPDSPFloat value) noexcept
執筆中.
static GPDSPError writeTag(tinyxml2::XMLElement* parent, std::string const& tag, std::string const& value) noexcept
執筆中.
static GPDSPError readTag(tinyxml2::XMLElement const* parent, std::string const& tag, bool implicit, int* value) noexcept
執筆中.
static GPDSPError readTag(tinyxml2::XMLElement const* parent, std::string const& tag, bool implicit, int format, GPDSPFloat* value) noexcept
執筆中.
static GPDSPError readTag(tinyxml2::XMLElement const* parent, std::string const& tag, bool implicit, std::string* value) noexcept
執筆中.
static char const * stringize(GPDSPError error) noexcept
エラーから解説を含む文字列に変換します.

Function documentation

ir::GPDSPNodeRenderer::GPDSPNodeRenderer(void) explicit noexcept

コンストラクタです.

リソースを初期化します.

ir::GPDSPNodeRenderer::~GPDSPNodeRenderer(void) noexcept

デストラクタです.

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

GPDSPError ir::GPDSPNodeRenderer::setRate(int rate) noexcept

サンプリングレートを設定します.

サンプリングレートは, ノードが1つも登録されていないときに設定します. すでにノードが存在するとき, この関数は失敗します.

0 を設定すると, 明示的なサンプリングレートの考慮を行いません. このとき, 明示的なサンプリングレートの指定を必要とするいくつかの種類のノードは生成に失敗することがあります. また, load() 関数において gpdsp ファイルで記述されているサンプリングレートとの比較を行いません.

0 よりも大きな値を設定すると, サンプリングレートが明示的に処理されます. いくつかの種類のノードは, 設定されたサンプリングレートを参照して生成されます. また, load() 関数において gpdsp ファイルで記述されているサンプリングレートとの比較を行い, 一致する項目のノード構成を読み込みます.

Parameters
rate in サンプリングレート >= 0
Returns
GPDSPERROR_OK 正常
GPDSPERROR_INVALID_STATE 不正な状態
GPDSPERROR_INVALID_PARAM 不正なパラメータ

int ir::GPDSPNodeRenderer::getRate(void) const noexcept

サンプリングレートを取得します.

Returns 現在のサンプリングレート

std::shared_ptr<GPDSPBufferInputNode> ir::GPDSPNodeRenderer::getNodeBufferInput(std::string const& name) const noexcept

GPDSPBufferInputNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPBufferOutputNode> ir::GPDSPNodeRenderer::getNodeBufferOutput(std::string const& name) const noexcept

GPDSPBufferOutputNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPConstantNode> ir::GPDSPNodeRenderer::getNodeConstant(std::string const& name) const noexcept

GPDSPConstantNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPSignNode> ir::GPDSPNodeRenderer::getNodeSign(std::string const& name) const noexcept

GPDSPSignNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPGateNode> ir::GPDSPNodeRenderer::getNodeGate(std::string const& name) const noexcept

GPDSPGateNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPPeakNode> ir::GPDSPNodeRenderer::getNodePeak(std::string const& name) const noexcept

GPDSPPeakNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPAmplifyNode> ir::GPDSPNodeRenderer::getNodeAmplify(std::string const& name) const noexcept

GPDSPAmplifyNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPDelayNode> ir::GPDSPNodeRenderer::getNodeDelay(std::string const& name) const noexcept

GPDSPDelayNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPBufferNode> ir::GPDSPNodeRenderer::getNodeBuffer(std::string const& name) const noexcept

GPDSPBufferNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPSumNode> ir::GPDSPNodeRenderer::getNodeSum(std::string const& name) const noexcept

GPDSPSumNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPMultiplyNode> ir::GPDSPNodeRenderer::getNodeMultiply(std::string const& name) const noexcept

GPDSPMultiplyNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPSquareRootNode> ir::GPDSPNodeRenderer::getNodeSquareRoot(std::string const& name) const noexcept

GPDSPSquareRootNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPSinWaveNode> ir::GPDSPNodeRenderer::getNodeSinWave(std::string const& name) const noexcept

GPDSPSinWaveNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPTriangleWaveNode> ir::GPDSPNodeRenderer::getNodeTriangleWave(std::string const& name) const noexcept

GPDSPTriangleWaveNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPSawtoothWaveNode> ir::GPDSPNodeRenderer::getNodeSawtoothWave(std::string const& name) const noexcept

GPDSPSawtoothWaveNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPSquareWaveNode> ir::GPDSPNodeRenderer::getNodeSquareWave(std::string const& name) const noexcept

GPDSPSquareWaveNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPGenerativeNode> ir::GPDSPNodeRenderer::getNodeGenerative(std::string const& name) const noexcept

GPDSPGenerativeNode クラスのノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

std::shared_ptr<GPDSPNode> ir::GPDSPNodeRenderer::getNode(std::string const& name) const noexcept

ノードを取得します.

Parameters
name in ノード名
Returns
NULL ノードが見つからない
その他 有効なノード

int ir::GPDSPNodeRenderer::getSize(void) const noexcept

ノードの個数を取得します.

Returns 現在の個数

GPDSPError ir::GPDSPNodeRenderer::setCountI(std::string const& name, int count, std::string const& what) noexcept

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

Parameters
name in ノード名
count in 設定する個数
what in 設定する名前
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::getCountI(std::string const& name, int* count) const noexcept

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

Parameters
name in ノード名
count out 個数の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない

GPDSPError ir::GPDSPNodeRenderer::setCountO(std::string const& name, int count, std::string const& what) noexcept

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

Parameters
name in ノード名
count in 設定する個数
what in 設定する名前
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::getCountO(std::string const& name, int* count) const noexcept

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

Parameters
name in ノード名
count out 個数の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない

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

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

Parameters
name in ノード名
index in ターミナル番号
what in 設定する名前
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::getNameI(std::string const& name, int index, std::string* what) const noexcept

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

Parameters
name in ノード名
index in ターミナル番号
what out 名前の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::setNameO(std::string const& name, int index, std::string const& what) noexcept

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

Parameters
name in ノード名
index in ターミナル番号
what in 設定する名前
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::getNameO(std::string const& name, int index, std::string* what) const noexcept

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

Parameters
name in ノード名
index in ターミナル番号
what out 名前の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::setLinkPositiveI(std::string const& name, int index, std::string const& from, int which) noexcept

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

Parameters
name in ノード名
index in ターミナル番号
from in 設定するノードのノード名
which in 設定するノードのターミナル番号
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::setLinkNegativeI(std::string const& name, int index, std::string const& from, int which) noexcept

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

Parameters
name in ノード名
index in ターミナル番号
from in 設定するノードのノード名
which in 設定するノードのターミナル番号
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::setLinkConstantI(std::string const& name, int index, GPDSPFloat constant) noexcept

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

Parameters
name in ノード名
index in ターミナル番号
constant in 設定する定数値
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::getModeI(std::string const& name, int index, GPDSPMode* mode) const noexcept

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

Parameters
name in ノード名
index in ターミナル番号
mode out モードの取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::getLinkI(std::string const& name, int index, std::string* from, int* which) const noexcept

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

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

GPDSPError ir::GPDSPNodeRenderer::getLinkI(std::string const& name, int index, GPDSPFloat* constant) const noexcept

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

Parameters
name in ノード名
index in ターミナル番号
constant out 定数値の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_STATE 不正な状態
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::clearLinkI(std::string const& name, int index) noexcept

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

Parameters
name in ノード名
index in ターミナル番号
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::clearLinkI(std::string const& name, GPDSPMode mode) noexcept

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

Parameters
name in ノード名
mode in 解除するモード
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::clearLinkI(std::string const& name, std::string const& from, int which) noexcept

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

Parameters
name in ノード名
from in 解除するノードのノード名
which in 解除するノードのターミナル番号
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::clearLinkI(std::string const& name, std::string const& from) noexcept

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

Parameters
name in ノード名
from in 解除するノードのノード名
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::clearLinkI(std::string const& name, GPDSPFloat constant) noexcept

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

Parameters
name in ノード名
constant in 解除する定数値
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::clearLinkI(std::string const& name) noexcept

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

Parameters
name in ノード名
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::clearLinkO(std::string const& name, int index) noexcept

執筆中.

執筆中.

GPDSPError ir::GPDSPNodeRenderer::clearLinkO(std::string const& name) noexcept

執筆中.

執筆中.

GPDSPError ir::GPDSPNodeRenderer::getValueI(std::string const& name, int index, GPDSPFloat* value) const noexcept

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

Parameters
name in ノード名
index in ターミナル番号
value out 値の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_WAIT データフロー入力待ち
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::getValueO(std::string const& name, int index, GPDSPFloat* value) const noexcept

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

Parameters
name in ノード名
index in ターミナル番号
value out 値の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_WAIT データフロー入力待ち
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

std::string const & ir::GPDSPNodeRenderer::getNextNode(void) const noexcept

執筆中.

執筆中.

bool ir::GPDSPNodeRenderer::hasNextNode(void) const noexcept

執筆中.

執筆中.

std::string const & ir::GPDSPNodeRenderer::findNode(std::shared_ptr<GPDSPNode const> const& node) const noexcept

執筆中.

執筆中.

GPDSPError ir::GPDSPNodeRenderer::findNameI(std::string const& name, std::string const& what, int* index) const noexcept

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

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

Parameters
name in ノード名
what in 検索する名前
index out 結果の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_FOUND 項目が見つからない
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::findNameO(std::string const& name, std::string const& what, int* index) const noexcept

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

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

Parameters
name in ノード名
what in 検索する名前
index out 結果の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_FOUND 項目が見つからない
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::findModeI(std::string const& name, GPDSPMode mode, int* index) const noexcept

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

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

Parameters
name in ノード名
mode in 検索するモード
index out 結果の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_FOUND 項目が見つからない
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::findLinkI(std::string const& name, std::string const& from, int which, int* index) const noexcept

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

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

Parameters
name in ノード名
from in 検索するノードのノード名
which in 検索するノードのターミナル番号
index out 結果の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_FOUND 項目が見つからない
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::findLinkI(std::string const& name, std::string const& from, int* index) const noexcept

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

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

Parameters
name in ノード名
from in 検索するノードのノード名
index out 結果の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_FOUND 項目が見つからない
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::findLinkI(std::string const& name, GPDSPFloat constant, int* index) const noexcept

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

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

Parameters
name in ノード名
constant in 検索する定数値
index out 結果の取得先 (NULL 可能)
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_FOUND 項目が見つからない
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::newNodeBufferInput(std::string const& name, GPDSPFloat const* buffer, int length, int interleave) noexcept

既存の入力バッファを参照, または, 新規の入力バッファを自動的に確保して GPDSPBufferInputNode クラスのノードを生成します.

buffer 引数に NULL 以外を設定すると, 既存の入力バッファを入力バッファとして参照します. このとき, length 引数, もしくは interleave 引数に 0 以下の値を設定するとこの関数は失敗します.

buffer 引数に NULL を設定し length 引数が 0 以下でないとき, length 引数と interleave 引数から適切な入力バッファのサイズを計算し, 自動的に入力バッファを確保します. このとき, interleave 引数に 0 以下の値を設定するとこの関数は失敗します.

buffer 引数に NULL を設定し length 引数が 0 以下のとき, 既存の入力バッファが設定されている場合は入力バッファの参照を解除し, 入力バッファが自動的に確保されている場合は入力バッファを解放します.

Parameters
name in ノード名
buffer in 既存の入力バッファ (NULL 可能)
length in 入力バッファのサイズ
interleave in データの間隔
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_PARAM 不正なパラメータ

GPDSPError ir::GPDSPNodeRenderer::newNodeBufferOutput(std::string const& name, GPDSPFloat* buffer, int length, int interleave) noexcept

既存の出力バッファを参照, または, 新規の出力バッファを自動的に確保して GPDSPBufferOutputNode クラスのノードを生成します.

buffer 引数に NULL 以外を設定すると, 既存の出力バッファを出力バッファとして参照します. このとき, length 引数, もしくは interleave 引数に 0 以下の値を設定するとこの関数は失敗します.

buffer 引数に NULL を設定し length 引数が 0 以下でないとき, length 引数と interleave 引数から適切な出力バッファのサイズを計算し, 自動的に出力バッファを確保します. このとき, interleave 引数に 0 以下の値を設定するとこの関数は失敗します.

buffer 引数に NULL を設定し length 引数が 0 以下のとき, 既存の出力バッファが設定されている場合は出力バッファの参照を解除し, 出力バッファが自動的に確保されている場合は出力バッファを解放します.

Parameters
name in ノード名
buffer in 既存の出力バッファ (NULL 可能)
length in 出力バッファのサイズ
interleave in データの間隔
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_PARAM 不正なパラメータ

GPDSPError ir::GPDSPNodeRenderer::newNodeConstant(std::string const& name, GPDSPFloat constant) noexcept

定数値を指定して GPDSPConstantNode クラスのノードを生成します.

Parameters
name in ノード名
constant in 指定する定数値
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_PARAM 不正なパラメータ

GPDSPError ir::GPDSPNodeRenderer::newNodeSign(std::string const& name) noexcept

GPDSPSignNode クラスのノードを生成します.

Parameters
name in ノード名
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_PARAM 不正なパラメータ

GPDSPError ir::GPDSPNodeRenderer::newNodeGate(std::string const& name, GPDSPFloat minimum, GPDSPFloat maximum) noexcept

最小値と最大値を指定して GPDSPGateNode クラスのノードを生成します.

Parameters
name in ノード名
minimum in 指定する最小値
maximum in 指定する最大値
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_PARAM 不正なパラメータ

GPDSPError ir::GPDSPNodeRenderer::newNodePeak(std::string const& name) noexcept

GPDSPPeakNode クラスのノードを生成します.

Parameters
name in ノード名
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_PARAM 不正なパラメータ

GPDSPError ir::GPDSPNodeRenderer::newNodeAmplify(std::string const& name, GPDSPFloat gain) noexcept

増幅率を指定して GPDSPAmplifyNode クラスのノードを生成します.

Parameters
name in ノード名
gain in 指定する増幅率
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_PARAM 不正なパラメータ

GPDSPError ir::GPDSPNodeRenderer::newNodeDelay(std::string const& name) noexcept

GPDSPDelayNode クラスのノードを生成します.

Parameters
name in ノード名
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_PARAM 不正なパラメータ

GPDSPError ir::GPDSPNodeRenderer::newNodeBuffer(std::string const& name, int size) noexcept

内部バッファのサイズを指定し, 値を 0.0 に初期化して GPDSPBufferNode クラスのノードを生成します.

Parameters
name in ノード名
size in 指定するサイズ
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_PARAM 不正なパラメータ

GPDSPError ir::GPDSPNodeRenderer::newNodeSum(std::string const& name, int count) noexcept

入力ターミナルの個数を指定して GPDSPSumNode クラスのノードを生成します.

入力ターミナルの名前は, すべて "in" になります.

Parameters
name in ノード名
count in 指定する個数
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_PARAM 不正なパラメータ

GPDSPError ir::GPDSPNodeRenderer::newNodeMultiply(std::string const& name, int count) noexcept

入力ターミナルの個数を指定して GPDSPMultiplyNode クラスのノードを生成します.

入力ターミナルの名前は, すべて "in" になります.

Parameters
name in ノード名
count in 指定する個数
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_PARAM 不正なパラメータ

GPDSPError ir::GPDSPNodeRenderer::newNodeSquareRoot(std::string const& name) noexcept

GPDSPSquareRootNode クラスのノードを生成します.

Parameters
name in ノード名
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_PARAM 不正なパラメータ

GPDSPError ir::GPDSPNodeRenderer::newNodeSinWave(std::string const& name, GPDSPFloat resolution = GPDSPSinWaveNode::defaultResolution()) noexcept

解像度を指定して GPDSPSinWaveNode クラスのノードを生成します.

resolution 引数に (0.0, +INFINITY) の範囲の値を設定すると, サンプリングレートと解像度に応じた波形バッファがあらかじめ作成され, 演算時には波形バッファを参照し直線補完にて値を求めます.

resolution 引数に +INFINITY を設定すると波形バッファを作成することなく, 演算時に値を逐次計算して求めます.

サンプリングレートが 0 に設定されているとき, この関数は失敗します.

Parameters
name in ノード名
resolution in 設定する解像度 (0.0, +INFINITY]
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_STATE 不正な状態
GPDSPERROR_INVALID_PARAM 不正なパラメータ
GPDSPERROR_FAILED 失敗

GPDSPError ir::GPDSPNodeRenderer::newNodeTriangleWave(std::string const& name, GPDSPFloat resolution = GPDSPTriangleWaveNode::defaultResolution()) noexcept

解像度を指定して GPDSPTriangleWaveNode クラスのノードを生成します.

resolution 引数に (0.0, +INFINITY) の範囲の値を設定すると, サンプリングレートと解像度に応じた波形バッファがあらかじめ作成され, 演算時には波形バッファを参照し直線補完にて値を求めます.

resolution 引数に +INFINITY を設定すると波形バッファを作成することなく, 演算時に値を逐次計算して求めます.

サンプリングレートが 0 に設定されているとき, この関数は失敗します.

Parameters
name in ノード名
resolution in 設定する解像度 (0.0, +INFINITY]
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_STATE 不正な状態
GPDSPERROR_INVALID_PARAM 不正なパラメータ
GPDSPERROR_FAILED 失敗

GPDSPError ir::GPDSPNodeRenderer::newNodeSawtoothWave(std::string const& name, GPDSPFloat resolution = GPDSPSawtoothWaveNode::defaultResolution()) noexcept

解像度を指定して GPDSPSawtoothWaveNode クラスのノードを生成します.

resolution 引数に (0.0, +INFINITY) の範囲の値を設定すると, サンプリングレートと解像度に応じた波形バッファがあらかじめ作成され, 演算時には波形バッファを参照し直線補完にて値を求めます.

resolution 引数に +INFINITY を設定すると波形バッファを作成することなく, 演算時に値を逐次計算して求めます.

サンプリングレートが 0 に設定されているとき, この関数は失敗します.

Parameters
name in ノード名
resolution in 設定する解像度 (0.0, +INFINITY]
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_STATE 不正な状態
GPDSPERROR_INVALID_PARAM 不正なパラメータ
GPDSPERROR_FAILED 失敗

GPDSPError ir::GPDSPNodeRenderer::newNodeSquareWave(std::string const& name, GPDSPFloat resolution = GPDSPSquareWaveNode::defaultResolution()) noexcept

解像度を指定して GPDSPSquareWaveNode クラスのノードを生成します.

resolution 引数に (0.0, +INFINITY) の範囲の値を設定すると, サンプリングレートと解像度に応じた波形バッファがあらかじめ作成され, 演算時には波形バッファを参照し直線補完にて値を求めます.

resolution 引数に +INFINITY を設定すると波形バッファを作成することなく, 演算時に値を逐次計算して求めます.

サンプリングレートが 0 に設定されているとき, この関数は失敗します.

Parameters
name in ノード名
resolution in 設定する解像度 (0.0, +INFINITY]
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_STATE 不正な状態
GPDSPERROR_INVALID_PARAM 不正なパラメータ
GPDSPERROR_FAILED 失敗

GPDSPError ir::GPDSPNodeRenderer::newNodeGenerative(std::string const& name, std::string const& file) noexcept

gpdsp 形式の外部ファイルを開いて, XML で記述されたノードの構成を読み込み GPDSPGenerativeNode クラスのノードを生成します.

Parameters
name in ノード名
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::GPDSPNodeRenderer::appendNode(std::string const& name, std::shared_ptr<GPDSPNode> const& node) noexcept

既存のノードを追加します.

すでに生成された既存のノードを GPDSPNodeRenderer クラスの管理下に登録します.

追加されるノードは name 引数により名前付けされ, 他のノードのノード名と重複してはいけません. 名前の検証に成功した場合は, GPDSPNode::fixate() 関数が呼び出されたのち管理下に登録されます.

name 引数が空文字か node 引数が NULL のとき, この関数は失敗します.

Parameters
name in ノード名
node in 追加するノード
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_ALREADY_EXIST すでに存在している
GPDSPERROR_INVALID_PARAM 不正なパラメータ

GPDSPError ir::GPDSPNodeRenderer::appendI(std::string const& name, std::string const& what) noexcept

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

Parameters
name in ノード名
what in 追加する名前
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::appendO(std::string const& name, std::string const& what) noexcept

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

Parameters
name in ノード名
what in 追加する名前
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::insertI(std::string const& name, int index, std::string const& what) noexcept

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

Parameters
name in ノード名
index in 挿入する位置
what in 挿入する名前
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::insertO(std::string const& name, int index, std::string const& what) noexcept

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

Parameters
name in ノード名
index in 挿入する位置
what in 挿入する名前
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_MEMORY メモリが不足している
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::removeNode(std::string const& name) noexcept

執筆中.

執筆中.

GPDSPError ir::GPDSPNodeRenderer::removeI(std::string const& name, int index) noexcept

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

Parameters
name in ノード名
index in ターミナル番号
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::removeO(std::string const& name, int index) noexcept

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

Parameters
name in ノード名
index in ターミナル番号
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_RANGE 範囲外のパラメータ
GPDSPERROR_INVALID_NODE 不正なノード

void ir::GPDSPNodeRenderer::clearNode(void) noexcept

執筆中.

執筆中.

GPDSPError ir::GPDSPNodeRenderer::clearI(std::string const& name) noexcept

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

Parameters
name in ノード名
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::clearO(std::string const& name) noexcept

すべての出力ターミナルを削除します.

Parameters
name in ノード名
Returns
GPDSPERROR_OK 正常
GPDSPERROR_NO_NODE ノードが見つからない
GPDSPERROR_INVALID_NODE 不正なノード

GPDSPError ir::GPDSPNodeRenderer::renameNode(std::string const& name, std::string const& alternate) noexcept

執筆中.

執筆中.

void ir::GPDSPNodeRenderer::iterateNode(void) const noexcept

執筆中.

執筆中.

void ir::GPDSPNodeRenderer::invalidate(void) noexcept

執筆中.

執筆中.

GPDSPError ir::GPDSPNodeRenderer::prepare(void) noexcept

執筆中.

執筆中.

GPDSPError ir::GPDSPNodeRenderer::process(void) noexcept

執筆中.

執筆中.

GPDSPError ir::GPDSPNodeRenderer::render(int count, int* remain = NULL) noexcept

執筆中.

執筆中.

GPDSPError ir::GPDSPNodeRenderer::rewind(std::string const& name) noexcept

執筆中.

執筆中.

void ir::GPDSPNodeRenderer::rewind(void) noexcept

執筆中.

執筆中.

GPDSPError ir::GPDSPNodeRenderer::refresh(std::string const& name) noexcept

執筆中.

執筆中.

void ir::GPDSPNodeRenderer::refresh(void) noexcept

執筆中.

執筆中.

GPDSPError ir::GPDSPNodeRenderer::load(std::string const& file, GPDSPSerializable* serializable = NULL) noexcept

執筆中.

執筆中.

GPDSPError ir::GPDSPNodeRenderer::save(std::string const& file, GPDSPSerializable* serializable = NULL) const noexcept

執筆中.

執筆中.

static GPDSPError ir::GPDSPNodeRenderer::addTag(tinyxml2::XMLElement* parent, std::string const& tag, tinyxml2::XMLElement** child) noexcept

執筆中.

執筆中.

static GPDSPError ir::GPDSPNodeRenderer::writeTag(tinyxml2::XMLElement* parent, std::string const& tag, int value) noexcept

執筆中.

執筆中.

static GPDSPError ir::GPDSPNodeRenderer::writeTag(tinyxml2::XMLElement* parent, std::string const& tag, GPDSPFloat value) noexcept

執筆中.

執筆中.

static GPDSPError ir::GPDSPNodeRenderer::writeTag(tinyxml2::XMLElement* parent, std::string const& tag, std::string const& value) noexcept

執筆中.

執筆中.

static GPDSPError ir::GPDSPNodeRenderer::readTag(tinyxml2::XMLElement const* parent, std::string const& tag, bool implicit, int* value) noexcept

執筆中.

執筆中.

static GPDSPError ir::GPDSPNodeRenderer::readTag(tinyxml2::XMLElement const* parent, std::string const& tag, bool implicit, int format, GPDSPFloat* value) noexcept

執筆中.

執筆中.

static GPDSPError ir::GPDSPNodeRenderer::readTag(tinyxml2::XMLElement const* parent, std::string const& tag, bool implicit, std::string* value) noexcept

執筆中.

執筆中.

static char const * ir::GPDSPNodeRenderer::stringize(GPDSPError error) noexcept

エラーから解説を含む文字列に変換します.

Parameters
error in エラー
Returns 変換された文字列