VST GUIにおけるキックボタンコントロールの実装
VST GUIにおいてキックボタンコントロールを実装する方法を説明いたします。
なお、VST GUIの基本的な作成方法として下記をご理解いただいている前提で進めさせていただきます。
キックボタンコントロールは下記のようなコントロールで、クリックした瞬間だけOnになるコントロールです。
ボタンがOffの時に値は0.0となり、Onの時に1.0になります。(厳密には、ボタン上で左クリックを離した際に1.0、0.0が一瞬だけ送信されます。)
まず、キックボタンコントロールを作成するにあたって、キックボタンコントロール用の画像を用意します。
ここでは下記の画像を使用しています。なお、利用できる画像形式はPNGのみとなりますのでご注意ください。
【キックボタンコントロール画像】
キックボタンコントロール用の画像はOff状態とOn状態のを一つにしたものになります。
画像は上側がOff状態、下側がOn状態となります。
次に上記の画像をプロジェクトで利用できるように、リソースファイルに追記します。
【resource.rc】
リソースファイルの記載方法はこちらもご参照ください。 → 最小構成のVST GUI
そして、VST GUIクラスのopen()関数内で、キックボタンコントロールを生成する処理を追記いたします。
コントロールを生成する処理は関数にしております。関数作成自体は必須ではありませんが、複数のコントロールを作る場合などに便利なためです。
【guieditor.cpp】
createKickButton()関数の引数には、パラメータータグ(ID)と座標(x、y)を指定するようにしています。
コントロールはパラメーターと関連付けるので、パラメータータグ(ID)が必要になります。また、フレーム(描画領域)上の位置を指定するための座標(x、y)が必要になります。
createKickButton()関数ではまず、キックボタンコントロール用の画像を読み込んでいます。
次に画像からキックボタンコントロールのサイズを取得し、CRect sizeにそのサイズを設定します。
キックボタンコントロール用の画像は2つの状態(On状態、Off状態)を1つの画像としていますので、高さは2で割っています。
また、このsizeはコントロールのサイズだけでなくフレーム上の配置位置も兼ねています。CRectのoffset()関数を使用して位置を設定します。
各画像と配置位置・サイズが決まれば、CKickButtonクラスを作成します。
CKickButtonクラスのコンストラクタには、「サイズ」「VST GUIクラスのポインタ」「パラメータータグ(ID)」「画像」の順に指定します。
これでキックボタンが作成できるので、パラメータの現在の値をキックボタンコントロールに反映し、フレームに登録すれば表示させることができます。
キックボタンコントロール用の画像はCKickButton側に設定され不要となるため解放しておきます。
作成したコントロール生成処理関数がコントロールのポインタを返すのは、後で他のコントロールと同期させたりするのに利用するためです。
また、VST GUIクラスのopen()関数内での呼び出しは下記のようにします。
【guieditor.cpp】
以上でキックボタンコントロールを追加することができます。
ここでご紹介したキックボタンコントロール用の画像はご自由にご利用いただいてかまいません。
上記以外にもVST3.6についての情報があります。下記をご参照ください。
また、質問やご指摘はコメント欄や掲示板、Twitterでいただけばとおもいます。
■掲示板
■Twitterアカウント:@vstcpp URL:https://twitter.com/vstcpp