フレームフィルタパラメータウィザード

ここではウィザードを使って新しいパラメータをフレームフィルタクラスに追加する方法について説明します。

概 要

フレームフィルタパラメータはフレームフィルタのふるまいを制御する包括的手段となります。 フレームフィルタが作成された後、フレームフィルタモジュールウィザードプロジェクトウィザード>レームフィルタモジュールウィザードを使うことで追加することができます。フレームフィルタパラメータウィザードによってメンバ変数と2つのアクセスメソッドをフィルタクラスが追加されます。アクセスメソッドはフィルタのコンストラクタ内に登録され、フレームフィルタを使用するコードからアクセスが可能となります。

使い方

このウィザードはVisual Studioのクラスビューにございます。そこでアプリケーション名のところ(ツリー上部のルート部分)を右クリックします。コンテキストメニューにおいて追加... -> クラスの追加....と選択します。パラメータウィザードの選択画面が表示されます。



IC Frame Filter Parameterアイコンを選択しOpenボタンをクリックしてください。これで新しいメンバ変数のプロパティの入力ができるようになります。


入力フィールドの解説

  • Class name

    新しいメンバ変数が挿入されるクラスの名前です。コンボボックス内にはそのプロジェクトの全フレームフィルタクラスが含まれており、そこから選択できるようになっています。

  • Display name

    これはアプリケーションがIFrameFilter::setParameterクラスライブラリリファレンス>クラス>IFrameFilter>IFrameFilter::setParameter MethodIFrameFilter::getParameterクラスライブラリリファレンス>クラス>IFrameFilter>IFrameFilter::setParameter Methodを使用してパラメータにアクセスする際に使用するパラメータ名です。

  • Variable name

    フレームフィルタクラスにおけるメンバ変数の名前です。

  • Type

    ここではメンバ変数の型を選択します。

  • Access

    ここではメンバ変数のアクセス修飾子 (public, private, protected)を選択します。

  • Parameter limits

    新しいメンバ変数がlongfloatなどの数値型である場合、最小と最大の値を設定することができます。セットメソッドにおいてこのリミットが適用され、設定される値がその範囲外であった場合にはeINVALID_PARAM_VALUEが返されます。

    tFilterError CMyFilter::setTheVariable(long Value)
    {
      if( Value >= 0 && Value <= 255)
        m_TheVariable = Value;
      else
        return eINVALID_PARAM_VALUE;
      return eNO_ERROR;
    }

  • Can only be set, if live video is not running

    パラメータの中にははライブ表示中には設定できないものがあります。このボックスがチェックされている場合、フレームフィルタクラスにはライブ表示中かどうかをチェックする機能が挿入されます。notifyStartクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::notifyStart MethodnotifyStopクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::notifyStop Method メソッドがまだ実装されていなければ、フレームフィルタウィザードによって自動的にクラスに実装されます。これらのメソッドによってフレームフィルタクラスはライブ表示中かそうでないかをチェックします。
    内部のメンバ変数m_bLiveVideoRunningがクラスに挿入され、ライブ表示が開始されるとtrueに設定されます。この変数は新しいパラメータのセットメソッドでチェックされます。

    tFilterError CMyFilter::setTheVariable(long Value)
    {
      if( m_bLiveVideoRunning == true )
        return eINVALID_FILTER_STATE;
      else
        m_TheVariable = Value;
      return eNO_ERROR;
    }
    ライブ表示中にsetTheVariableメソッドがコールされた場合、メンバ変数m_TheVariableは設定することはできず eINVALID_FILTER_STATEが返されます。

ここまでの手順を全て終えましたら、Finishボタンを押してください。ウィザードによって新しいメンバ変数と関連メソッドが実装されます。プロパティダイアログがフレームフィルタクラスと関連している場合、フレームフィルタクラスウィザードでは変更されません。