FrameFilterImpl::addFloatParam Method

IFrameFilterクラスライブラリリファレンス>クラス>IFrameFilterのメソッドを使ってアクセス可能なフロート型パラメータを登録します。

構文

protected:
  void addFloatParam( const std::string& name, tFilterError (T::*getFunc)( float& ),
                             tFilterError (T::*setFunc)( float ) );
  void addFloatParam( const std::wstring& name, tFilterError (T::*getFunc)( float& ),
                             tFilterError (T::*setFunc)( float ) );
名前 説明
name パラメータの名前です。パラメータにアクセスするために文字列はIFrameFilter::setParameterクラスライブラリリファレンス>クラス>IFrameFilter>IFrameFilter::setParameter MethodIFrameFilter::getParameterクラスライブラリリファレンス>クラス>IFrameFilter>IFrameFilter::getParameter Methodへ渡す必要があります。
getFunc FrameFilterImplクラスライブラリリファレンス>クラス>FrameFilterImplから継承したクラスのメンバ関数の名前です。唯一のパラメータとしてfloatへの参照を取り、tFilterErrorクラスライブラリリファレンス>エニュメレーション>tFilterErrorを返す必要があります。
setFunc FrameFilterImplクラスライブラリリファレンス>クラス>FrameFilterImplから継承したクラスのメンバ関数の名前です。唯一のパラメータとしてfloatへの参照を取り、tFilterErrorクラスライブラリリファレンス>エニュメレーション>tFilterErrorを返す必要があります。

備考

コンストラクタ内ではフレームフィルタの全パラメータを登録する必要があります。

サンプル

このサンプルではfloat型パラメータの登録方法とアクセスメソッドの実装方法を紹介します。
フレームフィルタ実装のコンストラクタないではaddFloatParamへのコールを追加してください。

RotateTransform::CRotateTransform()
   : m_Angle( 0.0f )
{
   addFloatParam( "angle", &CRotateTransform::getAngle, &CRotateTransform::setAngle );
}

ヘッダファイル内でメソッドsetAnglegetAngleを宣言します。

DShowLib::tFilterError setAngle( float val );
DShowLib::tFilterError getAngle( float& val );

そしてそれらをソースファイルに実装します。

tFilterError CRotateTransform::setAngle( float val )
{
  m_Angle = val;
  return eNO_ERROR;
}
tFilterError CRotateTransform::getAngle( float& val )
{
  val = m_Angle;
  return eNO_ERROR;
}