Platform SDK: DirectX |
ここでは、C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectMusic Visual Basic チュートリアル」を参照すること。
サンプルの 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); }