Программирование звука в DirectSound - Внеинтерфейсные функции высшего уровня
ОГЛАВЛЕНИЕ
Страница 17 из 22
Внеинтерфейсные функции высшего уровня
Enumerate - перебор устройств воспроизведения или захвата
HRESULT DirectSoundEnumerate (
LPDSENUMCALLBACK EnumCallback,
LPVOID Context
);
HRESULT DirectSoundCaptureEnumerate (
DSENUMCALLBACK EnumCallback,
VOID *Context
);
- EnumCallback - указатель перебирающей функции, которая будет вызываться для каждого обнаруженного устройства;
- Context - произвольное 32-разрядное значение, которое будет передаваться перебирающей функции при каждом вызове. Например, это может быть описатель параметров искомого устройства, указатель области памяти для найденного идентификатора и т.п.
EnumCallback - перебирающая функция
BOOL CALLBACK EnumCallback (
LPGUID GUID,
LPCSTR Description,
LPCSTR Module,
VOID *Context
);
- GUID - указатель идентификатора очередного найденного устройства;
- Description - строка названия устройства;
- Module - строка имени модуля драйвера устройства;
- Context - 32-разрядное значение, заданное в функции Enumerate.
Функция вызывается для каждого найденного устройства заданного класса. Если возвращается значение TRUE - перебор продолжается, если FALSE - прекращается.
Create - создание объекта устройства воспроизведения или захвата
HRESULT WINAPI DirectSoundCreate (
LPCGUID GUID,
LPDIRECTSOUND *Dev,
LPUNKNOWN Outer
);
HRESULT WINAPI DirectSoundCaptureCreate (
LPCGUID GUID,
LPDIRECTSOUNDCAPTURE *Dev,
LPUNKNOWN Outer
);
- GUID - указатель идентификатора устройства либо нулевое значение для использования стандартного устройства;
- Dev - указатель переменной, в которую будет занесен указатель созданного объекта;
- Outer - указатель наружного интерфейса COM. Не используется, должен иметь нулевое значение.
После успешного создания устройства воспроизведения, до начала проигрывания звуковых источников приложение должно установить уровень взаимодействия методом SetCooperativeLevel.