[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
1-
101-
201-
この機能を使うにはJavaScriptを有効にしてください
|
C++でVST作りの指摘・質問
192
:
管理人★
:2018/07/16(月) 15:45:38
猫十さん
すいません。今質問を読み返して逆方向だということに気付きました
やりかたは
>>191
と同様で出来ると思います。
(コードのイメージは全角スペースになっているのでご注意ください。)
①GUIクラス側(AEffGUIEditorを継承したクラス側)で文字列を受け取る関数を定義する
class MyGUI : public AEffGUIEditor, CControlListener
{
public:
// 引数の文字列 fileをメンバー変数のfilepathに設定する関数
void setFilePath(char* file) { strcpy(file, filepath); };
〜〜以下略〜〜
protected:
char filepath[256]; // ファイルパス用の文字列
};
②音声処理クラス側(AudioEffectXを継承したクラス側 MyVSTとする)で
CTextEditコントロールなどから文字列をうけとった際に通知する処理を追加する
void MyVST::processReplacing(float** inputs, float** outputs, VstInt32 sampleFrames)
{
〜〜以下略〜〜
// wavファイルのパスが変更された場合だけ、MyGUI側に新しいファイルパスを渡す
// (条件式は省略。プログラムに合わせてください。)
if(〜〜〜〜)
{
// たぶん排他処理が必要
((MyGUI*)editor)->setFilePath(newfilepath);
}
}
③GUIクラス側(AEffGUIEditorを継承したクラス側)でテキストラベル等に文字列を反映させる
(ここではidle関数を利用。参考→
https://www39.atwiki.jp/vst_prog/pages/93.html)
void VstGui5::idle ()
{
// まずは継承元の関数を呼び出す(必須)
AEffGUIEditor::idle ();
// このVSTGUI固有の処理を記載する
// テキストラベルの文字を設定する
// setText()処理中にfilepathが更新ないように排他処理がいるかもしれません。
textLabel->setText (filepath);
// テキストラベルの描画を更新する
textLabel->setDirty();
}
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板