したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

C++でVST作りの指摘・質問

191管理人★:2018/07/16(月) 13:53:10
猫十さん

2.4ではやったことがなく、すでに開発環境もないので試せませんが、
下記の方法で出来るのではないでしょうか?
(コードのイメージは全角スペースになっているのでご注意ください。)

①音声処理クラス側(AudioEffectXを継承したクラス側)で文字列を受け取る関数を定義する

class MyVST : public AudioEffectX
{
public:
  // 引数の文字列 fileをメンバー変数のfilepathに設定する関数
  void setFilePath(char* file) { strcpy(file, filepath); };

  〜〜以下略〜〜
protected:
  char filepath[256]; // ファイルパス用の文字列
};

②GUIクラス(AEffGUIEditorを継承したクラス側。MyGUIとする)で
 CTextEditコントロールなどから文字列をうけとった際に通知する処理を追加する

void MyGUI::valueChanged (CDrawContext *pContext, CControl *pControl)
{
  // どのパラメーターが操作されたかを取得する。
  VstInt32 index = pControl->getTag();

  // 操作されたパラメーターを確認。
  // ファイル名入力用のパラメーターなら音声処理クラスに文字列を渡す
  if ( index == MYVST_FILENAME )
  {
    char filepath[256];

    // テキストエディットから文字列を取得
    // (SDK 2.4のテキストエディットの文字列の長さは256固定なので注意)
    ((CTextEdit*)pControl)->getText(filepath);

    // 音声処理クラスに文字列を渡す
    ((MyVST*)effect)->setFilePath(filepath);
  }
  〜〜以下略〜〜
}

以上です。CTextEditの作成方法は下記とほぼ同じだったと思います。
http://vstcpp.wpblog.jp/?p=1722

なお、音声処理クラスのfilepathに書き込む際は排他処理等がいるかもしれません。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板