Программирование звука в DirectSound
Страница 17. Внеинтерфейсные функции высшего уровня


Внеинтерфейсные функции высшего уровня

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.

 
« Предыдущая статья   Следующая статья »