www.codeworx.org/directx_tuts/ Einführung in DirectSound Teil 3

Einführung in DirectSound Teil 3
Datum: 31.8.00
Autor: Tim-Oliver Husser

DSoundInit ()
Die Funktion DSoundInit erstellt das DirectSound-Objekt und setzt den Cooperative Level, also die Rechte des Objektes. Dies geschieht eigentlich genauso wie bei DirectDraw:

bool DSoundInit (HWND hwnd)
{
   if(DirectSoundCreate (NULL, &lpDirectSound, NULL) != DS_OK)
   {
      return (false);
   }
   if(lpDirectSound->SetCooperativeLevel (hwnd, DSSCL_NORMAL) != DS_OK)
   {
      return (false);
   }

return (true); }

Es gibt eigentlich nur zwei Änderungen gegenüber DirectDraw: Die Konstanten heißen anders (eben DS anstatt DD) und man brauch solche Dinge wie Bildschirmauflösung nicht einstellen. Logisch, oder ? *g*
Hier taucht eine neue Variable auf (lpDirectSound). Diese müssen wir natürlich vorher korrekt deklarieren:

LPDIRECTSOUND lpDirectSound;
ReleaseDSound ()
Wie bei DirectDraw müssen auch bei DirectSound alle Objekte vor Programmende zerstört werden:
void ReleaseDSound ()
{
   if (dsbSound != NULL)
   {
      dsbSound->Release();
      dsbSound = NULL;
   }

   if (lpDirectSound != NULL)
   {
      lpDirectSound->Release();
      lpDirectSound = NULL;
   }
}

Ich greife hier schon einmal auf den nächsten Teil vor und führe die Variable dsbSound ein. Diese soll später den Sound beinhalten. Natürlich muß auch sie deklariert werden:

LPDIRECTSOUNDBUFFER dsbSound;