private void UpdatePlaybackButtons(AudioDeviceState state) { if (this.InvokeRequired) { UpdateButtonsCallback d = new UpdateButtonsCallback(UpdatePlaybackButtons); this.Invoke(d, new object[] { state }); } else { mPauseButton.Text = "Pause"; switch (state) { case AudioDeviceState.Stopped: mPlayButton.Enabled = true; mPauseButton.Enabled = false; mStopButton.Enabled = false; mCurrentPos = TimeSpan.Zero; SetTimeLabel(); break; case AudioDeviceState.PausedPlay: mPauseButton.Text = "Resume"; goto case AudioDeviceState.Playing; case AudioDeviceState.Playing: mPlayButton.Enabled = false; mPauseButton.Enabled = true; mStopButton.Enabled = true; break; default: goto case AudioDeviceState.Stopped; } } }
public AudioDeviceCollection GetAudioDevices(AudioDeviceKind kind, AudioDeviceState state) { IMMDeviceCollection result; Marshal.ThrowExceptionForHR(_underlyingEnumerator.EnumAudioEndpoints(kind, state, out result)); return(new AudioDeviceCollection(result)); }
/// <summary> /// Fires the <see cref="StateChanged"/> event /// </summary> /// <param name="prevState">The <see cref="AudioDeviceState"/> prior to the change</param> protected void FireStateChanged(AudioDeviceState prevState) { EventHandler <StateChangedEventArgs> d = StateChanged; if (d != null) { d(this, new StateChangedEventArgs(prevState)); } }
public AudioDeviceCollection GetAudioDevices(AudioDeviceKind kind, AudioDeviceState state) { IMMDeviceCollection underlyingCollection; int hr = _deviceEnumerator.EnumAudioEndpoints(kind, state, out underlyingCollection); if (hr == HResult.OK) return new AudioDeviceCollection(underlyingCollection); throw Marshal.GetExceptionForHR(hr); }
/// <summary> /// Sets the <see cref="AudioDeviceState"/> of <c>this</c>, /// firing the <see cref="IAudioDevice.StateChanged"/> event if nessesary /// </summary> /// <param name="newState">The new <see cref="AudioDeviceState"/></param> protected void setState(AudioDeviceState newState) { AudioDeviceState prevState = mState; mState = newState; if (newState != prevState) { FireStateChanged(prevState); } }
void IMMNotificationClient.OnDeviceStateChanged(string deviceId, AudioDeviceState newState) { var handler = DeviceStateChanged; if (handler != null) { AudioDevice device = GetDevice(deviceId); handler(this, new AudioDeviceStateEventArgs(device, newState)); } }
public AudioDeviceCollection GetAudioDevices(AudioDeviceKind kind, AudioDeviceState state) { int hr = _deviceEnumerator.EnumAudioEndpoints(kind, state, out IMMDeviceCollection underlyingCollection); if (hr == HResult.OK) { return(new AudioDeviceCollection(underlyingCollection)); } throw Marshal.GetExceptionForHR(hr); }
/// <summary> /// Stop the audio session. /// </summary> /// <returns>A <see cref="ResultCode"/> reporting an error or a success</returns> public ResultCode Stop() { if (_state == AudioDeviceState.Started) { _hardwareDeviceSession.Stop(); UpdateReleaseBuffers(true); _state = AudioDeviceState.Stopped; } return(ResultCode.Success); }
void IMMNotificationClient.OnDeviceStateChanged(string deviceId, AudioDeviceState newState) { InvokeOnSynchronizationContext(() => { var handler = DeviceStateChanged; if (handler != null) { AudioDevice device = GetDevice(deviceId); if (device == null) { return; // Device was already removed by the time we got here } handler(this, new AudioDeviceStateEventArgs(device, newState)); } }); }
/// <summary> /// Create a new <see cref="AudioDeviceSession"/>. /// </summary> /// <param name="deviceSession">The device driver session associated</param> /// <param name="bufferEvent">The release buffer event</param> /// <param name="bufferRegisteredLimit">The max number of buffers that can be registered to the device driver at a time</param> public AudioDeviceSession(IHardwareDeviceSession deviceSession, IWritableEvent bufferEvent, uint bufferRegisteredLimit = 4) { _bufferEvent = bufferEvent; _hardwareDeviceSession = deviceSession; _bufferRegisteredLimit = bufferRegisteredLimit; _buffers = new AudioBuffer[Constants.AudioDeviceBufferCountMax]; _serverBufferIndex = 0; _hardwareBufferIndex = 0; _releasedBufferIndex = 0; _bufferAppendedCount = 0; _bufferRegisteredCount = 0; _bufferReleasedCount = 0; _volume = 1.0f; _state = AudioDeviceState.Stopped; }
/// <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); }
private static AudioDeviceCollection GetDevices(AudioDeviceManager manager, AudioDeviceKind kind) { AudioDeviceState state = AudioDeviceState.Active; if (Settings.Default.ShowDisabledDevices) { state |= AudioDeviceState.Disabled; } if (Settings.Default.ShowUnpluggedDevices) { state |= AudioDeviceState.Unplugged; } if (Settings.Default.ShowNotPresentDevices) { state |= AudioDeviceState.NotPresent; } return(manager.GetAudioDevices(kind, state)); }
private void UpdateInputFilesButtons(AudioDeviceState state) { if (this.InvokeRequired) { UpdateInputFilesButtonsDelegate d = new UpdateInputFilesButtonsDelegate(UpdateInputFilesButtons); this.Invoke(d, new object[] { state }); } else { if (state == AudioDeviceState.Stopped) { mAddInputFileButton.Enabled = true; mRemoveInputFileButton.Enabled = (mInputFilesListView.SelectedIndices.Count > 0); mClearInputFilesButton.Enabled = (mInputFilesListView.Items.Count > 0); } else { mAddInputFileButton.Enabled = false; mRemoveInputFileButton.Enabled = false; mClearInputFilesButton.Enabled = false; } } }
public void OnDeviceStateChanged([MarshalAs(UnmanagedType.LPWStr)] string deviceId, [MarshalAs(UnmanagedType.I4)] AudioDeviceState newState) { _deviceStateCallBack?.Invoke(deviceId, newState); }
/// <summary> /// Constructor setting the previous <see cref="AudioDeviceState"/> /// </summary> /// <param name="prevState">The previous state</param> public StateChangedEventArgs(AudioDeviceState prevState) : base() { PreviousState = prevState; }
public void OnDeviceStateChanged(string deviceId, AudioDeviceState state) { }
public AudioDeviceStateEventArgs(AudioDevice device, AudioDeviceState newState) : base(device) { _newState = newState; }
internal AudioDevice(string id, AudioDeviceState state, IDictionary <string, object> properties) { Id = id; State = state; Properties = properties; }
private static void AddCommand(AudioDeviceManager manager, ContextMenuStrip strip, AudioDeviceCollection devices, AudioDeviceState state) { foreach (AudioDevice device in devices.Where(d => d.State == state)) { ToolStripDropDown dropDown = strip.AddNestedCommand(new AudioDeviceCommand(manager, device)); if (device.State == AudioDeviceState.Active) { dropDown.AddCommand(new SetAsDefaultMultimediaDeviceCommand(manager, device)); dropDown.AddCommand(new SetAsDefaultCommunicationDeviceCommand(manager, device)); } } }
public AudioDeviceStateEventArgs(AudioDevice device, AudioDeviceState newState) : base(device) { _newState = newState; }
internal AudioDevice(string id, AudioDeviceState state, IDictionary<string, object> properties) { Id = id; State = state; Properties = properties; }
public void OnDeviceRemoved(string deviceId, AudioDeviceState state) { }
void IMMNotificationClient.OnDeviceStateChanged(string deviceId, AudioDeviceState newState) { InvokeOnSynchronizationContext(() => { var handler = DeviceStateChanged; if (handler != null) { AudioDevice device = GetDevice(deviceId); if (device == null) return; // Device was already removed by the time we got here handler(this, new AudioDeviceStateEventArgs(device, newState)); } }); }
public void OnDeviceStateChanged([MarshalAs(UnmanagedType.LPWStr)] string deviceId, [MarshalAs(UnmanagedType.I4)] AudioDeviceState newState) { //Plug and Unplug }
internal AudioDeviceStateChangedEventArgs(AudioDevice device, AudioDeviceState changedState) { Device = device; State = changedState; }
public void OnDeviceAdded(string deviceId, AudioDeviceState state) { }
internal static extern AudioManagerError GetDeviceState(int deviceId, out AudioDeviceState state);
public DeviceStateChangedEventArgs(string deviceId, AudioDeviceState audioDeviceState) : this() { DeviceId = deviceId; State = audioDeviceState; }