public HardwareDeviceImpl(IHardwareDeviceDriver deviceDriver, uint channelCount, uint sampleRate, float volume) { _session = deviceDriver.OpenDeviceSession(IHardwareDeviceDriver.Direction.Output, null, SampleFormat.PcmInt16, sampleRate, channelCount, volume); _channelCount = channelCount; _sampleRate = sampleRate; _currentBufferTag = 0; _buffer = new byte[Constants.TargetSampleCount * channelCount * sizeof(ushort)]; _session.Start(); }
/// <summary> /// Start the audio session. /// </summary> /// <returns>A <see cref="ResultCode"/> reporting an error or a success</returns> public ResultCode Start() { if (_state == AudioDeviceState.Started) { return(ResultCode.OperationFailed); } _hardwareDeviceSession.Start(); _state = AudioDeviceState.Started; FlushToHardware(); _hardwareDeviceSession.SetVolume(_volume); return(ResultCode.Success); }