Ejemplo n.º 1
0
        /// <summary>
        /// Method to initiate Winmm
        /// </summary>
        private void OnWimOpen()
        {
            WinmmHook.waveInAddBuffer(hWaveIn, ref waveHdr1, Marshal.SizeOf(waveHdr1));
            WinmmHook.waveInAddBuffer(hWaveIn, ref waveHdr2, Marshal.SizeOf(waveHdr2));

            bRecording = true;
            bEnding    = false;
            WinmmHook.PostMessage(parentHandle, WinmmHook.WM_USER + 1, (int)PlaybackStatus.Recording, 0);
            WinmmHook.waveInStart(hWaveIn);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Handle event for closing file
        /// </summary>
        private void OnWomClose()
        {
            bPaused  = false;
            bPlaying = false;
            WinmmHook.PostMessage(parentHandle, WinmmHook.WM_USER + 1, (int)PlaybackStatus.Stopped, 0);

            if (bTerminating)
            {
                MsgQueue.Add(PlayerMsg.TERMINATING);
            }
        }
Ejemplo n.º 3
0
 private void OnPlaybackPause()
 {
     if (!bPaused)
     {
         WinmmHook.waveOutPause(hWaveOut);
         bPaused = true;
         WinmmHook.PostMessage(parentHandle, WinmmHook.WM_USER + 1, (int)PlaybackStatus.Paused, 0);
     }
     else
     {
         WinmmHook.waveOutRestart(hWaveOut);
         bPaused = false;
         WinmmHook.PostMessage(parentHandle, WinmmHook.WM_USER + 1, (int)PlaybackStatus.Playing, 0);
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Method to terminate winmm
        /// </summary>
        private void OnWimClose()
        {
            WinmmHook.waveInUnprepareHeader(hWaveIn, ref waveHdr1, Marshal.SizeOf(waveHdr1));
            WinmmHook.waveInUnprepareHeader(hWaveIn, ref waveHdr2, Marshal.SizeOf(waveHdr2));

            if (h_pBuffer1.IsAllocated)
            {
                h_pBuffer1.Free();
            }
            if (h_pBuffer2.IsAllocated)
            {
                h_pBuffer2.Free();
            }

            bRecording = false;
            WinmmHook.PostMessage(parentHandle, WinmmHook.WM_USER + 1, (int)PlaybackStatus.Stopped, 0);
            MsgQueue.Add(RecorderMsg.TERMINATING);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Handles Open event of file
        /// </summary>
        private void OnWomOpen()
        {
            if (h_pbuffer.IsAllocated)
            {
                h_pbuffer.Free();
            }
            h_pbuffer = GCHandle.Alloc(pbuffer, GCHandleType.Pinned);  //handle (pointer) to the buffer

            pWaveHdr1.dwUser         = (IntPtr)GCHandle.Alloc(this);   //pointer to this
            pWaveHdr1.dwBufferLength = pbuffer.Length;                 //size of the buffer in bytes
            pWaveHdr1.lpData         = h_pbuffer.AddrOfPinnedObject(); //IntPtr to buffer
            pWaveHdr1.dwFlags        = 0;

            WinmmHook.waveOutPrepareHeader(hWaveOut, ref pWaveHdr1, Marshal.SizeOf(pWaveHdr1));
            WinmmHook.waveOutWrite(hWaveOut, ref pWaveHdr1, Marshal.SizeOf(pWaveHdr1));

            bPlaying = true;
            WinmmHook.PostMessage(parentHandle, WinmmHook.WM_USER + 1, (int)PlaybackStatus.Playing, 0);
        }