Exemple #1
0
        public void StartPlayback()
        {
            playing = true;
            EnqueueBuffers();

            Console.WriteLine("Playback started " + WinMM.waveOutGetNumDevs());
            //generatorThread = new Thread(signalGenerator.GenerateSignal);
            //generatorThread.IsBackground = true;
            //generatorThread.Start();
        }
Exemple #2
0
 public void StartRecording()
 {
     WinMM.waveInOpen(out waveInHandle, DeviceNumber, WaveFormat, callback, IntPtr.Zero, WinMM.CallbackFunction);
     CreateBuffers();
     EnqueueBuffers();
     WinMM.waveInStart(waveInHandle);
     recording = true;
     //generatorThread = new Thread(signalGenerator.GenerateSignal);
     //generatorThread.IsBackground = true;
     //generatorThread.Start();
 }
Exemple #3
0
 public WaveOut(WaveIn WaveIn)
 {
     waveIn = WaveIn;
     waveIn.DataAvailable += new EventHandler <WaveInEventArgs>(DataAvailable);
     DeviceNumber          = 0;
     WaveFormat            = waveIn.WaveFormat;
     NumberOfBuffers       = waveIn.NumberOfBuffers;
     callback              = new WinMM.WaveCallback(CallBack);
     WinMM.waveOutOpen(out waveOutHandle, DeviceNumber, WaveFormat, callback, IntPtr.Zero, WinMM.CallbackFunction);
     CreateBuffers();
 }
 public WaveOutBuffer(IntPtr WaveOutHandle, int BufferSize)
 {
     waveOutHandle       = WaveOutHandle;
     bufferSize          = BufferSize;
     buffer              = new byte[bufferSize];
     hBuffer             = GCHandle.Alloc(buffer, GCHandleType.Pinned);
     header              = new WaveHeader();
     hHeader             = GCHandle.Alloc(header, GCHandleType.Pinned);
     header.dataBuffer   = hBuffer.AddrOfPinnedObject();
     header.bufferLength = bufferSize;
     header.loops        = 1;
     hThis           = GCHandle.Alloc(this);
     header.userData = (IntPtr)hThis;
     WinMM.waveOutPrepareHeader(waveOutHandle, header, Marshal.SizeOf(header));
 }
        public void Use()
        {
            //WinMM.waveInUnprepareHeader(waveInHandle, header, Marshal.SizeOf(header));

            WinMM.waveInAddBuffer(waveInHandle, header, Marshal.SizeOf(header));
        }