From 4bf798c5e75be2009a0175212fb3b078418cb9e4 Mon Sep 17 00:00:00 2001 From: chrispr Date: Tue, 20 Oct 2026 13:51:10 -0400 Subject: [PATCH] Minor changes I forgot to commit previously --- NightScout/Alerters/RaspberryPiAudio.cs | 10 ++++++++ NightScout/Alerters/RaspberryPiAudioAlert.cs | 5 ++++ NightScout/NightscoutAlerter.cs | 6 ++++- NightScout/Program.cs | 27 ++++++++++++++------ NightScout/SocketIONightscoutDataSource.cs | 6 ++++- 5 files changed, 44 insertions(+), 10 deletions(-) create mode 100644 NightScout/Alerters/RaspberryPiAudio.cs diff --git a/NightScout/Alerters/RaspberryPiAudio.cs b/NightScout/Alerters/RaspberryPiAudio.cs new file mode 100644 index 0000000..dcbd852 --- /dev/null +++ b/NightScout/Alerters/RaspberryPiAudio.cs @@ -0,0 +1,10 @@ +using System; +namespace NightScout.Alerters +{ + public class EmptyClass + { + public EmptyClass() + { + } + } +} diff --git a/NightScout/Alerters/RaspberryPiAudioAlert.cs b/NightScout/Alerters/RaspberryPiAudioAlert.cs index bffcb48..3694288 100644 --- a/NightScout/Alerters/RaspberryPiAudioAlert.cs +++ b/NightScout/Alerters/RaspberryPiAudioAlert.cs @@ -46,6 +46,11 @@ namespace NightScout this.ButtonSource.ButtonStateChange += ButtonSource_ButtonStateChange; } + public void SetALSAAudioDevice(Int32 index) + { + this.PlayerCommandLine = String.Format("\"mpg123 -o alsa:hw:{0},0 ", index) + "-q {0}\""; + } + private void ButtonSource_ButtonStateChange(bool obj) { Console.WriteLine("Button state change: {0}", obj); diff --git a/NightScout/NightscoutAlerter.cs b/NightScout/NightscoutAlerter.cs index cf08dd9..2a8bf17 100644 --- a/NightScout/NightscoutAlerter.cs +++ b/NightScout/NightscoutAlerter.cs @@ -21,7 +21,11 @@ namespace NightScout private void SetupEvents() { - DataSource.Connected += () => DataSource.Authorize(); + DataSource.Connected += () => + { + DataSource.Authorize(); + + } DataSource.Alarm += (alarm) => Alerter.StartAlert(); DataSource.UrgentAlarm += (alarm) => Alerter.StartUrgentAlert(); DataSource.ClearAlarm += (alarm) => Alerter.StopAlerts(); diff --git a/NightScout/Program.cs b/NightScout/Program.cs index 4d5ec08..20a86ca 100644 --- a/NightScout/Program.cs +++ b/NightScout/Program.cs @@ -16,7 +16,7 @@ namespace NightScoutAlert if (args.Any(arg => arg.Equals("--test-audio"))) { Console.WriteLine("Starting audio test..."); - RaspberryPiAudioAlert alerter = new RaspberryPiAudioAlert(); + RaspberryPiAudioAlert alerter = SetupAudioAlert(); alerter.StartAlert(); Thread.Sleep(3000); alerter.StopAlerts(); @@ -48,20 +48,15 @@ namespace NightScoutAlert {} NightscoutDataSource dataSource =null; - RaspberryPiAudioAlert audioAlerter = null; + RaspberryPiAudioAlert audioAlerter = SetupAudioAlert(buttonSource); if (buttonSource != null) - { dataSource = new NightscoutDataSource(configuration, log4net.LogManager.GetLogger("NightscoutAlert"), buttonSource); - audioAlerter = new RaspberryPiAudioAlert(buttonSource); - } else - { dataSource = new NightscoutDataSource(configuration, log4net.LogManager.GetLogger("NightscoutAlert")); - audioAlerter = new RaspberryPiAudioAlert(); - } + ILog log = log4net.LogManager.GetLogger("NightscoutAlertMain"); log.Debug("Log started"); ConsoleAlerter consoleAlerter = new ConsoleAlerter(); @@ -123,5 +118,21 @@ namespace NightScoutAlert Console.WriteLine("Started"); Console.ReadLine(); } + private static RaspberryPiAudioAlert SetupAudioAlert(RaspberryPIButtonSource buttonSource = null) + { + RaspberryPiAudioAlert alerter; + if (buttonSource != null) + alerter = new RaspberryPiAudioAlert(buttonSource); + else + alerter = new RaspberryPiAudioAlert(); + + String ALSADeviceNumber = ConfigurationManager.AppSettings["ALSADeviceNumber"]; + Int32 devNumber = 0; + if(!String.IsNullOrEmpty(ALSADeviceNumber) && Int32.TryParse(ALSADeviceNumber, out devNumber)) + { //Set device + alerter.SetALSAAudioDevice(devNumber); + } + return alerter; + } } } diff --git a/NightScout/SocketIONightscoutDataSource.cs b/NightScout/SocketIONightscoutDataSource.cs index e2c22fd..013bc20 100644 --- a/NightScout/SocketIONightscoutDataSource.cs +++ b/NightScout/SocketIONightscoutDataSource.cs @@ -61,7 +61,11 @@ namespace NightScout public virtual void Authorize() { - JObject authRequest = new JObject {{"client", "web"}}; + JObject authRequest; + if (!String.IsNullOrEmpty(NightscoutAlertConfiguration.APISecretKey)) + authRequest = new JObject { { "client", "web" }, { "secret", NightscoutAlertConfiguration.APISecretKey } }; + else + authRequest = new JObject { { "client", "web" } }; Socket.Emit("authorize", authRequest); }