コード例 #1
0
 public AsioDeviceInfo(AsioEngine asioEngine, int minRate, int maxRate, int latency)
 {
     _Channels = asioEngine.Driver.OutputChannels.Length;
     _MinRate = minRate;
     _MaxRate = maxRate;
     _Latency = latency;
 }
コード例 #2
0
        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();
        }