private void ResetEngine(uint counter, string str) { if (startTimer.IsEnabled) startTimer.Stop(); if (audioEngine != null) audioEngine.Finish(); audioEngine = null; client.AddMessage(HeartBeatType.DEVICE_ERROR, buffering, networkError, 0, 0, 0, 0, 0, 0, 0, 0, 0); EmptyTexts(str); startCounter = counter; startTimer.Start(); GC.Collect(); }
private async void Tick(object sender, object e) { try { if (startCounter == 10) { startCounter--; startTimer.Stop(); if (beat == 0) { reboot = await ReadStatus(); if (reboot) await WriteStatus(false); await client.LoadQueueAsync(); } AudioDeviceStatus(); startTimer.Start(); text2.Text = startCounter.ToString(); } else if (startCounter == 0) { if (reboot) { startTimer.Stop(); await client.SaveQueueAsync(); reboot = false; LibRPi.HelperClass hc = new LibRPi.HelperClass(); hc.Restart(); } else { text1.Text = "STARTED"; errorText.Text = ""; startTimer.Stop(); audioEngine = new WASAPIEngine(); var channels = new AudioChannel[2] { new AudioChannel(0, 0, ""), new AudioChannel(0, 1, "") }; var devParam = new AudioDevices(channels, 1); var param = new AudioParameters(50000, 200, 50, 250, -50, true, true, "sample.txt", 1000, 212); await audioEngine.InitializeAsync(ThreadDelegate, devParam, param); } } else { text2.Text = startCounter.ToString(); startCounter--; } } catch (Exception ex) { Error("Tick: " + ex.ToString() + " " + ex.Message + " " + ex.HResult); } }