private void RequestDataFromAll() { WaveInBuffer loCurrentBuffer = m_Buffer.NextBuffer; do { WaveInBuffer loNextBuffer = loCurrentBuffer.NextBuffer; loCurrentBuffer.RequestData(); loCurrentBuffer = loNextBuffer; } while (loCurrentBuffer != m_Buffer); m_Buffer.RequestData(); }
private bool m_Recording; // Wird noch auf Daten gewartet? #endregion #region Win32-CallBack-Funktion internal static void WaveInProc(IntPtr hdrvr, int uMsg, int dwUser, ref Win32.WAVEHDR wavhdr, int dwParam2) { if (uMsg == (int)Win32.Enum_MM_MessageInput.MM_WIM_DATA) { try { WaveInBuffer loBuffer = (WaveInBuffer)(((GCHandle)wavhdr.ClientInfo).Target); // Buffer-Instanz ermitteln loBuffer.OnDataReceived(); // An Buffer: Daten erhalten } catch { } } }
private void ClearBuffer() { if (m_Buffer != null) { WaveInBuffer loCurrentBuffer = m_Buffer.NextBuffer; do { WaveInBuffer loNextBuffer = loCurrentBuffer.NextBuffer; loCurrentBuffer.Dispose(); loCurrentBuffer = loNextBuffer; } while (loCurrentBuffer != m_Buffer); m_Buffer.Dispose(); m_Buffer = null; } }
private void WaitTilAllDone() { if (m_Buffer.Recording) { m_Buffer.WaitForData(); } WaveInBuffer loCurrentBuffer = m_Buffer.NextBuffer; do { WaveInBuffer loNextBuffer = loCurrentBuffer.NextBuffer; if (loCurrentBuffer.Recording) { loCurrentBuffer.WaitForData(); } loCurrentBuffer = loNextBuffer; } while (loCurrentBuffer != m_Buffer); }
private void CreateBuffer(int liBufferSize) { ClearBuffer(); m_Buffer = new WaveInBuffer(m_DeviceHandle, liBufferSize); WaveInBuffer loPreviousBuffer = m_Buffer; try { for (int i = 1; i < 3; i++) { WaveInBuffer loLocalBuffer = new WaveInBuffer(m_DeviceHandle, liBufferSize); loPreviousBuffer.NextBuffer = loLocalBuffer; loPreviousBuffer = loLocalBuffer; } } finally { loPreviousBuffer.NextBuffer = m_Buffer; } m_CurrentBuffer = m_Buffer; }
private void SwitchBuffer() { m_CurrentBuffer = m_CurrentBuffer.NextBuffer; }