/// <summary> /// Prepares a Wave input device for recording /// </summary> public WaveInEventPulse(PulseAudioConnectionParameters connection) { _connection = connection; _api = PulseAudioFactory.GetApi(); callbackEvent = new AutoResetEvent(false); syncContext = SynchronizationContext.Current; BufferMilliseconds = 100; WaveFormat = new WaveFormat(8000, 8, 1); _captureState = CaptureState.Stopped; }
public static IPulseAudioSimpleApi GetApi() { if (_simpleApi == null) { lock (CreateLock) { if (_simpleApi == null) { _simpleApi = NativeLibraryBuilder.Default.ActivateInterface <IPulseAudioSimpleApi>("libpulse-simple.so.0"); } } } return(_simpleApi); }
/// <summary> /// Opens a WaveOut device /// </summary> public WaveOutPulse(PulseAudioConnectionParameters connection) { _connection = connection; _api = PulseAudioFactory.GetApi(); syncContext = SynchronizationContext.Current; if (syncContext != null && ((syncContext.GetType().Name == "LegacyAspNetSynchronizationContext") || (syncContext.GetType().Name == "AspNetSynchronizationContext"))) { syncContext = null; } // set default values up DesiredLatency = 300; NumberOfBuffers = 2; waveOutLock = new object(); }