Platform SDK: DirectX

ステップ 5 : クラス メソッドの定義

[Visual Basic]

ここでは、C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectMusic Visual Basic チュートリアル」を参照すること。

[C++]

サンプルの CEchoTool クラスには、継承された IUnknown IDirectMusicTool メソッドのほかに、コンストラクタとデストラクタ、およびエコーのパラメータを設定するための 2 つのパブリックメソッドがある。これらのメソッドの定義は、このチュートリアルとはやや関連が薄いが、完全を期すためにここで説明する。

CEchoTool::CEchoTool()
{
  m_cRef = 1;               // Release()はこれを解放する。
  m_dwEchoNum = 3;          // 1 つの音符につき 3 つのエコーをデフォルトに。
  m_mtDelay = DMUSPPQ / 2;  // 8 度の音符のエコー。
  InitializeCriticalSection(&m_CrSec);
}
 
CEchoTool::~CEchoTool()
{
  DeleteCriticalSection(&m_CrSec);
}
 
void CEchoTool::SetEchoNum(DWORD dwEchoNum)
{
  // ProcessPMsg()は m_dwEchoNum を使うので,クリティカル
  // セクションを利用してこのメソッドをスレッドセーフにする。
  if( dwEchoNum <= MAX_ECHOES )
  {
    EnterCriticalSection(&m_CrSec);
    m_dwEchoNum = dwEchoNum;
    LeaveCriticalSection(&m_CrSec);
  }
}
 
void CEchoTool::SetDelay(MUSIC_TIME mtDelay)
{
  // ProcessPMsg()は m_mtDelay を使うので,クリティカル
  // セクションを利用してこのメソッドをスレッドセーフにする。
  EnterCriticalSection(&m_CrSec);
  m_mtDelay = mtDelay;
  LeaveCriticalSection(&m_CrSec);
}

次項 : ステップ 6 : パフォーマンスへのツールの追加