/* * =============== Actions =============== */ 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); }
private void OnWomClose() { bPaused = false; bPlaying = false; WinmmHook.PostMessage(parentHandle, WinmmHook.WM_USER + 1, (int)PlaybackStatus.Stopped, 0); if (bTerminating) { MsgQueue.Add(PlayerMsg.TERMINATING); } }
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); } }
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); }
/* * =============== Event Handlers =============== */ 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); }