/// <summary> /// waveOutProc /// </summary> /// <param name="hWaveOut"></param> /// <param name="msg"></param> /// <param name="dwInstance"></param> /// <param name="wParam"></param> /// <param name="lParam"></param> private void waveOutProc(IntPtr hWaveOut, Win32.WOM_Messages msg, IntPtr dwInstance, Win32.WAVEHDR *pWaveHeader, IntPtr lParam) { try { switch (msg) { //Open case Win32.WOM_Messages.OPEN: break; //Done case Win32.WOM_Messages.DONE: //Vermerken das Daten ankommen IsStarted = true; AutoResetEventDataPlayed.Set(); break; //Close case Win32.WOM_Messages.CLOSE: IsStarted = false; IsWaveOutOpened = false; IsPaused = false; IsClosed = true; AutoResetEventDataPlayed.Set(); this.hWaveOut = IntPtr.Zero; break; } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(String.Format("Player.cs | waveOutProc() | {0}", ex.Message)); AutoResetEventDataPlayed.Set(); } }
/// <summary> /// waveOutProc /// </summary> /// <param name="hWaveOut"></param> /// <param name="msg"></param> /// <param name="dwInstance"></param> /// <param name="wParam"></param> /// <param name="lParam"></param> private void waveOutProc(IntPtr hWaveOut, Win32.WOM_Messages msg, IntPtr dwInstance, Win32.WAVEHDR *pWaveHeader, IntPtr lParam) { switch (msg) { case Win32.WOM_Messages.OPEN: break; case Win32.WOM_Messages.DONE: break; case Win32.WOM_Messages.CLOSE: this.hWaveOut = IntPtr.Zero; break; } }
/// <summary> /// waveOutProc /// </summary> /// <param name="hWaveOut"></param> /// <param name="msg"></param> /// <param name="dwInstance"></param> /// <param name="wParam"></param> /// <param name="lParam"></param> private void waveOutProc(IntPtr hWaveOut, Win32.WOM_Messages msg, IntPtr dwInstance, ref Win32.WAVEHDR waveHeader, IntPtr lParam) { try { switch (msg) { //Open case Win32.WOM_Messages.OPEN: break; //Done case Win32.WOM_Messages.DONE: //Vermerken das Daten ankommen IsStarted = true; //Speicher freigeben var hBuffer = GCWaveOutHandleBuffers[(int)waveHeader.dwUser]; if (hBuffer.IsAllocated) { //Wenn wirklich belegt if ((waveHeader.dwFlags & Win32.WaveHdrFlags.WHDR_DONE) > 0 && ((waveHeader.dwFlags & Win32.WaveHdrFlags.WHDR_PREPARED) > 0)) { hBuffer.Free(); } } AutoResetEventDataPlayed.Set(); break; //Close case Win32.WOM_Messages.CLOSE: IsStarted = false; IsWaveOutOpened = false; IsPaused = false; IsClosed = true; AutoResetEventDataPlayed.Set(); FreeWaveOutHeaders(); this.hWaveOut = IntPtr.Zero; break; } } catch (Exception ex) { Debug.WriteLine(String.Format("Player.cs | waveOutProc() | {0}", ex.Message)); AutoResetEventDataPlayed.Set(); } }
/// <summary> /// waveOutProc /// </summary> /// <param name="hWaveOut"></param> /// <param name="msg"></param> /// <param name="dwInstance"></param> /// <param name="wParam"></param> /// <param name="lParam"></param> private void waveOutProc(IntPtr hWaveOut, Win32.WOM_Messages msg, IntPtr dwInstance, Win32.WAVEHDR *pWaveHeader, IntPtr lParam) { switch (msg) { //Open case Win32.WOM_Messages.OPEN: break; //Close case Win32.WOM_Messages.CLOSE: IsWaveOutOpened = false; AutoResetEventDataRecorded.Set(); this.hWaveOut = IntPtr.Zero; break; } }