/// <summary> /// Initializes a new instance of the SoundBlaster class. /// </summary> /// <param name="vm">Virtual machine instance associated with the device.</param> /// <param name="hwnd">Main application window handle.</param> /// <param name="irq">IRQ number for the Sound Blaster.</param> /// <param name="dma8">8-bit DMA channel for the Sound Blaster.</param> /// <param name="dma16">16-bit DMA channel for the Sound Blaster.</param> public SoundBlaster(VirtualMachine vm, int irq, int dma8, int dma16) { this.vm = vm ?? throw new ArgumentNullException(nameof(vm)); this.IRQ = irq; this.DMA = dma8; this.dma16 = dma16; this.mixer = new Mixer(this); this.dmaChannel = vm.DmaController.Channels[this.DMA]; this.dsp = new Dsp(vm, dma8, dma16); this.dsp.AutoInitBufferComplete += (o, e) => RaiseInterrupt(); this.playbackThread = new Thread(this.AudioPlayback) { IsBackground = true, Priority = ThreadPriority.AboveNormal }; this.playbackThread.Start(); }
public static extern ResultCode GpioCfgDmaChannels(DmaChannel primaryChannel, DmaChannel secondaryChannel);
public static extern ResultCode GpioCfgDmaChannel(DmaChannel dmaChannel);