調整 右上Labels 與 左上Labels 20250716
This commit is contained in:
parent
d545c0d8c4
commit
3fc4eeb497
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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()
|
||||
|
7
Env.cs
7
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;
|
||||
|
@ -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\"}";
|
||||
|
@ -11,44 +11,9 @@ namespace OverlayFormObj
|
||||
private List<Label> displayLabels;
|
||||
public Label pauseLabel;
|
||||
public Label muteLabel; // New mute label
|
||||
public Label originalSongLabel;
|
||||
public Label nextSongLabel;
|
||||
private Label serviceBellLabel;
|
||||
private Label BellLabel;
|
||||
private Label OriginalLabel;
|
||||
public Label volumeUpLabel; // New volume up label
|
||||
public Label volumeDownLabel; // New volume down label
|
||||
private System.Windows.Forms.Timer BellTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer OriginalTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer volumeUpTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer volumeDownTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer micUpTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer micDownTimer = new System.Windows.Forms.Timer();
|
||||
public Label micUpLabel; // New microphone up label
|
||||
public Label micDownLabel; // New microphone down label
|
||||
public Label keyUpLabel; // New key up label
|
||||
public Label keyDownLabel; // New key down label
|
||||
public Label standardLabel; // New standard label
|
||||
public Label keyShiftLabel; // New keyShift label
|
||||
public Label squareLabel; // New square label
|
||||
public Label professionalLabel; // New professional label
|
||||
public Label singDownLabel; // New sing down label
|
||||
public Label brightLabel; // New bright label
|
||||
public Label softLabel; // New soft label
|
||||
public Label autoLabel; // New auto label
|
||||
public Label romanticLabel; // New romantic label
|
||||
public Label dynamicLabel; // New dynamic label
|
||||
public Label tintLabel; // New tint label
|
||||
private System.Windows.Forms.Timer standardTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer squareTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer professionalTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer singDownTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer brightTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer softTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer autoTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer romanticTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer dynamicTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer tintTimer = new System.Windows.Forms.Timer();
|
||||
public Label topLeftLabel;
|
||||
public Label topRightLabel;
|
||||
private System.Windows.Forms.Timer topRightTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer secondLineDisplayTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer qrCodeTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer delayTimer = new System.Windows.Forms.Timer();
|
||||
@ -58,38 +23,11 @@ namespace OverlayFormObj
|
||||
{
|
||||
InitializeBlackBackgroundPanel();
|
||||
InitializeDisplayLabel();
|
||||
// InitializeSongDisplayLabel();
|
||||
InitializeDisplayLabels();
|
||||
InitializePauseLabel();
|
||||
InitializeMuteLabel(); // Initialize the new mute label
|
||||
InitializeOriginalSongLabel(); // 初始化原唱标签
|
||||
InitializeServiceBellLabel();
|
||||
|
||||
InitializeBellLabel();
|
||||
InitializeOriginalLabel();
|
||||
|
||||
InitializeVolumeUpLabel(); // Initialize the volume up label
|
||||
InitializeVolumeDownLabel(); // Initialize the volume down label
|
||||
InitializeMicUpLabel(); // Initialize the microphone up label
|
||||
InitializeMicDownLabel(); // Initialize the microphone down label
|
||||
InitializeKeyUpLabel(); // Initialize the key up label
|
||||
InitializeKeyDownLabel(); // Initialize the key down label
|
||||
InitializeStandardLabel(); // Initialize the standard label
|
||||
InitializeSquareLabel(); // Initialize the square label
|
||||
InitializeProfessionalLabel(); // Initialize the professional label
|
||||
InitializeSingDownLabel(); // Initialize the sing down label
|
||||
InitializeBrightLabel(); // Initialize the bright label
|
||||
InitializeSoftLabel(); // Initialize the soft label
|
||||
InitializeAutoLabel(); // Initialize the auto label
|
||||
InitializeRomanticLabel(); // Initialize the romantic label
|
||||
InitializeDynamicLabel(); // Initialize the dynamic label
|
||||
InitializeTintLabel(); // Initialize the tint label
|
||||
InitializeStandardKeyLabel();
|
||||
InitializeMaleKeyLabel();
|
||||
InitializeMaleKeyTimer();
|
||||
InitializeFemaleKeyLabel();
|
||||
InitializeNextSongLabel();
|
||||
InitializeFemaleKeyTimer();
|
||||
InitializeTopRightLabel();
|
||||
InitializeTopLeftLabel();
|
||||
ConfigureKeyTimers();
|
||||
InitializemessageLabel();
|
||||
}
|
||||
@ -97,59 +35,11 @@ namespace OverlayFormObj
|
||||
|
||||
private void ConfigureKeyTimers()
|
||||
{
|
||||
OriginalTimer.Interval = 1000;
|
||||
OriginalTimer.Tick += (sender, e) => {OriginalLabel.Visible = false;OriginalTimer.Stop();keepshowmic();};
|
||||
|
||||
BellTimer.Interval = 1000;
|
||||
BellTimer.Tick += (sender, e) => {BellLabel.Visible = false;BellTimer.Stop();keepshowmic();};
|
||||
|
||||
volumeUpTimer.Interval = 1000;
|
||||
volumeUpTimer.Tick += (sender, e) => {volumeUpLabel.Visible = false;volumeUpTimer.Stop();keepshowmic();};
|
||||
|
||||
volumeDownTimer.Interval = 1000;
|
||||
volumeDownTimer.Tick += (sender, e) => {volumeDownLabel.Visible = false;volumeDownTimer.Stop();keepshowmic();};
|
||||
|
||||
maleKeyTimer.Interval = 1000;
|
||||
maleKeyTimer.Tick += (sender, e) => {maleKeyLabel.Visible = false;maleKeyTimer.Stop();keepshowmic();};
|
||||
|
||||
femaleKeyTimer.Interval = 1000;
|
||||
femaleKeyTimer.Tick += (sender, e) => {femaleKeyLabel.Visible = false;femaleKeyTimer.Stop();keepshowmic();};
|
||||
|
||||
micUpTimer.Interval = 1000;
|
||||
micUpTimer.Tick += (sender, e) => {micUpLabel.Visible = false;micUpTimer.Stop();keepshowmic();};
|
||||
|
||||
micDownTimer.Interval =1000;
|
||||
micDownTimer.Tick += (sender, e) =>{micDownLabel.Visible = false;micDownTimer.Stop();keepshowmic();};
|
||||
|
||||
brightTimer.Interval = 1000;
|
||||
brightTimer.Tick += (sender, e) => {brightLabel.Visible = false;brightTimer.Stop();keepshowmic();};
|
||||
|
||||
softTimer.Interval = 1000;
|
||||
softTimer.Tick += (sender, e) => {softLabel.Visible = false;softTimer.Stop();keepshowmic();};
|
||||
|
||||
autoTimer.Interval = 1000;
|
||||
autoTimer.Tick += (sender, e) => {autoLabel.Visible = false;autoTimer.Stop();keepshowmic();};
|
||||
|
||||
romanticTimer.Interval = 1000;
|
||||
romanticTimer.Tick += (sender, e) => {romanticLabel.Visible = false;romanticTimer.Stop();keepshowmic();};
|
||||
|
||||
dynamicTimer.Interval = 1000;
|
||||
dynamicTimer.Tick += (sender, e) => {dynamicLabel.Visible = false;dynamicTimer.Stop();keepshowmic();};
|
||||
|
||||
tintTimer.Interval = 1000;
|
||||
tintTimer.Tick += (sender, e) => {tintLabel.Visible = false;tintTimer.Stop();keepshowmic();};
|
||||
|
||||
standardKeyTimer.Interval = 1000;
|
||||
standardKeyTimer.Tick += (sender, e) => {standardKeyLabel.Visible = false;standardKeyTimer.Stop();keepshowmic();};
|
||||
|
||||
messageTimer.Interval = 5000;
|
||||
messageTimer.Tick += (sender, e) => {messageLabel.Visible = false;messageTimer.Stop();keepshowmic();};
|
||||
messageTimer.Tick += (sender, e) => {messageLabel.Visible = false;messageTimer.Stop();RedisplayTopRigthLabel();};
|
||||
|
||||
keyUpTimer.Interval = 1000;
|
||||
keyUpTimer.Tick += (sender, e) => {keyUpLabel.Visible = false;keyUpTimer.Stop();keepshowmic();};
|
||||
|
||||
keyDownTimer.Interval = 1000;
|
||||
keyDownTimer.Tick += (sender, e) => {keyDownLabel.Visible = false;keyDownTimer.Stop();keepshowmic();};
|
||||
topRightTimer.Interval = 1000;
|
||||
topRightTimer.Tick += (sender, e) => { topRightLabel.Visible = false; topRightTimer.Stop(); RedisplayTopRigthLabel(); };
|
||||
|
||||
secondLineDisplayTimer.Interval = 32000;
|
||||
secondLineDisplayTimer.Tick += SecondLineDisplayTimer_Tick;
|
||||
@ -170,20 +60,6 @@ namespace OverlayFormObj
|
||||
{
|
||||
try
|
||||
{
|
||||
// Read the server address from the file
|
||||
string serverAddressFilePath = Path.Combine(Application.StartupPath, "txt", "ip.txt");
|
||||
if (!File.Exists(serverAddressFilePath))
|
||||
{
|
||||
Console.WriteLine("Server address file not found: " + serverAddressFilePath);
|
||||
return;
|
||||
}
|
||||
|
||||
string serverAddress = File.ReadAllText(serverAddressFilePath).Trim();
|
||||
// Generate the URL content for the QR code
|
||||
string qrContent = serverAddress.Contains(":") ?
|
||||
String.Format("http://{0}/{1}/windows.html", serverAddress, randomFolderPath) :
|
||||
String.Format("http://{0}:{1}/{2}/windows.html", serverAddress, 9090, randomFolderPath);
|
||||
// Console.WriteLine("QR Content: " + qrContent);
|
||||
string qrImagePath = Path.Combine(Application.StartupPath, "themes/superstar/_www", randomFolderPath, "qrcode.png");
|
||||
if (!File.Exists(qrImagePath))
|
||||
{
|
||||
@ -374,136 +250,6 @@ namespace OverlayFormObj
|
||||
};
|
||||
this.Controls.Add(muteLabel);
|
||||
}
|
||||
|
||||
private void InitializeServiceBellLabel()
|
||||
{
|
||||
|
||||
serviceBellLabel = new Label
|
||||
{
|
||||
Text = " 服務鈴 ",
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
ForeColor = Color.White,
|
||||
BackColor = Color.Black,
|
||||
AutoSize = true,
|
||||
Visible = false // 初始设置为不可见
|
||||
};
|
||||
serviceBellLabel.PerformLayout();
|
||||
|
||||
|
||||
// Console.WriteLine($"初始化标签位置: {serviceBellLabel.Location}, 大小: {serviceBellLabel.Size}");
|
||||
serviceBellLabel.BringToFront();
|
||||
this.Controls.Add(serviceBellLabel);
|
||||
this.Resize += (s, e) =>
|
||||
{
|
||||
serviceBellLabel.Location = new Point(this.Width - serviceBellLabel.Width - 10,56);
|
||||
// Console.WriteLine($"调整标签位置: {serviceBellLabel.Location}, 大小: {serviceBellLabel.Size}");
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
private void InitializeOriginalSongLabel()
|
||||
{
|
||||
originalSongLabel = new Label
|
||||
{
|
||||
Text = "有人聲",
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold), // 设置字体样式
|
||||
ForeColor = Color.White , // 设置文字颜色
|
||||
BackColor = Color.Black,
|
||||
AutoSize = true,
|
||||
Visible = false // 初始设置为不可见
|
||||
};
|
||||
this.Controls.Add(originalSongLabel);
|
||||
this.Resize += (s, e) =>
|
||||
{
|
||||
originalSongLabel.Location = new Point(this.Width - originalSongLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
|
||||
private void InitializeVolumeUpLabel()
|
||||
{
|
||||
volumeUpLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
BackColor = Color.Transparent,
|
||||
Text = "音量 ↑",
|
||||
Visible = false
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(volumeUpLabel);
|
||||
blackBackgroundPanel.Resize += (s, e) =>
|
||||
{
|
||||
volumeUpLabel.Location = new Point(blackBackgroundPanel.Width - volumeUpLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
private void InitializeOriginalLabel()
|
||||
{
|
||||
OriginalLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
BackColor = Color.Transparent,
|
||||
Text = "有人聲",
|
||||
Visible = false
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(OriginalLabel);
|
||||
blackBackgroundPanel.Resize += (s, e) =>
|
||||
{
|
||||
OriginalLabel.Location = new Point(blackBackgroundPanel.Width - OriginalLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
private void InitializeBellLabel()
|
||||
{
|
||||
BellLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
BackColor = Color.Transparent,
|
||||
Text = "服務鈴",
|
||||
Visible = false
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(BellLabel);
|
||||
blackBackgroundPanel.Resize += (s, e) =>
|
||||
{
|
||||
BellLabel.Location = new Point(blackBackgroundPanel.Width - BellLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
private void InitializeVolumeDownLabel()
|
||||
{
|
||||
volumeDownLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
BackColor = Color.Transparent,
|
||||
Text = "音量 ↓",
|
||||
Visible = false
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(volumeDownLabel);
|
||||
blackBackgroundPanel.Resize += (s, e) =>
|
||||
{
|
||||
volumeDownLabel.Location = new Point(blackBackgroundPanel.Width - volumeDownLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
private void InitializeMicUpLabel()
|
||||
{
|
||||
micUpLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
BackColor = Color.Transparent,
|
||||
Text = "麥克風 ↑",
|
||||
Visible = false
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(micUpLabel);
|
||||
blackBackgroundPanel.Resize += (s, e) =>
|
||||
{
|
||||
micUpLabel.Location = new Point(blackBackgroundPanel.Width - micUpLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
public Panel blackBackgroundPanel;
|
||||
|
||||
private void InitializeBlackBackgroundPanel()
|
||||
@ -562,30 +308,9 @@ namespace OverlayFormObj
|
||||
blackBackgroundPanel.SendToBack();
|
||||
}
|
||||
|
||||
|
||||
private void InitializeMicDownLabel()
|
||||
private void InitializeTopLeftLabel()
|
||||
{
|
||||
|
||||
micDownLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
BackColor = Color.Transparent,
|
||||
Text = "麥克風 ↓",
|
||||
Visible = false
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(micDownLabel);
|
||||
blackBackgroundPanel.Resize += (s, e) =>
|
||||
{
|
||||
micDownLabel.Location = new Point(blackBackgroundPanel.Width - micDownLabel.Width - 15, 56);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
private void InitializeNextSongLabel()
|
||||
{
|
||||
nextSongLabel = new Label
|
||||
topLeftLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
@ -594,556 +319,87 @@ namespace OverlayFormObj
|
||||
Text = "",
|
||||
Visible = true
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(nextSongLabel);
|
||||
blackBackgroundPanel.Controls.Add(topLeftLabel);
|
||||
|
||||
nextSongLabel.Location = new Point(10, 56);
|
||||
topLeftLabel.Location = new Point(10, 56);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 更新 nextSongLabel 標籤的文本
|
||||
public void UpdateNextSongLabel(string text)
|
||||
public void UpdateTopLeftLabel(string text)
|
||||
{
|
||||
if (nextSongLabel == null)
|
||||
if (topLeftLabel == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
nextSongLabel.Text = text;
|
||||
nextSongLabel.Visible = true; // 確保標籤顯示
|
||||
topLeftLabel.Text = text;
|
||||
topLeftLabel.Visible = true; // 確保標籤顯示
|
||||
Console.WriteLine($"更新顯示: {text}");
|
||||
}
|
||||
|
||||
private void InitializeKeyUpLabel()
|
||||
private void InitializeTopRightLabel()
|
||||
{
|
||||
keyUpLabel = new Label();
|
||||
keyUpLabel.AutoSize = true;
|
||||
keyUpLabel.ForeColor = Color.White;
|
||||
keyUpLabel.Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold); // 设置字体样式
|
||||
keyUpLabel.BackColor = Color.Black;
|
||||
keyUpLabel.Text = "升調 1# ";
|
||||
keyUpLabel.Visible = false; // 初始设置为不可见
|
||||
this.Controls.Add(keyUpLabel);
|
||||
this.Resize += (s, e) =>
|
||||
{
|
||||
keyUpLabel.Location = new Point(this.Width - keyUpLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
|
||||
// Initialize the key down label
|
||||
private void InitializeKeyDownLabel()
|
||||
{
|
||||
keyDownLabel = new Label();
|
||||
keyDownLabel.AutoSize = true;
|
||||
keyDownLabel.ForeColor = Color.White;
|
||||
keyDownLabel.Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold); // 设置字体样式
|
||||
keyDownLabel.BackColor = Color.Black;
|
||||
keyDownLabel.Text = "降調 1# ";
|
||||
keyDownLabel.Visible = false;
|
||||
this.Controls.Add(keyDownLabel);
|
||||
this.Resize += (s, e) =>
|
||||
{
|
||||
keyDownLabel.Location = new Point(this.Width - keyDownLabel.Width - 10 ,56);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
private void InitializeStandardLabel()
|
||||
{
|
||||
standardLabel = new Label
|
||||
topRightLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
BackColor = Color.Transparent,
|
||||
Text = "標準迴音",
|
||||
Visible = false
|
||||
Visible = true
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(standardLabel);
|
||||
blackBackgroundPanel.Controls.Add(topRightLabel);
|
||||
blackBackgroundPanel.Resize += (s, e) =>
|
||||
{
|
||||
standardLabel.Location = new Point(blackBackgroundPanel.Width - standardLabel.Width - 10, 56);
|
||||
topRightLabel.Location = new Point(blackBackgroundPanel.Width - topRightLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
private void InitializeSquareLabel()
|
||||
{
|
||||
squareLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
BackColor = Color.Transparent,
|
||||
Text = "廣場迴音",
|
||||
Visible = false
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(squareLabel);
|
||||
blackBackgroundPanel.Resize += (s, e) =>
|
||||
{
|
||||
squareLabel.Location = new Point(blackBackgroundPanel.Width - squareLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
private void InitializeProfessionalLabel()
|
||||
{
|
||||
professionalLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
BackColor = Color.Transparent,
|
||||
Text = "專業迴音",
|
||||
Visible = false
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(professionalLabel);
|
||||
blackBackgroundPanel.Resize += (s, e) =>
|
||||
{
|
||||
professionalLabel.Location = new Point(blackBackgroundPanel.Width - professionalLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
private void InitializeSingDownLabel()
|
||||
{
|
||||
singDownLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
BackColor = Color.Transparent,
|
||||
Text = "唱將迴音",
|
||||
Visible = false
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(singDownLabel);
|
||||
blackBackgroundPanel.Resize += (s, e) =>
|
||||
{
|
||||
singDownLabel.Location = new Point(blackBackgroundPanel.Width - singDownLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
|
||||
private void InitializeBrightLabel()
|
||||
{
|
||||
brightLabel = new Label();
|
||||
brightLabel.AutoSize = true;
|
||||
brightLabel.ForeColor = Color.LightYellow;
|
||||
brightLabel.Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold); // 设置字体样式
|
||||
brightLabel.BackColor = Color.Transparent;
|
||||
brightLabel.Text = " 明亮 ";
|
||||
brightLabel.Visible = false; // 初始设置为不可见
|
||||
this.Controls.Add(brightLabel);
|
||||
this.Resize += (s, e) =>
|
||||
{
|
||||
brightLabel.Location = new Point(this.Width - brightLabel.Width - 10, 27);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
private void InitializeSoftLabel()
|
||||
{
|
||||
softLabel = new Label();
|
||||
softLabel.AutoSize = true;
|
||||
softLabel.ForeColor = Color.LightGreen;
|
||||
softLabel.Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold); // 设置字体样式
|
||||
softLabel.BackColor = Color.Transparent;
|
||||
softLabel.Text = " 柔和 ";
|
||||
softLabel.Visible = false; // 初始设置为不可见
|
||||
this.Controls.Add(softLabel);
|
||||
this.Resize += (s, e) =>
|
||||
{
|
||||
softLabel.Location = new Point(this.Width - softLabel.Width - 10,27);
|
||||
};
|
||||
}
|
||||
|
||||
// Initialize the auto label
|
||||
private void InitializeAutoLabel()
|
||||
{
|
||||
autoLabel = new Label();
|
||||
autoLabel.AutoSize = true;
|
||||
autoLabel.ForeColor = Color.Cyan;
|
||||
autoLabel.Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold); // 设置字体样式
|
||||
autoLabel.BackColor = Color.Transparent;
|
||||
autoLabel.Text = " 自動 ";
|
||||
autoLabel.Visible = false; // 初始设置为不可见
|
||||
this.Controls.Add(autoLabel);
|
||||
this.Resize += (s, e) =>
|
||||
{
|
||||
autoLabel.Location = new Point(this.Width - autoLabel.Width - 10, 27);
|
||||
};
|
||||
}
|
||||
private void InitializeRomanticLabel()
|
||||
{
|
||||
romanticLabel = new Label();
|
||||
romanticLabel.AutoSize = true;
|
||||
romanticLabel.ForeColor = Color.Pink;
|
||||
romanticLabel.Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold); // 设置字体样式
|
||||
romanticLabel.BackColor = Color.Transparent;
|
||||
romanticLabel.Text = " 浪漫 ";
|
||||
romanticLabel.Visible = false;
|
||||
this.Controls.Add(romanticLabel);
|
||||
this.Resize += (s, e) =>
|
||||
{
|
||||
romanticLabel.Location = new Point(this.Width - romanticLabel.Width - 10, 27);
|
||||
};
|
||||
}
|
||||
private void InitializeDynamicLabel()
|
||||
{
|
||||
dynamicLabel = new Label();
|
||||
dynamicLabel.AutoSize = true;
|
||||
dynamicLabel.ForeColor = Color.Red;
|
||||
dynamicLabel.Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold); // 设置字体样式
|
||||
dynamicLabel.BackColor = Color.Transparent;
|
||||
dynamicLabel.Text = " 動感 ";
|
||||
dynamicLabel.Visible = false; // 初始设置为不可见
|
||||
this.Controls.Add(dynamicLabel);
|
||||
this.Resize += (s, e) =>
|
||||
{
|
||||
dynamicLabel.Location = new Point(this.Width - dynamicLabel.Width - 10, 27);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
// Initialize the tint label
|
||||
private void InitializeTintLabel()
|
||||
{
|
||||
tintLabel = new Label();
|
||||
tintLabel.AutoSize = true;
|
||||
tintLabel.ForeColor = Color.Blue;
|
||||
tintLabel.Font = new Font("Microsoft JhengHei",34, FontStyle.Bold); // 设置字体样式
|
||||
tintLabel.BackColor = Color.Transparent;
|
||||
tintLabel.Text = " 調色 ";
|
||||
tintLabel.Visible = false;
|
||||
this.Controls.Add(tintLabel);
|
||||
this.Resize += (s, e) =>
|
||||
{
|
||||
tintLabel.Location = new Point(this.Width - tintLabel.Width - 10, 27);
|
||||
};
|
||||
}
|
||||
// 显示服务铃标签
|
||||
public void ShowServiceBellLabel()
|
||||
{
|
||||
whichoneshowmic();
|
||||
HideAllLabels();
|
||||
serviceBellLabel.Visible = true;
|
||||
Console.WriteLine("服務鈴顯示: " + serviceBellLabel.Text); // 输出标签文本内容
|
||||
}
|
||||
|
||||
public void HideServiceBellLabel()
|
||||
{ /*
|
||||
serviceBellLabel.Visible = false;
|
||||
Console.WriteLine("服務鈴隱藏: " + serviceBellLabel.Text); // 输出标签文本内容
|
||||
keepshowmic();
|
||||
*/
|
||||
}
|
||||
|
||||
// 显示标准标签
|
||||
public void ShowStandardLabel()
|
||||
{
|
||||
HideAllLabels();
|
||||
standardLabel.Visible = true;
|
||||
whichoneshowmic();
|
||||
standardTimer.Start();
|
||||
}
|
||||
public void ShowSquareLabel()
|
||||
{
|
||||
HideAllLabels();
|
||||
squareLabel.Visible = true;
|
||||
whichoneshowmic();
|
||||
squareTimer.Start();
|
||||
}
|
||||
|
||||
|
||||
public void ShowProfessionalLabel()
|
||||
{
|
||||
HideAllLabels();
|
||||
professionalLabel.Visible = true;
|
||||
whichoneshowmic();
|
||||
professionalTimer.Start();
|
||||
}
|
||||
|
||||
// 显示唱將标签
|
||||
public void ShowSingDownLabel()
|
||||
{
|
||||
HideAllLabels();
|
||||
singDownLabel.Visible = true;
|
||||
whichoneshowmic();
|
||||
singDownTimer.Start();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 显示明亮标签
|
||||
public void ShowBrightLabel()
|
||||
{
|
||||
HideAllLabels();
|
||||
brightLabel.Visible = true;
|
||||
whichoneshowmic();
|
||||
brightTimer.Start();
|
||||
}
|
||||
|
||||
// 显示柔和标签
|
||||
public void ShowSoftLabel()
|
||||
{
|
||||
|
||||
HideAllLabels();
|
||||
softLabel.Visible = true;
|
||||
whichoneshowmic();
|
||||
softTimer.Start();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void ShowAutoLabel()
|
||||
{
|
||||
HideAllLabels();
|
||||
autoLabel.Visible = true;
|
||||
whichoneshowmic();
|
||||
autoTimer.Start();
|
||||
}
|
||||
|
||||
// 显示浪漫标签
|
||||
public void ShowRomanticLabel()
|
||||
{
|
||||
|
||||
HideAllLabels();
|
||||
romanticLabel.Visible = true;
|
||||
whichoneshowmic();
|
||||
romanticTimer.Start();
|
||||
}
|
||||
|
||||
public void ShowDynamicLabel()
|
||||
{
|
||||
HideAllLabels();
|
||||
dynamicLabel.Visible = true;
|
||||
whichoneshowmic();
|
||||
dynamicTimer.Start();
|
||||
}
|
||||
|
||||
public void ShowTintLabel()
|
||||
{
|
||||
HideAllLabels();
|
||||
tintLabel.Visible = true;
|
||||
whichoneshowmic();
|
||||
tintTimer.Start();
|
||||
}
|
||||
|
||||
private void InitializeStandardKeyLabel()
|
||||
{
|
||||
|
||||
standardKeyLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
BackColor = Color.Black,
|
||||
Text = " 標準調 ",
|
||||
Visible = false
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(standardKeyLabel);
|
||||
blackBackgroundPanel.Resize += (s, e) =>
|
||||
{
|
||||
standardKeyLabel.Location = new Point(blackBackgroundPanel.Width - standardKeyLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
private void InitializeFemaleKeyLabel()
|
||||
{
|
||||
|
||||
femaleKeyLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
BackColor = Color.Transparent,
|
||||
Text = " 女調 ",
|
||||
Visible = false
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(femaleKeyLabel);
|
||||
blackBackgroundPanel.Resize += (s, e) =>
|
||||
{
|
||||
femaleKeyLabel.Location = new Point(blackBackgroundPanel.Width - femaleKeyLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
private void InitializeMaleKeyLabel()
|
||||
{
|
||||
|
||||
maleKeyLabel = new Label
|
||||
{
|
||||
AutoSize = true,
|
||||
ForeColor = Color.White,
|
||||
Font = new Font("Microsoft JhengHei", 34, FontStyle.Bold),
|
||||
BackColor = Color.Transparent,
|
||||
Text = " 男調 ",
|
||||
Visible = false
|
||||
};
|
||||
blackBackgroundPanel.Controls.Add(maleKeyLabel);
|
||||
blackBackgroundPanel.Resize += (s, e) =>
|
||||
{
|
||||
maleKeyLabel.Location = new Point(blackBackgroundPanel.Width - maleKeyLabel.Width - 10, 56);
|
||||
};
|
||||
}
|
||||
|
||||
public void ShowPauseLabel()
|
||||
{
|
||||
pauseLabel.Visible = true;
|
||||
}
|
||||
public void ShowPauseLabel() => pauseLabel.Visible = true;
|
||||
|
||||
// 隐藏暂停标签
|
||||
public void HidePauseLabel()
|
||||
{
|
||||
pauseLabel.Visible = false;
|
||||
}
|
||||
public void HidePauseLabel() => pauseLabel.Visible = false;
|
||||
|
||||
// 显示静音标签
|
||||
public void ShowMuteLabel()
|
||||
{
|
||||
muteLabel.Visible = true;
|
||||
}
|
||||
public void ShowMuteLabel() => muteLabel.Visible = true;
|
||||
|
||||
// 隐藏静音标签
|
||||
public void HideMuteLabel()
|
||||
public void HideMuteLabel() => muteLabel.Visible = false;
|
||||
public void ShowTopRightLabel(string customText = "",string tag =null)
|
||||
{
|
||||
muteLabel.Visible = false;
|
||||
}
|
||||
|
||||
public void ShowOriginalSongLabel(string text="有人聲")
|
||||
{
|
||||
HideAllLabels();
|
||||
originalSongLabel.Text = text;
|
||||
originalSongLabel.Visible = true;
|
||||
}
|
||||
|
||||
public void HideOriginalSongLabel()
|
||||
{
|
||||
originalSongLabel.Visible = false;
|
||||
keepshowmic();
|
||||
}
|
||||
|
||||
public void ToggleOriginalSongLabel()
|
||||
{
|
||||
originalSongLabel.Visible = !originalSongLabel.Visible;
|
||||
}
|
||||
public void ShowMaleKeyLabel()
|
||||
{
|
||||
maleKeyLabel.Visible = true;
|
||||
maleKeyTimer.Start();
|
||||
}
|
||||
public void ShowFemaleKeyLabel()
|
||||
{
|
||||
femaleKeyLabel.Visible = true;
|
||||
femaleKeyTimer.Start();
|
||||
}
|
||||
|
||||
public void ShowVolumeUpLabel()
|
||||
{
|
||||
volumeUpLabel.Visible = true;
|
||||
volumeUpTimer.Start();
|
||||
}
|
||||
public void ShowServiceBell()
|
||||
{
|
||||
BellLabel.Visible = true;
|
||||
BellTimer.Start();
|
||||
|
||||
}
|
||||
public void ShowOriginalLabel(string text = "有人聲")
|
||||
{
|
||||
OriginalLabel.Text = text;
|
||||
OriginalLabel.Visible = true;
|
||||
OriginalTimer.Start();
|
||||
|
||||
}
|
||||
// 显示音量-标签
|
||||
public void ShowVolumeDownLabel()
|
||||
{
|
||||
volumeDownLabel.Visible = true;
|
||||
volumeDownTimer.Start();
|
||||
}
|
||||
// 显示麥克風+标签
|
||||
public void ShowMicUpLabel()
|
||||
{
|
||||
micUpLabel.Visible = true;
|
||||
micUpTimer.Start();
|
||||
}
|
||||
|
||||
// 显示麥克風-标签
|
||||
public void ShowMicDownLabel()
|
||||
{
|
||||
micDownLabel.Visible = true;
|
||||
micDownTimer.Start();
|
||||
}
|
||||
|
||||
// 显示標準調标签
|
||||
public void ShowStandardKeyLabel()
|
||||
{
|
||||
|
||||
standardKeyLabel.Visible = true;
|
||||
standardKeyTimer.Start();
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void ShowKeyUpLabel(string customText = "")
|
||||
{
|
||||
// keyUpLabel.Text = string.IsNullOrWhiteSpace(customText) ? "升 1# 調" : customText;
|
||||
keyUpLabel.Text = customText;
|
||||
keyUpLabel.Visible = true;
|
||||
keyUpTimer.Start();
|
||||
}
|
||||
|
||||
|
||||
public void ShowKeyDownLabel(string customText = "")
|
||||
{
|
||||
keyDownLabel.Text = customText;
|
||||
keyDownLabel.Visible = true;
|
||||
keyDownTimer.Start();
|
||||
}
|
||||
private string switchmic = "Standard" ;
|
||||
// 隐藏所有标签
|
||||
public void HideAllLabels()
|
||||
{
|
||||
HidemicLabels();
|
||||
}
|
||||
public void whichoneshowmic()
|
||||
{
|
||||
if(singDownLabel.Visible){
|
||||
switchmic="SingDown";
|
||||
}else if(professionalLabel.Visible){
|
||||
switchmic="Professional";
|
||||
}else if(squareLabel.Visible){
|
||||
switchmic="Square";
|
||||
}else if(standardLabel.Visible){
|
||||
switchmic="Standard";
|
||||
}
|
||||
}
|
||||
public void keepshowmic()
|
||||
{
|
||||
switch (switchmic)
|
||||
if (tag != null)
|
||||
{
|
||||
case "SingDown":
|
||||
HidemicLabels();
|
||||
ShowSingDownLabel();
|
||||
break;
|
||||
case "Professional":
|
||||
HidemicLabels();
|
||||
ShowProfessionalLabel();
|
||||
break;
|
||||
case "Square":
|
||||
HidemicLabels();
|
||||
ShowSquareLabel();
|
||||
break;
|
||||
case "Standard":
|
||||
HidemicLabels();
|
||||
ShowStandardLabel();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
PrimaryForm.SendCommandThroughSerialPort(tag);
|
||||
}
|
||||
HideTopRightLabels();
|
||||
topRightLabel.Text = customText;
|
||||
topRightLabel.Visible = true;
|
||||
}
|
||||
|
||||
public void HidemicLabels()
|
||||
public void ShowTopRightLabelTime(string customText = "",string tag =null)
|
||||
{
|
||||
singDownLabel.Visible = false;
|
||||
singDownTimer.Stop();
|
||||
professionalLabel.Visible = false;
|
||||
professionalTimer.Stop();
|
||||
squareLabel.Visible = false;
|
||||
squareTimer.Stop();
|
||||
standardLabel.Visible = false;
|
||||
standardTimer.Stop();
|
||||
|
||||
ShowTopRightLabel(customText, tag);
|
||||
topRightTimer.Stop();
|
||||
topRightTimer.Start();
|
||||
}
|
||||
public void ShowTopRightEchoLabel(string customText = "")
|
||||
{
|
||||
switchmic = customText;
|
||||
ShowTopRightLabel(customText);
|
||||
}
|
||||
private string switchmic = "標準迴音";
|
||||
// 隐藏所有标签
|
||||
public void HideTopRightLabels()
|
||||
{
|
||||
topRightLabel.Visible = false;
|
||||
}
|
||||
public void RedisplayTopRigthLabel()
|
||||
{
|
||||
HideTopRightLabels();
|
||||
ShowTopRightEchoLabel(switchmic);
|
||||
}
|
||||
private void InitializemessageLabel()
|
||||
{
|
||||
|
@ -29,16 +29,8 @@ namespace OverlayFormObj
|
||||
public static System.Timers.Timer unifiedTimer;
|
||||
private System.Windows.Forms.Timer stickerTimer1 = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer stickerTimer2 = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer keyUpTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer keyDownTimer = new System.Windows.Forms.Timer();
|
||||
public Label standardKeyLabel;
|
||||
private System.Windows.Forms.Timer standardKeyTimer = new System.Windows.Forms.Timer();
|
||||
private System.Windows.Forms.Timer messageTimer = new System.Windows.Forms.Timer();
|
||||
public Label maleKeyLabel;
|
||||
public Label messageLabel;
|
||||
private System.Windows.Forms.Timer maleKeyTimer;
|
||||
public Label femaleKeyLabel;
|
||||
private System.Windows.Forms.Timer femaleKeyTimer;
|
||||
private System.Windows.Forms.Timer secondLineTimer;
|
||||
private DateTime secondLineStartTime;
|
||||
private const int secondLineDuration = 20000;
|
||||
@ -109,29 +101,6 @@ namespace OverlayFormObj
|
||||
currentSegmentIndex = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void InitializeMaleKeyTimer()
|
||||
{
|
||||
maleKeyTimer = new System.Windows.Forms.Timer();
|
||||
maleKeyTimer.Interval = 3000;
|
||||
maleKeyTimer.Tick += (s, e) =>
|
||||
{
|
||||
HideAllLabels();
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
private void InitializeFemaleKeyTimer()
|
||||
{
|
||||
femaleKeyTimer = new System.Windows.Forms.Timer();
|
||||
femaleKeyTimer.Interval = 3000;
|
||||
femaleKeyTimer.Tick += (s, e) =>
|
||||
{
|
||||
HideAllLabels();
|
||||
};
|
||||
}
|
||||
|
||||
private void AddCenteredPicture(Bitmap bitmap, int y)
|
||||
{
|
||||
int x = (this.Width - bitmap.Width) / 2;
|
||||
@ -296,7 +265,7 @@ namespace OverlayFormObj
|
||||
{
|
||||
|
||||
string currentText = MainForm.displayLabel.Text;
|
||||
MainForm.nextSongLabel.Visible = false;
|
||||
MainForm.topLeftLabel.Visible = false;
|
||||
string combinedText = currentText + newText;
|
||||
|
||||
|
||||
@ -308,7 +277,7 @@ namespace OverlayFormObj
|
||||
|
||||
|
||||
MainForm.displayLabel.Text = combinedText;
|
||||
MainForm.nextSongLabel.Visible = false;
|
||||
MainForm.topLeftLabel.Visible = false;
|
||||
|
||||
|
||||
displayTimer.Stop();
|
||||
@ -415,54 +384,51 @@ namespace OverlayFormObj
|
||||
};
|
||||
}
|
||||
|
||||
private static void DisplayTimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if (MainForm.InvokeRequired)
|
||||
{
|
||||
MainForm.Invoke(new System.Action(() =>
|
||||
private static void DisplayTimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
MainForm.displayLabel.Text = "";
|
||||
MainForm.nextSongLabel.Visible = true; // 显示 nextSongLabel
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
MainForm.displayLabel.Text = "";
|
||||
MainForm.nextSongLabel.Visible = true; // 显示 nextSongLabel
|
||||
}
|
||||
if (MainForm.InvokeRequired)
|
||||
{
|
||||
MainForm.Invoke(new System.Action(() =>
|
||||
{
|
||||
MainForm.displayLabel.Text = "";
|
||||
MainForm.topLeftLabel.Visible = true; // 显示 topLeftLabel
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
MainForm.displayLabel.Text = "";
|
||||
MainForm.topLeftLabel.Visible = true; // 显示 topLeftLabel
|
||||
}
|
||||
|
||||
displayTimer.Stop(); // 停止计时器
|
||||
}
|
||||
displayTimer.Stop(); // 停止计时器
|
||||
}
|
||||
|
||||
// 當 songDisplayTimer 計時完成時會呼叫此函式
|
||||
private static void SongDisplayTimer_Elapsed(object sender, EventArgs e)
|
||||
{
|
||||
// 檢查是否需要跨執行緒操作 UI 控制項
|
||||
if (MainForm.InvokeRequired)
|
||||
{
|
||||
// 如果目前不在 UI 執行緒上,必須透過 Invoke 安全執行 UI 更新邏輯
|
||||
Console.WriteLine("SongDisplayTimer_Tick invoked on UI thread.");
|
||||
|
||||
MainForm.BeginInvoke(new Action(() =>
|
||||
// 當 songDisplayTimer 計時完成時會呼叫此函式
|
||||
private static void SongDisplayTimer_Elapsed(object sender, EventArgs e)
|
||||
{
|
||||
if (MainForm.songDisplayLabel != null)
|
||||
MainForm.songDisplayLabel.Text = "";
|
||||
// 檢查是否需要跨執行緒操作 UI 控制項
|
||||
if (MainForm.InvokeRequired)
|
||||
{
|
||||
// 如果目前不在 UI 執行緒上,必須透過 Invoke 安全執行 UI 更新邏輯
|
||||
Console.WriteLine("SongDisplayTimer_Tick invoked on UI thread.");
|
||||
|
||||
if (MainForm.nextSongLabel != null)
|
||||
MainForm.nextSongLabel.Visible = true;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
// 如果已經在 UI 執行緒,就直接更新 UI 控制項
|
||||
Console.WriteLine("SongDisplayTimer_Tick invoked on background thread.");
|
||||
MainForm.songDisplayLabel.Text = "";
|
||||
MainForm.nextSongLabel.Visible = true;
|
||||
}
|
||||
MainForm.BeginInvoke(new Action(() =>
|
||||
{
|
||||
if (MainForm.topLeftLabel != null)
|
||||
MainForm.topLeftLabel.Visible = true;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
// 如果已經在 UI 執行緒,就直接更新 UI 控制項
|
||||
Console.WriteLine("SongDisplayTimer_Tick invoked on background thread.");
|
||||
//MainForm.songDisplayLabel.Text = "";
|
||||
MainForm.topLeftLabel.Visible = true;
|
||||
}
|
||||
|
||||
// 停止計時器,避免重複觸發
|
||||
songDisplayTimer.Stop();
|
||||
}
|
||||
// 停止計時器,避免重複觸發
|
||||
songDisplayTimer.Stop();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -514,7 +480,7 @@ private static void SongDisplayTimer_Elapsed(object sender, EventArgs e)
|
||||
|
||||
private void DisplayMessage(string message, int duration)
|
||||
{
|
||||
MainForm.nextSongLabel.Visible = false;
|
||||
MainForm.topLeftLabel.Visible = false;
|
||||
displayLabel.Text = message;
|
||||
unifiedTimer.Interval = duration;
|
||||
unifiedTimer.Start();
|
||||
@ -554,27 +520,6 @@ private static void SongDisplayTimer_Elapsed(object sender, EventArgs e)
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateSongDisplayLabel(string newText)
|
||||
{
|
||||
|
||||
songDisplayLabel.Text = newText;
|
||||
|
||||
|
||||
songDisplayLabel.Font = new Font("Arial", 125);
|
||||
|
||||
songDisplayLabel.ForeColor = Color.White;
|
||||
|
||||
|
||||
songDisplayTimer.Stop();
|
||||
|
||||
|
||||
songDisplayTimer.Start();
|
||||
|
||||
|
||||
this.Invalidate();
|
||||
}
|
||||
|
||||
|
||||
private void SecondLineTimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if ((DateTime.Now - secondLineStartTime).TotalMilliseconds >= secondLineDuration)
|
||||
@ -793,7 +738,7 @@ private static void SongDisplayTimer_Elapsed(object sender, EventArgs e)
|
||||
public static string ReadSongNumber()
|
||||
{
|
||||
string songNumber = MainForm.displayLabel.Text;
|
||||
MainForm.nextSongLabel.Visible = false;
|
||||
MainForm.topLeftLabel.Visible = false;
|
||||
return songNumber;
|
||||
}
|
||||
|
||||
@ -844,27 +789,9 @@ private static void SongDisplayTimer_Elapsed(object sender, EventArgs e)
|
||||
if (control != MainForm.displayLabel &&
|
||||
control != MainForm.pauseLabel &&
|
||||
control != MainForm.muteLabel &&
|
||||
control != MainForm.volumeUpLabel &&
|
||||
control != MainForm.volumeDownLabel &&
|
||||
control != MainForm.micUpLabel &&
|
||||
control != MainForm.micDownLabel &&
|
||||
control != MainForm.standardKeyLabel &&
|
||||
control != MainForm.keyUpLabel &&
|
||||
control != MainForm.keyDownLabel &&
|
||||
control != MainForm.maleKeyLabel &&
|
||||
control != MainForm.femaleKeyLabel &&
|
||||
control != MainForm.squareLabel &&
|
||||
control != MainForm.professionalLabel &&
|
||||
control != MainForm.standardLabel &&
|
||||
control != MainForm.singDownLabel &&
|
||||
control != MainForm.brightLabel &&
|
||||
control != MainForm.softLabel &&
|
||||
control != MainForm.autoLabel &&
|
||||
control != MainForm.romanticLabel &&
|
||||
control != MainForm.dynamicLabel &&
|
||||
control != MainForm.tintLabel &&
|
||||
control != MainForm.topRightLabel &&
|
||||
control != MainForm.blackBackgroundPanel &&
|
||||
control != MainForm.nextSongLabel)
|
||||
control != MainForm.topLeftLabel)
|
||||
{
|
||||
MainForm.Controls.Remove(control);
|
||||
// control.Dispose();
|
||||
@ -1156,27 +1083,9 @@ private static void SongDisplayTimer_Elapsed(object sender, EventArgs e)
|
||||
if (control != displayLabel &&
|
||||
control != pauseLabel &&
|
||||
control != muteLabel &&
|
||||
control != volumeUpLabel &&
|
||||
control != volumeDownLabel &&
|
||||
control != micUpLabel &&
|
||||
control != micDownLabel &&
|
||||
control != standardKeyLabel &&
|
||||
control != keyUpLabel &&
|
||||
control != keyDownLabel &&
|
||||
control != maleKeyLabel &&
|
||||
control != femaleKeyLabel &&
|
||||
control != squareLabel &&
|
||||
control != professionalLabel &&
|
||||
control != standardLabel &&
|
||||
control != singDownLabel &&
|
||||
control != brightLabel &&
|
||||
control != softLabel &&
|
||||
control != autoLabel &&
|
||||
control != romanticLabel &&
|
||||
control != dynamicLabel &&
|
||||
control != tintLabel &&
|
||||
control != topRightLabel &&
|
||||
control != blackBackgroundPanel &&
|
||||
control != nextSongLabel)
|
||||
control != topLeftLabel)
|
||||
{
|
||||
this.Controls.Remove(control);
|
||||
control.Dispose();
|
||||
|
@ -20,23 +20,6 @@ namespace DualScreenDemo
|
||||
|
||||
using (Image baseImage = Image.FromFile(imagePath))
|
||||
{
|
||||
|
||||
string serverAddressFilePath = Path.Combine(Application.StartupPath, "txt", "ip.txt");
|
||||
if (!File.Exists(serverAddressFilePath))
|
||||
{
|
||||
Console.WriteLine("Server address file not found: " + serverAddressFilePath);
|
||||
return;
|
||||
}
|
||||
|
||||
string serverAddress = File.ReadAllText(serverAddressFilePath).Trim();
|
||||
|
||||
// 根据地址格式生成不同的URL
|
||||
string qrContent = serverAddress.Contains(":") ?
|
||||
String.Format("http://{0}/{1}/windows.html", serverAddress, randomFolderPath) :
|
||||
String.Format("http://{0}:{1}/{2}/windows.html", serverAddress, 9090, randomFolderPath);
|
||||
// Console.WriteLine("QR Content: " + qrContent);
|
||||
|
||||
|
||||
string qrImagePath = Path.Combine(Application.StartupPath, "themes/superstar/_www", randomFolderPath, "qrcode.png");
|
||||
if (!File.Exists(qrImagePath))
|
||||
{
|
||||
|
@ -53,21 +53,17 @@ namespace DualScreenDemo
|
||||
ConfigureButton(this.syncPauseButton, 1218, 475, 205, 56, resizedNormalStateImageForSyncScreen, resizedNormalStateImageForSyncScreen, resizedNormalStateImageForSyncScreen, SyncPauseButton_Click);
|
||||
ConfigureButton(this.syncPlayButton, 1218, 475, 205, 56, resizedNormalStateImageForSyncScreen, resizedNormalStateImageForSyncScreen, resizedNormalStateImageForSyncScreen, SyncPlayButton_Click);
|
||||
ConfigureButton(this.syncVolumeUpButton, 1218, 546, 205, 55, resizedNormalStateImageForSyncScreen, resizedNormalStateImageForSyncScreen, resizedNormalStateImageForSyncScreen, null);
|
||||
this.syncVolumeUpButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowVolumeUpLabel(); volumeUpTimer.Start(); };
|
||||
this.syncVolumeUpButton.MouseUp += (sender, e) => { OverlayForm.MainForm.HideAllLabels(); volumeUpTimer.Stop(); };
|
||||
this.syncVolumeUpButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowTopRightLabel("音量 ↑ ","a2 b3 a4"); };
|
||||
this.syncVolumeUpButton.MouseUp += (sender, e) => { OverlayForm.MainForm.RedisplayTopRigthLabel(); };
|
||||
ConfigureButton(this.syncVolumeDownButton, 1218, 616, 205, 55, resizedNormalStateImageForSyncScreen, resizedNormalStateImageForSyncScreen, resizedNormalStateImageForSyncScreen, null);
|
||||
this.syncVolumeDownButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowVolumeDownLabel(); volumeDownTimer.Start(); };
|
||||
this.syncVolumeDownButton.MouseUp += (sender, e) => { OverlayForm.MainForm.HideAllLabels(); volumeDownTimer.Stop(); };
|
||||
this.syncVolumeDownButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowTopRightLabel("音量 ↓ ","a2 b4 a4");};
|
||||
this.syncVolumeDownButton.MouseUp += (sender, e) => { OverlayForm.MainForm.RedisplayTopRigthLabel();};
|
||||
ConfigureButton(this.syncMicUpButton, 1218, 686, 205, 56, resizedNormalStateImageForSyncScreen, resizedNormalStateImageForSyncScreen, resizedNormalStateImageForSyncScreen, null);
|
||||
this.syncMicUpButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowMicUpLabel(); micControlTimer.Tag = "a2 b5 a4"; micControlTimer.Start(); };
|
||||
this.syncMicUpButton.MouseUp += (sender, e) => { OverlayForm.MainForm.HideAllLabels(); micControlTimer.Stop(); };
|
||||
|
||||
|
||||
|
||||
|
||||
this.syncMicUpButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowTopRightLabel("麥克風 ↑ ","a2 b5 a4");};
|
||||
this.syncMicUpButton.MouseUp += (sender, e) => { OverlayForm.MainForm.RedisplayTopRigthLabel(); };
|
||||
ConfigureButton(this.syncMicDownButton, 1218, 756, 205, 56, resizedNormalStateImageForSyncScreen, resizedNormalStateImageForSyncScreen, resizedNormalStateImageForSyncScreen, null);
|
||||
this.syncMicDownButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowMicDownLabel(); micControlTimer.Tag = "a2 b6 a4"; micControlTimer.Start(); };
|
||||
this.syncMicDownButton.MouseUp += (sender, e) => { OverlayForm.MainForm.HideAllLabels(); micControlTimer.Stop(); };
|
||||
this.syncMicDownButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowTopRightLabel("麥克風 ↓ ","a2 b6 a4");};
|
||||
this.syncMicDownButton.MouseUp += (sender, e) => { OverlayForm.MainForm.RedisplayTopRigthLabel(); };
|
||||
|
||||
|
||||
|
||||
|
@ -150,10 +150,7 @@ namespace DualScreenDemo
|
||||
private const int PanelEndTop = 739; // 修改為實際需要的下邊界
|
||||
|
||||
private Timer lightControlTimer;
|
||||
public Timer volumeUpTimer;
|
||||
public Timer volumeDownTimer;
|
||||
public Timer micControlTimer;
|
||||
|
||||
|
||||
private SequenceManager sequenceManager = new SequenceManager();
|
||||
private PictureBox buttonMiddle;
|
||||
private PictureBox buttonTopRight;
|
||||
@ -201,16 +198,7 @@ namespace DualScreenDemo
|
||||
lightControlTimer = new Timer();
|
||||
lightControlTimer.Interval = 5;
|
||||
lightControlTimer.Tick += LightControlTimer_Tick;
|
||||
volumeUpTimer = new Timer();
|
||||
volumeUpTimer.Interval = 100;
|
||||
volumeUpTimer.Tick += VolumeUpTimer_Tick;
|
||||
volumeDownTimer = new Timer();
|
||||
volumeDownTimer.Interval = 100;
|
||||
volumeDownTimer.Tick += VolumeDownTimer_Tick;
|
||||
micControlTimer = new Timer();
|
||||
micControlTimer.Interval = 100;
|
||||
micControlTimer.Tick += MicControlTimer_Tick;
|
||||
|
||||
|
||||
InitializeRecording();
|
||||
InitializeMediaPlayer();
|
||||
LoadImages();
|
||||
@ -879,7 +867,7 @@ namespace DualScreenDemo
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void LightControlTimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if(lightControlTimer.Tag != null)
|
||||
@ -888,56 +876,6 @@ namespace DualScreenDemo
|
||||
}
|
||||
}
|
||||
|
||||
private void VolumeUpTimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
SendCommandThroughSerialPort("a2 b3 a4");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("Failed to send command: " + ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void VolumeDownTimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
SendCommandThroughSerialPort("a2 b4 a4");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("Failed to send command: " + ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void MicControlTimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
if(micControlTimer.Tag != null)
|
||||
{
|
||||
SendCommandThroughSerialPort(micControlTimer.Tag.ToString());
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("Failed to send command: " + ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void SendCommandThroughSerialPort(string command)
|
||||
{
|
||||
if (SerialPortManager.mySerialPort != null && SerialPortManager.mySerialPort.IsOpen)
|
||||
@ -1104,8 +1042,8 @@ namespace DualScreenDemo
|
||||
musicUpButton.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
musicUpButton.FlatStyle = FlatStyle.Flat;
|
||||
musicUpButton.FlatAppearance.BorderSize = 0;
|
||||
musicUpButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowVolumeUpLabel(); volumeUpTimer.Start(); };
|
||||
musicUpButton.MouseUp += (sender, e) => { OverlayForm.MainForm.HideAllLabels(); volumeUpTimer.Stop(); };
|
||||
musicUpButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowTopRightLabel("音量 ↑","a2 b3 a4"); };
|
||||
musicUpButton.MouseUp += (sender, e) => { OverlayForm.MainForm.RedisplayTopRigthLabel(); };
|
||||
this.Controls.Add(musicUpButton);
|
||||
|
||||
|
||||
@ -1117,8 +1055,8 @@ namespace DualScreenDemo
|
||||
musicDownButton.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
musicDownButton.FlatStyle = FlatStyle.Flat;
|
||||
musicDownButton.FlatAppearance.BorderSize = 0;
|
||||
musicDownButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowVolumeDownLabel(); volumeDownTimer.Start(); };
|
||||
musicDownButton.MouseUp += (sender, e) => { OverlayForm.MainForm.HideAllLabels(); volumeDownTimer.Stop(); };
|
||||
musicDownButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowTopRightLabel("音量 ↓","a2 b4 a4"); };
|
||||
musicDownButton.MouseUp += (sender, e) => { OverlayForm.MainForm.RedisplayTopRigthLabel(); };
|
||||
this.Controls.Add(musicDownButton);
|
||||
|
||||
|
||||
@ -1130,8 +1068,8 @@ namespace DualScreenDemo
|
||||
micUpButton.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
micUpButton.FlatStyle = FlatStyle.Flat;
|
||||
micUpButton.FlatAppearance.BorderSize = 0;
|
||||
micUpButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowMicUpLabel(); micControlTimer.Tag = "a2 b5 a4"; micControlTimer.Start(); };
|
||||
micUpButton.MouseUp += (sender, e) => { OverlayForm.MainForm.HideAllLabels(); micControlTimer.Stop(); };
|
||||
micUpButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowTopRightLabel("麥克風 ↑","a2 b5 a4"); };
|
||||
micUpButton.MouseUp += (sender, e) => { OverlayForm.MainForm.RedisplayTopRigthLabel(); };
|
||||
this.Controls.Add(micUpButton);
|
||||
|
||||
|
||||
@ -1143,8 +1081,8 @@ namespace DualScreenDemo
|
||||
micDownButton.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
micDownButton.FlatStyle = FlatStyle.Flat;
|
||||
micDownButton.FlatAppearance.BorderSize = 0;
|
||||
micDownButton.MouseDown += (sender, e) => { OverlayForm.MainForm.ShowMicDownLabel(); micControlTimer.Tag = "a2 b6 a4"; micControlTimer.Start(); };
|
||||
micDownButton.MouseUp += (sender, e) => { OverlayForm.MainForm.HideAllLabels(); micControlTimer.Stop(); };
|
||||
micDownButton.MouseDown += (sender, e) =>{ OverlayForm.MainForm.ShowTopRightLabel("麥克風 ↓","a2 b6 a4"); };
|
||||
micDownButton.MouseUp += (sender, e) => { OverlayForm.MainForm.RedisplayTopRigthLabel(); };
|
||||
this.Controls.Add(micDownButton);
|
||||
|
||||
|
||||
@ -2017,65 +1955,56 @@ namespace DualScreenDemo
|
||||
|
||||
private void MaleKeyButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
//verlayForm.MainForm.ShowTopRightLabelTime(" 男調 ");
|
||||
if (SerialPortManager.mySerialPort != null && SerialPortManager.mySerialPort.IsOpen)
|
||||
{
|
||||
|
||||
byte[] commandBytesIncreasePitch1 = new byte[] { 0xA2, 0x7F, 0xA4 };
|
||||
SerialPortManager.mySerialPort.Write(commandBytesIncreasePitch1, 0, commandBytesIncreasePitch1.Length);
|
||||
OverlayForm.MainForm.HideAllLabels();
|
||||
//OverlayForm.MainForm.HideAllLabels();
|
||||
byte[] commandBytesDecreasePitch = new byte[] { 0xA2, 0xB2, 0xA4 };
|
||||
SerialPortManager.mySerialPort.Write(commandBytesDecreasePitch, 0, commandBytesDecreasePitch.Length);
|
||||
OverlayForm.MainForm.HideAllLabels();
|
||||
//OverlayForm.MainForm.HideAllLabels();
|
||||
SerialPortManager.mySerialPort.Write(commandBytesDecreasePitch, 0, commandBytesDecreasePitch.Length);
|
||||
OverlayForm.MainForm.HideAllLabels();
|
||||
//OverlayForm.MainForm.HideAllLabels();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("串口未開啟,無法發送降調指令。");
|
||||
}
|
||||
OverlayForm.MainForm.ShowMaleKeyLabel();
|
||||
|
||||
}
|
||||
|
||||
private void FemaleKeyButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
//OverlayForm.MainForm.ShowTopRightLabelTime(" 女調 ");
|
||||
if (SerialPortManager.mySerialPort != null && SerialPortManager.mySerialPort.IsOpen)
|
||||
{
|
||||
|
||||
byte[] commandBytesIncreasePitch1 = new byte[] { 0xA2, 0x7F, 0xA4 };
|
||||
SerialPortManager.mySerialPort.Write(commandBytesIncreasePitch1, 0, commandBytesIncreasePitch1.Length);
|
||||
OverlayForm.MainForm.HideAllLabels();
|
||||
|
||||
|
||||
//OverlayForm.MainForm.HideAllLabels();
|
||||
byte[] commandBytesIncreasePitch = new byte[] { 0xA2, 0xB1, 0xA4 };
|
||||
SerialPortManager.mySerialPort.Write(commandBytesIncreasePitch, 0, commandBytesIncreasePitch.Length);
|
||||
OverlayForm.MainForm.HideAllLabels();
|
||||
//OverlayForm.MainForm.HideAllLabels();
|
||||
SerialPortManager.mySerialPort.Write(commandBytesIncreasePitch, 0, commandBytesIncreasePitch.Length);
|
||||
OverlayForm.MainForm.HideAllLabels();
|
||||
|
||||
|
||||
|
||||
//OverlayForm.MainForm.HideAllLabels();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
MessageBox.Show("串口未開啟,無法發送升調指令。");
|
||||
}
|
||||
OverlayForm.MainForm.ShowFemaleKeyLabel();
|
||||
|
||||
}
|
||||
|
||||
private void StandardKeyButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
OverlayForm.MainForm.ShowStandardKeyLabel();
|
||||
OverlayForm.MainForm.ShowTopRightLabelTime(" 標準調 ");
|
||||
|
||||
if (SerialPortManager.mySerialPort != null && SerialPortManager.mySerialPort.IsOpen)
|
||||
{
|
||||
|
||||
byte[] commandBytesIncreasePitch = new byte[] { 0xA2, 0x7F, 0xA4 };
|
||||
SerialPortManager.mySerialPort.Write(commandBytesIncreasePitch, 0, commandBytesIncreasePitch.Length);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2085,15 +2014,11 @@ namespace DualScreenDemo
|
||||
|
||||
private void PitchUpButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
OverlayForm.MainForm.ShowKeyUpLabel();
|
||||
|
||||
|
||||
OverlayForm.MainForm.ShowTopRightLabelTime("升 1# 調 ");
|
||||
if (SerialPortManager.mySerialPort != null && SerialPortManager.mySerialPort.IsOpen)
|
||||
{
|
||||
|
||||
{
|
||||
byte[] commandBytesIncreasePitch = new byte[] { 0xA2, 0xB1, 0xA4 };
|
||||
SerialPortManager.mySerialPort.Write(commandBytesIncreasePitch, 0, commandBytesIncreasePitch.Length);
|
||||
|
||||
SerialPortManager.mySerialPort.Write(commandBytesIncreasePitch, 0, commandBytesIncreasePitch.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2103,15 +2028,11 @@ namespace DualScreenDemo
|
||||
|
||||
private void PitchDownButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
OverlayForm.MainForm.ShowKeyDownLabel();
|
||||
|
||||
|
||||
OverlayForm.MainForm.ShowTopRightLabelTime("降 1# 調 ");
|
||||
if (SerialPortManager.mySerialPort != null && SerialPortManager.mySerialPort.IsOpen)
|
||||
{
|
||||
|
||||
byte[] commandBytesDecreasePitch = new byte[] { 0xA2, 0xB2, 0xA4 };
|
||||
SerialPortManager.mySerialPort.Write(commandBytesDecreasePitch, 0, commandBytesDecreasePitch.Length);
|
||||
|
||||
SerialPortManager.mySerialPort.Write(commandBytesDecreasePitch, 0, commandBytesDecreasePitch.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2131,18 +2052,12 @@ namespace DualScreenDemo
|
||||
if (isWaiting) return;
|
||||
|
||||
isWaiting = true;
|
||||
|
||||
// 发送串口命令
|
||||
SendCommandThroughSerialPort("a2 53 a4");
|
||||
|
||||
// 显示提示信息
|
||||
OverlayForm.MainForm.HideAllLabels();
|
||||
OverlayForm.MainForm.ShowServiceBell();
|
||||
//OverlayForm.MainForm.HideAllLabels();
|
||||
OverlayForm.MainForm.ShowTopRightLabel("服務鈴","a2 53 a4");
|
||||
// 延迟3秒
|
||||
await Task.Delay(3000);
|
||||
|
||||
// 隐藏提示信息
|
||||
//OverlayForm.MainForm.HideServiceBellLabel();
|
||||
|
||||
isWaiting = false;
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ namespace DualScreenDemo
|
||||
|
||||
[STAThread]
|
||||
static void Main() {
|
||||
Console.WriteLine("Server V.1.2.0 20250703");
|
||||
Console.WriteLine("Server V.1.2.1 20250716");
|
||||
if(Utils.Env.GetBool("IsCursor", true))Cursor.Hide();
|
||||
AppDomain.CurrentDomain.ProcessExit += (s, e) => Cursor.Show();
|
||||
//Console.WriteLine("正在與中控取得聯繫...");
|
||||
|
@ -143,7 +143,7 @@ namespace DualScreenDemo
|
||||
SongList.Add(closeSong);
|
||||
|
||||
if (IsFormReady(OverlayForm.MainForm))
|
||||
OverlayForm.MainForm.nextSongLabel.Visible = false;
|
||||
OverlayForm.MainForm.topLeftLabel.Visible = false;
|
||||
|
||||
VideoPlayerForm.Instance.PlayNextSong();
|
||||
PrimaryForm.Instance.logout();
|
||||
|
@ -1098,8 +1098,7 @@ namespace DualScreenDemo
|
||||
string labelText = isVocalRemoved ? "無人聲" : "有人聲";
|
||||
// 显示标签
|
||||
// 修改成新標籤
|
||||
OverlayForm.MainForm.HideAllLabels();
|
||||
OverlayForm.MainForm.ShowOriginalSongLabel(labelText);
|
||||
OverlayForm.MainForm.ShowTopRightLabel(labelText);
|
||||
//await Task.Delay(3000);
|
||||
// 隐藏标签
|
||||
//OverlayForm.MainForm.HideOriginalSongLabel();
|
||||
|
Loading…
x
Reference in New Issue
Block a user