# NewGamePhysics.Utilities.WaveOutPlayer Class Reference

Plays audio via the waveOut device. More...

List of all members.

## Public Member Functions
| WaveOutPlayer (WaveFormat format, BufferFillCallback bufferFillCallback)
| Plays audio via waveOut device.
void | Dispose ()
| Dispose of waveOut player.

## Detailed Description

Plays audio via the waveOut device.

Definition at line 464 of file NativeAudio.cs.

## Constructor & Destructor Documentation

NewGamePhysics.Utilities.WaveOutPlayer.WaveOutPlayer | ( | WaveFormat | format,
|  | BufferFillCallback | bufferFillCallback |
| ) |  |  |

Plays audio via waveOut device.

Parameters:

  | format | Playback format to use.
  | bufferFillCallback | The callback delegate which provides sample data.

Definition at line 522 of file NativeAudio.cs.

    00525         {
    00526             // Determine quiet sample value
    00527                         this.zeroSampleValue = format.bitsPerSample == 8 ? (byte)128 : (byte)0;
    00528
    00529             // Remember callback
    00530             this.bufferFillCallback = bufferFillCallback;
    00531
    00532             // Open wave out device.
    00533             int result = NativeAudioInterface.waveOutOpen(
    00534                 out waveOutHandle,
    00535                 -1,
    00536                 format,
    00537                 waveOutProc,
    00538                 0,
    00539                 NativeAudioInterface.CALLBACK_FUNCTION);
    00540             if (result != NativeAudioInterface.MMSYSERR_NOERROR)
    00541             {
    00542                 throw new ApplicationException("Could not open wave out device. Error: " + result);
    00543             }
    00544
    00545             // Allocate sample buffers.
    00546             AllocateBuffers();
    00547
    00548             // Start thread which provides sample data.
    00549             fillBufferThread = new Thread(new ThreadStart(WaveOutPlayerThread));
    00550             fillBufferThread.Start();
    00551         }

## Member Function Documentation

void NewGamePhysics.Utilities.WaveOutPlayer.Dispose | ( |  | ) |

Dispose of waveOut player.

Definition at line 564 of file NativeAudio.cs.

    00565         {
    00566             if (fillBufferThread != null)
    00567             {
    00568                 try
    00569                 {
    00570                     finished = true;
    00571                     if (waveOutHandle != IntPtr.Zero)
    00572                     {
    00573                         NativeAudioInterface.waveOutReset(waveOutHandle);
    00574                     }
    00575
    00576                     fillBufferThread.Join();
    00577                     bufferFillCallback = null;
    00578                     FreeBuffers();
    00579                     if (waveOutHandle != IntPtr.Zero)
    00580                     {
    00581                         NativeAudioInterface.waveOutClose(waveOutHandle);
    00582                     }
    00583                 }
    00584                 finally
    00585                 {
    00586                     fillBufferThread = null;
    00587                     waveOutHandle = IntPtr.Zero;
    00588                 }
    00589             }
    00590
    00591             GC.SuppressFinalize(this);
    00592         }

The documentation for this class was generated from the following file:

- C:/Users/Andreas Schiffler/Desktop/SVN/NewGamePhysics/NewGamePhysics/Utilities/NativeAudio.cs