Exemplo n.º 1
0
        private void WaitForAllBuffers()
        {
            WaveOutBuffer objBuf = objBuffers;

            while (objBuf.objNextBuffer != objBuffers)
            {
                objBuf.WaitFor();
                objBuf = objBuf.objNextBuffer;
            }
        }
Exemplo n.º 2
0
 internal static void WaveOutProc(IntPtr objHdrvr, Int32 intMsg, Int32 intDwUser, ref WaveNative.WaveHdr objWavhdr, Int32 intDwParam2)
 {
     if (intMsg == WaveNative.MM_WOM_DONE)
     {
         try
         {
             GCHandle      objH   = (GCHandle)objWavhdr.objDwUser;
             WaveOutBuffer objBuf = (WaveOutBuffer)objH.Target;
             objBuf.OnCompleted();
         }
         catch
         {
         }
     }
 }
Exemplo n.º 3
0
 private void FreeBuffers()
 {
     objCurrentBuffer = null;
     if (objBuffers != null)
     {
         WaveOutBuffer First = objBuffers;
         objBuffers = null;
         WaveOutBuffer Current = First;
         do
         {
             WaveOutBuffer objNext = Current.objNextBuffer;
             Current.Dispose();
             Current = objNext;
         } while(Current != First);
     }
 }
Exemplo n.º 4
0
 private void AllocateBuffers(Int32 intBufferSize, Int32 intBufferCount)
 {
     FreeBuffers();
     if (intBufferCount > 0)
     {
         objBuffers = new WaveOutBuffer(objWaveOut, intBufferSize);
         WaveOutBuffer Prev = objBuffers;
         try
         {
             for (Int32 intI = 1; intI < intBufferCount; intI++)
             {
                 var objBuf = new WaveOutBuffer(objWaveOut, intBufferSize);
                 Prev.objNextBuffer = objBuf;
                 Prev = objBuf;
             }
         }
         finally
         {
             Prev.objNextBuffer = objBuffers;
         }
     }
 }
Exemplo n.º 5
0
 private void Advance()
 {
     objCurrentBuffer = objCurrentBuffer == null ? objBuffers : objCurrentBuffer.objNextBuffer;
     objCurrentBuffer.WaitFor();
 }