DirectMusic DirectMusic 의 사용법 오디오 스크립트의 사용법 [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
스크립트는, DirectMusic Producer 로 오쏘링 된 변수와 루틴의 콜렉션이다. 스크립트는 주로 텍스트로 구성되지만, 스크립트에는 바이너리 파라미터도 몇개인가 포함되어 있다. 개념에 대해서는, 「오디오 스크립트」를 참조할것.
IDirectMusicLoader8::GetObject 메서드를 사용해 스크립트를 로드한다. IDirectMusicScript8 인터페이스를 취득해,IDirectMusicScript8::Init 를 호출해, 스크립트를 퍼포먼스에 관련짓는다.
다음 샘플 함수에서는, 스크립트를 로드해 초기화하고 있다.
HRESULT LoadScript(IDirectMusicPerformance8 * pPerf,
IDirectMusicLoader8* pLoader,
WCHAR* wstrFileName,
IDirectMusicScript8** ppScript)
{
DMUS_SCRIPT_ERRORINFO errInfo;
HRESULT hr;
if ((NULL == pPerf) || (NULL == pLoader))
{
return E_INVALIDARG;
}
if (SUCCEEDED(hr = pLoader->LoadObjectFromFile(
CLSID_DirectMusicScript, IID_IDirectMusicScript8,
wstrFileName, (LPVOID*) ppScript)))
{
if (FAILED(hr = (*ppScript) ->Init(pPerf, &errInfo)))
{
(*ppScript) ->Release();
}
}
return hr;
}
Init 를 제외해,IDirectMusicScript8 의 메서드에는, 3 개의 주된 목적이 있다.
열거 메서드를 제외한 IDirectMusicScript8의 모든 메서드는,DMUS_SCRIPT_ERRORINFO 구조체로부터 에러 정보를 얻어온다. 변수가 발견되지 않는 경우나, 루틴내의 코드를 실행할 수 없는 경우는, 에러가 발생할 가능성이 있다.
스크립트는, 애플리케이션으로 직접 로드하거나 호출하거나 하지 않아도 사용할 수 있다. DirectMusic Producer 로 오쏘링 하는 세그먼트(segment)에는, 스크립트내의 루틴의 호출을 방아쇠 하는 스크립트 트랙을 포함할 수가 있다.