From 963d9f88eb84412fcdad128fd035a9201cdb311b Mon Sep 17 00:00:00 2001 From: William Date: Sat, 17 Apr 2021 13:46:56 +0300 Subject: [PATCH] Wine support --- AcapellaDownloader/Form1.cs | 23 +++++++++++++++++++---- AcapellaDownloader/Program.cs | 8 +++++++- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/AcapellaDownloader/Form1.cs b/AcapellaDownloader/Form1.cs index ac066d0..b4e7697 100644 --- a/AcapellaDownloader/Form1.cs +++ b/AcapellaDownloader/Form1.cs @@ -7,6 +7,7 @@ using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; +using Microsoft.Win32; using NAudio.Wave; using NAudio.Wave.SampleProviders; @@ -16,7 +17,7 @@ public partial class Form1 : Form { private float VoiceVolume = 1f; private float Pitch = 1f; - private const string _noText = "You did not enter the text"; + private const string _noText = "You did not enter any text"; private const string _noVoice = "Please select a voice"; public const string downloadError = "A download error has occurred"; public const string downloaded = "Done!"; @@ -28,6 +29,10 @@ public Form1() private void btnDownload_Click(object sender, EventArgs e) { string soundLink = GetGUISoundLink(); + if (soundLink == "") + { + return; + } SaveFileDialog dialog = new SaveFileDialog(); dialog.Filter = "MP3 File (*.mp3)|*.mp3"; dialog.FileName = "tts.mp3"; @@ -49,6 +54,7 @@ private void btnDownload_Click(object sender, EventArgs e) using (var wc = new WebClient()) { wc.DownloadFile(soundLink, dialog.FileName); + MessageBox.Show(downloaded); } @@ -57,8 +63,7 @@ private void btnDownload_Click(object sender, EventArgs e) } private void Form1_Load(object sender, EventArgs e) - { - + { for (int i = 0; i < WaveOut.DeviceCount; i++) { WaveOutCapabilities WOC = WaveOut.GetCapabilities(i); @@ -68,7 +73,17 @@ private void Form1_Load(object sender, EventArgs e) var langs = Voices.VoiceList.GroupBy(i => i.Lang).Select(y => y.FirstOrDefault()); foreach (var lang in langs) { - var node = tvLanguages.Nodes.Add(new CultureInfo(lang.Lang.Replace("_", "-")).DisplayName); + TreeNode node; + try + { + node = tvLanguages.Nodes.Add(new CultureInfo(lang.Lang.Replace("_", "-")).DisplayName); + } + catch (Exception) + { + //Wine Workaround + node = tvLanguages.Nodes.Add(lang.Lang); + } + foreach (var v in Voices.VoiceList.Where(n=>n.Lang==lang.Lang).ToArray()) { node.Nodes.Add(v.Name); diff --git a/AcapellaDownloader/Program.cs b/AcapellaDownloader/Program.cs index 446a00b..7d6cb28 100644 --- a/AcapellaDownloader/Program.cs +++ b/AcapellaDownloader/Program.cs @@ -1,5 +1,7 @@ using System; using System.Windows.Forms; +using Microsoft.Win32; + namespace AcapellaDownloader { static class Program @@ -13,7 +15,11 @@ static void Main() { bOldWindows = true; } - + if (Registry.CurrentUser.OpenSubKey("Software\\Wine", false) != null) + { + //Wine! + bOldWindows = true; + } string[] commandLineArgs = Environment.GetCommandLineArgs(); if (commandLineArgs.Length > 1) {