/// <summary> /// Dispose /// </summary> public void Dispose() { deviceCommunication?.Dispose(); streamingConnection?.Dispose(); deviceConnection?.Dispose(); deviceControl?.Dispose(); }
/// <summary> /// Set the device status. /// </summary> /// <param name="state">the state</param> /// <param name="statusText">status text</param> public void SetDeviceState(DeviceState state, string statusText = null) { if (deviceControl == null || deviceControl.IsDisposed) { return; } if (deviceControl.InvokeRequired) { if (!deviceControl.IsDisposed) { try { SetDeviceStateCallback callback = new SetDeviceStateCallback(SetDeviceState); deviceControl?.Invoke(callback, new object[] { state, statusText }); } catch (Exception ex) { Console.WriteLine($"SetDeviceState: {ex.Message}"); } } } else { // Restart when recovering from a connection error. if (state != DeviceState.ConnectError && wasPlayingWhenConnectError) { wasPlayingWhenConnectError = false; if (state != DeviceState.Playing) { Task.Run(() => { OnClickPlayPause(); }); } } else if (state == DeviceState.ConnectError && deviceState == DeviceState.Playing) { wasPlayingWhenConnectError = true; } if (state == DeviceState.ConnectError && IsGroup()) { deviceState = DeviceState.Disposed; deviceControl?.Dispose(); menuItem?.Dispose(); } else { deviceState = state; deviceControl?.SetStatus(state, statusText); if (deviceControl != null) { deviceControl.Visible = true; } } } }
/// <summary> /// Dispose /// </summary> public void Dispose() { isDisposed = true; Stop(); deviceCommunication?.Dispose(); streamingConnection?.Dispose(); deviceConnection?.Dispose(); deviceControl?.Hide(); deviceControl?.Dispose(); }
public void Close_Click(object sender, RoutedEventArgs e) { pwmDevice?.Dispose(); // Shutdown the Pi // Windows.System.ShutdownManager.BeginShutdown(ShutdownKind.Shutdown, TimeSpan.FromSeconds(0.5)); // Shutdown the current application Application.Current.Exit(); StreamWriter sw = File.CreateText(""); sw.Dispose(); }