From 3fc4eeb497ff25eba35e8ea99b8baa80393c4e2f Mon Sep 17 00:00:00 2001 From: jasonchenwork Date: Wed, 16 Jul 2025 18:25:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AA=BF=E6=95=B4=20=E5=8F=B3=E4=B8=8ALabels?= =?UTF-8?q?=20=E8=88=87=20=E5=B7=A6=E4=B8=8ALabels=2020250716?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CommandHandler.cs | 169 ++-- DBObj/SongData.cs | 4 +- DBObj/SongList.cs | 4 +- Env.cs | 7 + HttpServer.cs | 54 +- OverlayFormObj/OverlayForm.Labels.cs | 848 ++------------------- OverlayFormObj/OverlayForm.cs | 185 ++--- PrimaryFormParts/PrimaryForm.QRCode.cs | 17 - PrimaryFormParts/PrimaryForm.SyncScreen.cs | 20 +- PrimaryFormParts/PrimaryForm.cs | 143 +--- Program.cs | 2 +- TCPServer.cs | 2 +- VideoPlayerForm.cs | 3 +- 13 files changed, 207 insertions(+), 1251 deletions(-) diff --git a/CommandHandler.cs b/CommandHandler.cs index 26bfb7b..b379258 100644 --- a/CommandHandler.cs +++ b/CommandHandler.cs @@ -87,102 +87,73 @@ namespace DualScreenDemo HandleArtistAnnouncements(); break; case "A2B3A4": - SafeInvokeAction("A2B3A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A2B3A4",() => OverlayForm.MainForm.ShowVolumeUpLabel()); + SafeInvokeAction("A2B3A4",() => OverlayForm.MainForm.ShowTopRightLabelTime("音量 ↑ ")); break; case "A2B4A4": - SafeInvokeAction("A2B4A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A2B4A4",() => OverlayForm.MainForm.ShowVolumeDownLabel()); + SafeInvokeAction("A2B4A4",() => OverlayForm.MainForm.ShowTopRightLabelTime("音量 ↓ ")); break; case "A2B5A4": - SafeInvokeAction("A2B5A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A2B5A4",() => OverlayForm.MainForm.ShowMicUpLabel()); + SafeInvokeAction("A2B5A4",() => OverlayForm.MainForm.ShowTopRightLabelTime("麥克風 ↑ ")); break; case "A2B6A4": - SafeInvokeAction("A2B6A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A2B6A4",() => OverlayForm.MainForm.ShowMicDownLabel()); + SafeInvokeAction("A2B6A4",() => OverlayForm.MainForm.ShowTopRightLabelTime("麥克風 ↓ ")); break; case "A2C2A4": - SafeInvokeAction("A2C2A4",() => OverlayForm.MainForm.HidemicLabels()); - SafeInvokeAction("A2C2A4",() => OverlayForm.MainForm.ShowStandardLabel()); + SafeInvokeAction("A2C2A4",() => OverlayForm.MainForm.ShowTopRightEchoLabel("標準迴音")); break; case "A2C3A4": - SafeInvokeAction("A2C3A4",() => OverlayForm.MainForm.HidemicLabels()); - SafeInvokeAction("A2C3A4",() => OverlayForm.MainForm.ShowProfessionalLabel()); + SafeInvokeAction("A2C3A4",() => OverlayForm.MainForm.ShowTopRightEchoLabel("專業迴音")); break; case "A2C4A4": - SafeInvokeAction("A2C4A4",() => OverlayForm.MainForm.HidemicLabels()); - SafeInvokeAction("A2C4A4",() => OverlayForm.MainForm.ShowSquareLabel()); + SafeInvokeAction("A2C4A4",() => OverlayForm.MainForm.ShowTopRightEchoLabel("廣場迴音")); break; case "A2C1A4": - SafeInvokeAction("A2C1A4",() => OverlayForm.MainForm.HidemicLabels()); - SafeInvokeAction("A2C1A4",() => OverlayForm.MainForm.ShowSingDownLabel()); + SafeInvokeAction("A2C1A4",() => OverlayForm.MainForm.ShowTopRightEchoLabel("唱將迴音")); break; case "A2D5A4": - SafeInvokeAction("A2D5A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A2D5A4",() => OverlayForm.MainForm.ShowBrightLabel()); + SafeInvokeAction("A2D5A4",() => OverlayForm.MainForm.ShowTopRightLabelTime(" 明亮 ")); break; case "A2D7A4": - SafeInvokeAction("A2D7A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A2D7A4",() => OverlayForm.MainForm.ShowRomanticLabel()); + SafeInvokeAction("A2D7A4",() => OverlayForm.MainForm.ShowTopRightLabelTime(" 浪漫 ")); break; - /* case "A27CA4": - InvokeAction(() => OverlayForm.MainForm.ShowMaleKeyLabel()); - break; - case "A282A4": - InvokeAction(() => OverlayForm.MainForm.ShowFemaleKeyLabel()); - break;*/ case "A2D6A4": - SafeInvokeAction("A2D6A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A2D6A4",() => OverlayForm.MainForm.ShowSoftLabel()); + SafeInvokeAction("A2D6A4",() => OverlayForm.MainForm.ShowTopRightLabelTime(" 柔和 ")); break; case "A2D8A4": - SafeInvokeAction("A2D8A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A2D8A4",() => OverlayForm.MainForm.ShowDynamicLabel()); + SafeInvokeAction("A2D8A4",() => OverlayForm.MainForm.ShowTopRightLabelTime(" 動感 ")); break; case "A275A4": - SafeInvokeAction("A275A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A275A4",() => OverlayForm.MainForm.ShowTintLabel()); + SafeInvokeAction("A275A4",() => OverlayForm.MainForm.ShowTopRightLabelTime(" 調色 ")); break; case "A283A4": - SafeInvokeAction("A283A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A283A4",() => OverlayForm.MainForm.ShowKeyUpLabel("↑升4調")); + SafeInvokeAction("A283A4",() => OverlayForm.MainForm.ShowTopRightLabelTime("↑升4調 ")); break; case "A282A4": - SafeInvokeAction("A282A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A282A4",() => OverlayForm.MainForm.ShowKeyUpLabel("↑升3調")); + SafeInvokeAction("A282A4",() => OverlayForm.MainForm.ShowTopRightLabelTime("↑升3調 ")); break; case "A281A4": - SafeInvokeAction("A281A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A281A4",() => OverlayForm.MainForm.ShowKeyUpLabel("↑升2調")); + SafeInvokeAction("A281A4",() => OverlayForm.MainForm.ShowTopRightLabelTime("↑升2調 ")); break; case "A280A4": - SafeInvokeAction("A280A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A280A4",() => OverlayForm.MainForm.ShowKeyUpLabel("↑升1調")); + SafeInvokeAction("A280A4",() => OverlayForm.MainForm.ShowTopRightLabelTime("↑升1調 ")); break; case "A27FA4": - SafeInvokeAction("A27FA4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A27FA4",() => OverlayForm.MainForm.ShowStandardKeyLabel()); + SafeInvokeAction("A27FA4",() => OverlayForm.MainForm.ShowTopRightLabelTime(" 標準調 ")); break; case "A27EA4": - SafeInvokeAction("A27EA4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A27EA4",() => OverlayForm.MainForm.ShowKeyDownLabel("↓降1調")); + SafeInvokeAction("A27EA4",() => OverlayForm.MainForm.ShowTopRightLabelTime("↓降1調 ")); break; case "A27DA4": - SafeInvokeAction("A27EA4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A27EA4",() => OverlayForm.MainForm.ShowKeyDownLabel("↓降2調")); + SafeInvokeAction("A27EA4",() => OverlayForm.MainForm.ShowTopRightLabelTime("↓降2調 ")); break; case "A27CA4": - SafeInvokeAction("A27CA4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A27CA4",() => OverlayForm.MainForm.ShowKeyDownLabel("↓降3調")); + SafeInvokeAction("A27CA4",() => OverlayForm.MainForm.ShowTopRightLabelTime("↓降3調 ")); break; case "A27BA4": - SafeInvokeAction("A27BA4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A27BA4",() => OverlayForm.MainForm.ShowKeyDownLabel("↓降4調")); + SafeInvokeAction("A27BA4",() => OverlayForm.MainForm.ShowTopRightLabelTime("↓降4調 ")); break; case "A266A4": - SafeInvokeAction("A266A4",() => OverlayForm.MainForm.HideAllLabels()); - SafeInvokeAction("A266A4",() => OverlayForm.MainForm.ShowServiceBell()); + SafeInvokeAction("A266A4",() => OverlayForm.MainForm.ShowTopRightLabel("服務鈴")); break; default: if (Regex.IsMatch(indata, @"^A23\d+A4$")) @@ -249,7 +220,7 @@ namespace DualScreenDemo else PrimaryForm.Instance.videoPlayerForm.PlayNextSong(); - OverlayForm.MainForm.Invoke(new System.Action(() => { OverlayForm.MainForm.ShowStandardLabel(); } ) ); + OverlayForm.MainForm.Invoke(new System.Action(() => { OverlayForm.MainForm.ShowTopRightEchoLabel("標準迴音"); } ) ); } @@ -348,7 +319,7 @@ namespace DualScreenDemo ClearDisplay(); OverlayForm.MainForm.displayLabel.Text = String.Format("已點歌曲:{0}", song); SongList.Add(song); - OverlayForm.MainForm.nextSongLabel.Visible = false; + OverlayForm.MainForm.topLeftLabel.Visible = false; OverlayForm.displayTimer.Start(); } else @@ -366,7 +337,7 @@ namespace DualScreenDemo _indataHistory.Clear(); // 清空歷史紀錄 _wrongInputCountfor61 = 0; // 重置計數器 } - OverlayForm.MainForm.nextSongLabel.Visible = false; + OverlayForm.MainForm.topLeftLabel.Visible = false; OverlayForm.displayTimer.Start(); } })); @@ -378,7 +349,7 @@ namespace DualScreenDemo ClearDisplay(); OverlayForm.MainForm.displayLabel.Text = String.Format("{0}", song); SongList.Add(song); - OverlayForm.MainForm.nextSongLabel.Visible = false; + OverlayForm.MainForm.topLeftLabel.Visible = false; OverlayForm.displayTimer.Start(); } else @@ -396,7 +367,7 @@ namespace DualScreenDemo _indataHistory.Clear(); // 清空歷史紀錄 _wrongInputCountfor61 = 0; // 重置計數器 } - OverlayForm.MainForm.nextSongLabel.Visible = false; + OverlayForm.MainForm.topLeftLabel.Visible = false; OverlayForm.displayTimer.Start(); } } @@ -454,7 +425,7 @@ namespace DualScreenDemo ClearDisplay(); OverlayForm.MainForm.displayLabel.Text = String.Format("插播歌曲{0}", song); SongList.Insert(song); - OverlayForm.MainForm.nextSongLabel.Visible = false; + OverlayForm.MainForm.topLeftLabel.Visible = false; OverlayForm.displayTimer.Start(); } else @@ -472,7 +443,7 @@ namespace DualScreenDemo _indataHistory.Clear(); // 清空歷史紀錄 _wrongInputCountfor62 = 0; // 重置計數器 } - OverlayForm.MainForm.nextSongLabel.Visible = false; + OverlayForm.MainForm.topLeftLabel.Visible = false; OverlayForm.displayTimer.Start(); } })); @@ -483,7 +454,7 @@ namespace DualScreenDemo { ClearDisplay(); OverlayForm.MainForm.displayLabel.Text = String.Format("已點歌曲:{0}", song); - OverlayForm.MainForm.nextSongLabel.Visible = false; + OverlayForm.MainForm.topLeftLabel.Visible = false; } else { @@ -500,7 +471,7 @@ namespace DualScreenDemo _indataHistory.Clear(); // 清空歷史紀錄 _wrongInputCountfor62 = 0; // 重置計數器 } - OverlayForm.MainForm.nextSongLabel.Visible = false; + OverlayForm.MainForm.topLeftLabel.Visible = false; OverlayForm.displayTimer.Start(); } } @@ -537,27 +508,9 @@ namespace DualScreenDemo OverlayForm.MainForm.displayLabel, OverlayForm.MainForm.pauseLabel, OverlayForm.MainForm.muteLabel, - OverlayForm.MainForm.volumeUpLabel, - OverlayForm.MainForm.volumeDownLabel, - OverlayForm.MainForm.micUpLabel, - OverlayForm.MainForm.micDownLabel, - OverlayForm.MainForm.standardKeyLabel, - OverlayForm.MainForm.keyUpLabel, - OverlayForm.MainForm.keyDownLabel, - OverlayForm.MainForm.maleKeyLabel, - OverlayForm.MainForm.femaleKeyLabel, - OverlayForm.MainForm.squareLabel, - OverlayForm.MainForm.professionalLabel, - OverlayForm.MainForm.standardLabel, - OverlayForm.MainForm.singDownLabel, - OverlayForm.MainForm.brightLabel, - OverlayForm.MainForm.softLabel, - OverlayForm.MainForm.autoLabel, - OverlayForm.MainForm.romanticLabel, - OverlayForm.MainForm.dynamicLabel, - OverlayForm.MainForm.tintLabel, + OverlayForm.MainForm.topRightLabel, OverlayForm.MainForm.blackBackgroundPanel, - OverlayForm.MainForm.nextSongLabel + OverlayForm.MainForm.topLeftLabel }; // 將所有不在保留清單內的控制項移除並釋放資源 @@ -617,14 +570,14 @@ namespace DualScreenDemo OverlayForm.MainForm.UpdateHistoryLabel(historySongs, OverlayForm.MainForm.currentPage, totalPages); // 隱藏下一首提示 - OverlayForm.MainForm.nextSongLabel.Visible = false; + OverlayForm.MainForm.topLeftLabel.Visible = false; })); } else { // 若已在 UI 執行緒,直接操作 OverlayForm.MainForm.UpdateHistoryLabel(historySongs, OverlayForm.MainForm.currentPage, totalPages); - OverlayForm.MainForm.nextSongLabel.Visible = false; + OverlayForm.MainForm.topLeftLabel.Visible = false; } // 切換 UI 狀態為播放歷史模式(可做為內部狀態管理用途) @@ -856,27 +809,9 @@ namespace DualScreenDemo if (control != OverlayForm.MainForm.displayLabel && control != OverlayForm.MainForm.pauseLabel && control != OverlayForm.MainForm.muteLabel && - control != OverlayForm.MainForm.volumeUpLabel && - control != OverlayForm.MainForm.volumeDownLabel && - control != OverlayForm.MainForm.micUpLabel && - control != OverlayForm.MainForm.micDownLabel && - control != OverlayForm.MainForm.standardKeyLabel && - control != OverlayForm.MainForm.keyUpLabel && - control != OverlayForm.MainForm.keyDownLabel && - control != OverlayForm.MainForm.maleKeyLabel && - control != OverlayForm.MainForm.femaleKeyLabel && - control != OverlayForm.MainForm.squareLabel && - control != OverlayForm.MainForm.professionalLabel && - control != OverlayForm.MainForm.standardLabel && - control != OverlayForm.MainForm.singDownLabel && - control != OverlayForm.MainForm.brightLabel && - control != OverlayForm.MainForm.softLabel && - control != OverlayForm.MainForm.autoLabel && - control != OverlayForm.MainForm.romanticLabel && - control != OverlayForm.MainForm.dynamicLabel && - control != OverlayForm.MainForm.tintLabel && + control != OverlayForm.MainForm.topRightLabel && control != OverlayForm.MainForm.blackBackgroundPanel && - control != OverlayForm.MainForm.nextSongLabel) + control != OverlayForm.MainForm.topLeftLabel) { OverlayForm.MainForm.Controls.Remove(control); control.Dispose(); @@ -893,27 +828,9 @@ namespace DualScreenDemo if (control != OverlayForm.MainForm.displayLabel && control != OverlayForm.MainForm.pauseLabel && control != OverlayForm.MainForm.muteLabel && - control != OverlayForm.MainForm.volumeUpLabel && - control != OverlayForm.MainForm.volumeDownLabel && - control != OverlayForm.MainForm.micUpLabel && - control != OverlayForm.MainForm.micDownLabel && - control != OverlayForm.MainForm.standardKeyLabel && - control != OverlayForm.MainForm.keyUpLabel && - control != OverlayForm.MainForm.keyDownLabel && - control != OverlayForm.MainForm.maleKeyLabel && - control != OverlayForm.MainForm.femaleKeyLabel && - control != OverlayForm.MainForm.squareLabel && - control != OverlayForm.MainForm.professionalLabel && - control != OverlayForm.MainForm.standardLabel && - control != OverlayForm.MainForm.singDownLabel && - control != OverlayForm.MainForm.brightLabel && - control != OverlayForm.MainForm.softLabel && - control != OverlayForm.MainForm.autoLabel && - control != OverlayForm.MainForm.romanticLabel && - control != OverlayForm.MainForm.dynamicLabel && - control != OverlayForm.MainForm.tintLabel && + control != OverlayForm.MainForm.topRightLabel && control != OverlayForm.MainForm.blackBackgroundPanel && - control != OverlayForm.MainForm.nextSongLabel) + control != OverlayForm.MainForm.topLeftLabel) { OverlayForm.MainForm.Controls.Remove(control); control.Dispose(); @@ -963,14 +880,14 @@ namespace DualScreenDemo { OverlayForm.MainForm.Invoke(new System.Action(() => { - OverlayForm.DisplayNumberAtTopLeft(number); - OverlayForm.MainForm.HideAllLabels(); + OverlayForm.MainForm.HideTopRightLabels(); + OverlayForm.DisplayNumberAtTopLeft(number); })); } else { + OverlayForm.MainForm.HideTopRightLabels(); OverlayForm.DisplayNumberAtTopLeft(number); - OverlayForm.MainForm.HideAllLabels(); } } } diff --git a/DBObj/SongData.cs b/DBObj/SongData.cs index c8eb7b3..4c0983d 100644 --- a/DBObj/SongData.cs +++ b/DBObj/SongData.cs @@ -60,9 +60,9 @@ namespace DBObj } private string FindExistingPath(string filename) { - var servers = new[] { @"\\svr01\", @"\\svr02\", @"\\svr01\e", @"\\svr02\e" }; - foreach (var server in servers) + foreach (var server in Utils.Env.GetSongServers()) { + Console.WriteLine($"伺服器路徑: '{server}'"); string fullPath = Path.Combine(server, filename); if (File.Exists(fullPath)) return fullPath; } diff --git a/DBObj/SongList.cs b/DBObj/SongList.cs index a010134..6cdb857 100644 --- a/DBObj/SongList.cs +++ b/DBObj/SongList.cs @@ -84,8 +84,8 @@ namespace DBObj public static void UpdateNextSongLabel() { - VideoPlayerForm.overlayForm.UpdateNextSongLabel( - (not_played.Count > 0) ? not_played[0].next_artist_text() : "目前沒有下一首,請踴躍點歌!!!" + VideoPlayerForm.overlayForm.UpdateTopLeftLabel( + (not_played.Count > 0) ? not_played[0].getName() : "目前沒有下一首,請踴躍點歌!!!" ); } public static void clearSong() diff --git a/Env.cs b/Env.cs index 22936eb..f280a94 100644 --- a/Env.cs +++ b/Env.cs @@ -49,6 +49,13 @@ namespace Utils Console.WriteLine("所有指定目錄都找不到 config.ini"); } + public static string[] GetSongServers() + { + return Get("songServer", "") + .Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries) + .Select(s => s.Trim('\'', '"').TrimEnd('\\')) // 清理 + .ToArray(); + } public static string Get(string key, string fallback = "") => _values.TryGetValue(key, out var value) ? value : fallback; diff --git a/HttpServer.cs b/HttpServer.cs index e6f1b99..03d06e2 100644 --- a/HttpServer.cs +++ b/HttpServer.cs @@ -451,24 +451,16 @@ namespace DualScreenDemo break; case "volume_up": // 执行音量增大操作 - PrimaryForm.SendCommandThroughSerialPort("a2 b3 a4"); OverlayForm.MainForm.Invoke(new System.Action(() => { - OverlayForm.MainForm.ShowVolumeUpLabel(); - PrimaryForm.Instance.volumeUpTimer.Start(); - OverlayForm.MainForm.HideAllLabels(); - PrimaryForm.Instance.volumeUpTimer.Stop(); + OverlayForm.MainForm.ShowTopRightLabelTime("音量 ↑","a2 b3 a4"); })); break; case "mic_up": // 执行麦克风增大操作 - PrimaryForm.SendCommandThroughSerialPort("a2 b5 a4"); OverlayForm.MainForm.Invoke(new System.Action(() => { - OverlayForm.MainForm.ShowMicUpLabel(); - PrimaryForm.Instance.micControlTimer.Start(); - OverlayForm.MainForm.HideAllLabels(); - PrimaryForm.Instance.micControlTimer.Stop(); + OverlayForm.MainForm.ShowTopRightLabelTime("麥克風 ↑","a2 b5 a4"); })); break; case "mute": @@ -496,24 +488,16 @@ namespace DualScreenDemo break; case "volume_down": // 执行音量减小操作 - PrimaryForm.SendCommandThroughSerialPort("a2 b4 a4"); OverlayForm.MainForm.Invoke(new System.Action(() => { - OverlayForm.MainForm.ShowVolumeDownLabel(); - PrimaryForm.Instance.volumeDownTimer.Start(); - OverlayForm.MainForm.HideAllLabels(); - PrimaryForm.Instance.volumeDownTimer.Stop(); + OverlayForm.MainForm.ShowTopRightLabelTime("音量 ↓","a2 b4 a4"); })); break; case "mic_down": // 执行麦克风减小操作 - PrimaryForm.SendCommandThroughSerialPort("a2 b6 a4"); OverlayForm.MainForm.Invoke(new System.Action(() => { - OverlayForm.MainForm.ShowMicDownLabel(); - PrimaryForm.Instance.micControlTimer.Start(); - OverlayForm.MainForm.HideAllLabels(); - PrimaryForm.Instance.micControlTimer.Stop(); + OverlayForm.MainForm.ShowTopRightLabelTime("麥克風 ↓","a2 b6 a4"); })); break; case "original_song": @@ -533,12 +517,9 @@ namespace DualScreenDemo break; case "service": // 执行服务操作 - PrimaryForm.SendCommandThroughSerialPort("a2 53 a4"); OverlayForm.MainForm.Invoke(new System.Action(() => { - OverlayForm.MainForm.ShowServiceBell(); + OverlayForm.MainForm.ShowTopRightLabel("服務鈴","a2 53 a4"); })); - // 异步处理等待和隐藏标签 - await HttpServer.HandleServiceBellAsync(); break; case "replay": // 执行重唱操作 @@ -551,9 +532,9 @@ namespace DualScreenDemo break; case "male_key": // 执行男调操作 - OverlayForm.MainForm.Invoke(new System.Action(() => { - OverlayForm.MainForm.ShowMaleKeyLabel(); - })); + //OverlayForm.MainForm.Invoke(new System.Action(() => { + // OverlayForm.MainForm.ShowTopRightLabelTime(" 男調 "); + //})); if (SerialPortManager.mySerialPort != null && SerialPortManager.mySerialPort.IsOpen) { // 假設 0xA2, 0xC1, 0xA4 是升調的指令 @@ -571,9 +552,9 @@ namespace DualScreenDemo break; case "female_key": // 执行女调操作 - OverlayForm.MainForm.Invoke(new System.Action(() => { - OverlayForm.MainForm.ShowFemaleKeyLabel(); - })); + //OverlayForm.MainForm.Invoke(new System.Action(() => { + // OverlayForm.MainForm.ShowTopRightLabelTime(" 女調 "); + //})); if (SerialPortManager.mySerialPort != null && SerialPortManager.mySerialPort.IsOpen) { // 假設 0xA2, 0xC1, 0xA4 是升調的指令 @@ -599,7 +580,7 @@ namespace DualScreenDemo case "lower_key": // 执行降调操作 OverlayForm.MainForm.Invoke(new System.Action(() => { - OverlayForm.MainForm.ShowKeyDownLabel(); + OverlayForm.MainForm.ShowTopRightLabelTime("降 1# 調"); })); // MessageBox.Show("降調功能啟動"); @@ -618,7 +599,7 @@ namespace DualScreenDemo case "standard_key": // 执行标准调操作 OverlayForm.MainForm.Invoke(new System.Action(() => { - OverlayForm.MainForm.ShowStandardKeyLabel(); + OverlayForm.MainForm.ShowTopRightLabelTime(" 標準調 "); })); if (SerialPortManager.mySerialPort != null && SerialPortManager.mySerialPort.IsOpen) { @@ -635,7 +616,7 @@ namespace DualScreenDemo case "raise_key": // 执行升调操作 OverlayForm.MainForm.Invoke(new System.Action(() => { - OverlayForm.MainForm.ShowKeyUpLabel(); + OverlayForm.MainForm.ShowTopRightLabelTime("升 1# 調"); })); // MessageBox.Show("升調功能啟動"); @@ -675,13 +656,6 @@ namespace DualScreenDemo await context.Response.OutputStream.WriteAsync(new byte[0], 0, 0); } } - private static async Task HandleServiceBellAsync() - { - await Task.Delay(3000); // 等待 3 秒 - OverlayForm.MainForm.Invoke(new System.Action(() => { - OverlayForm.MainForm.HideServiceBellLabel(); - })); - } private static async Task HandleOrderSongListRequest(HttpListenerContext context) { string jsonResponse = "{\"status\": \"error\", \"message\": \"An error occurred\"}"; diff --git a/OverlayFormObj/OverlayForm.Labels.cs b/OverlayFormObj/OverlayForm.Labels.cs index 44565f7..d8fa284 100644 --- a/OverlayFormObj/OverlayForm.Labels.cs +++ b/OverlayFormObj/OverlayForm.Labels.cs @@ -11,44 +11,9 @@ namespace OverlayFormObj private List