public AsioDeviceInfo(AsioEngine asioEngine, int minRate, int maxRate, int latency) { _Channels = asioEngine.Driver.OutputChannels.Length; _MinRate = minRate; _MaxRate = maxRate; _Latency = latency; }
public BASSPlayer() { _VizAGC = new DSP_VizAGC(); _ReplayGainDSP = new DSP_Gain(); _ASIOEngine = new AsioEngine(); _StreamWriteProcDelegate = new STREAMPROC(StreamWriteProc); _VizRawStreamWriteProcDelegate = new STREAMPROC(VizRawStreamWriteProc); _DSOutputStreamWriteProcDelegate = new STREAMPROC(DSOutputStreamWriteProc); _MetaTagSyncProcDelegate = new SYNCPROC(StreamMetaTagSyncProc); _WasapiProcDelegate = new WASAPIPROC(WasApiProc); // Make sure threads are stopped in case Dispose does not get called. Application.ApplicationExit += new EventHandler(Application_ApplicationExit); _WakeupMainThread = new AutoResetEvent(false); _WakeupMonitorThread = new AutoResetEvent(false); _WakeupBufferUpdateThread = new AutoResetEvent(false); _BufferUpdated = new ManualResetEvent(false); _MainThread = new Thread(new ThreadStart(ThreadMain)); _MonitorThread = new Thread(new ThreadStart(ThreadMonitor)); _BufferUpdateThread = new Thread(new ThreadStart(ThreadBufferUpdate)); _MainThread.Name = "PureAudio.Main"; _MainThread.Start(); _BufferUpdateThread.Name = "PureAudio.BufferUpdate"; _BufferUpdateThread.IsBackground = true; _BufferUpdateThread.Start(); _MonitorThread.Name = "PureAudio.Monitor"; _MonitorThread.IsBackground = true; _MonitorThread.Start(); }