Der neue PC-Standard: High Definition Audio

Suchen nach Geräten

Um HD-Audio zu ermöglichen, muss im ersten Schritt das System nach den verfügbaren Wiedergabe- und Aufnahmegeräten abgefragt werden. Da die HD-Audio-Spezifikation es erlaubt, Ports wieder zu verwenden, ist es wichtig, beim Öffnen der Applikation die Geräte abzufragen, aufzulisten und mit den bereits gespeicherten Settings zu versehen. Die Suche nach verfügbaren Geräten ist unkompliziert und benötigt nur wenig zusätzlichen Code.

Der folgende Code demonstriert, wie das System nach verfügbaren Wiedergabegeräten abgefragt wird.

if( FAILED( hr = DirectSoundEnumerate( (LPDSENUMCALLBACK)DSoundEnumCallback,(VOID*)this ) ) )
return DXTRACE_ERR_MSGBOX( TEXT("DirectSoundEnumerate"), hr );

Die DirectSoundEnumerate()-Funktion ist eine DirectSound-Funktion, die ein Callback für jedes verfügbare Wiedergabegerät generiert. Beachten Sie, dass sich im ersten Parameter die Callback-Funktion DSoundEnumCallback() findet. Die Callback-Funktion wird für jedes im System installierte Wiedergabegerät einzeln aufgerufen. Da die HD-Audio-Spezifikation es erlaubt, Ports wieder zu verwenden, variiert die Anzahl der Callbacks abhängig von der Systemkonfiguration.

Der zweite Parameter ist der anwenderdefinierte Kontext. Im Codebeispiel wird dieser Parameter benutzt, um zu bestimmen, in welche Listbox die Callback-Informationen eingetragen werden.

Falls Ihre Applikation oder Ihr Spiel Spracheingabe erfordert oder Audio-Inhalte aufzeichnet, funktioniert die Suche nach den Input-Geräten ähnlich wie die nach den Wiedergabegeräten.

if( FAILED( hr = DirectSoundCaptureEnumerate( (LPDSENUMCALLBACK)DSoundEnumCallback,(VOID*)this ) ) )
return DXTRACE_ERR_MSGBOX( TEXT("DirectSoundCaptureEnumerate"), hr );