From 14d54836ec22a81177bdf8f61f0dd3e4ac1e91e6 Mon Sep 17 00:00:00 2001 From: firealarmss Date: Mon, 18 Nov 2024 18:00:24 -0600 Subject: [PATCH] Add support to handle emergency; add support to send p25 pages --- WhackerLinkConsoleV2/ChannelBox.xaml.cs | 21 ++++ WhackerLinkConsoleV2/DigitalPageWindow.xaml | 17 +++ .../DigitalPageWindow.xaml.cs | 46 +++++++ .../FlashingBackgroundManager.cs | 118 ++++++++++++++++++ WhackerLinkConsoleV2/MainWindow.xaml | 4 + WhackerLinkConsoleV2/MainWindow.xaml.cs | 56 ++++++++- .../WaveFilePlaybackManager.cs | 98 +++++++++++++++ 7 files changed, 359 insertions(+), 1 deletion(-) create mode 100644 WhackerLinkConsoleV2/DigitalPageWindow.xaml create mode 100644 WhackerLinkConsoleV2/DigitalPageWindow.xaml.cs create mode 100644 WhackerLinkConsoleV2/FlashingBackgroundManager.cs create mode 100644 WhackerLinkConsoleV2/WaveFilePlaybackManager.cs diff --git a/WhackerLinkConsoleV2/ChannelBox.xaml.cs b/WhackerLinkConsoleV2/ChannelBox.xaml.cs index 9a875f5..6c1d6b7 100644 --- a/WhackerLinkConsoleV2/ChannelBox.xaml.cs +++ b/WhackerLinkConsoleV2/ChannelBox.xaml.cs @@ -30,8 +30,11 @@ namespace WhackerLinkConsoleV2.Controls { private readonly SelectedChannelsManager _selectedChannelsManager; private bool _pttState; + private bool _emergency; private string _lastSrcId = "0"; + public FlashingBackgroundManager _flashingBackgroundManager; + public event EventHandler PTTButtonClicked; public event PropertyChangedEventHandler PropertyChanged; @@ -61,6 +64,23 @@ namespace WhackerLinkConsoleV2.Controls } } + public bool Emergency + { + get => _emergency; + set + { + _emergency = value; + + Dispatcher.Invoke(() => + { + if (value) + _flashingBackgroundManager.Start(); + else + _flashingBackgroundManager.Stop(); + }); + } + } + public string VoiceChannel { get; set; } public bool IsEditMode { get; set; } @@ -81,6 +101,7 @@ namespace WhackerLinkConsoleV2.Controls InitializeComponent(); DataContext = this; _selectedChannelsManager = selectedChannelsManager; + _flashingBackgroundManager = new FlashingBackgroundManager(this); ChannelName = channelName; SystemName = $"System: {systemName}"; LastSrcId = $"Last SRC: {LastSrcId}"; diff --git a/WhackerLinkConsoleV2/DigitalPageWindow.xaml b/WhackerLinkConsoleV2/DigitalPageWindow.xaml new file mode 100644 index 0000000..539438d --- /dev/null +++ b/WhackerLinkConsoleV2/DigitalPageWindow.xaml @@ -0,0 +1,17 @@ + + +