Exemplo n.º 1
0
        private void RequestDataFromAll()
        {
            WaveInBuffer loCurrentBuffer = m_Buffer.NextBuffer;

            do
            {
                WaveInBuffer loNextBuffer = loCurrentBuffer.NextBuffer;
                loCurrentBuffer.RequestData();
                loCurrentBuffer = loNextBuffer;
            } while (loCurrentBuffer != m_Buffer);
            m_Buffer.RequestData();
        }
Exemplo n.º 2
0
        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
                {
                }
            }
        }
Exemplo n.º 3
0
        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;
            }
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
 private void SwitchBuffer()
 {
     m_CurrentBuffer = m_CurrentBuffer.NextBuffer;
 }