diff --git a/sound/.gitignore b/sound/.gitignore new file mode 100644 index 000000000..61c209432 --- /dev/null +++ b/sound/.gitignore @@ -0,0 +1 @@ +*.suo diff --git a/sound/OpenTXSound.sln b/sound/OpenTXSound.sln new file mode 100644 index 000000000..e31aff4ab --- /dev/null +++ b/sound/OpenTXSound.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTXRecorder", "recorder\OpenTXRecorder.csproj", "{8143D08D-1861-42DD-A861-56B15DE42A69}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTXspeaker", "speaker\OpenTXspeaker.csproj", "{BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8143D08D-1861-42DD-A861-56B15DE42A69}.Debug|x86.ActiveCfg = Debug|x86 + {8143D08D-1861-42DD-A861-56B15DE42A69}.Debug|x86.Build.0 = Debug|x86 + {8143D08D-1861-42DD-A861-56B15DE42A69}.Release|x86.ActiveCfg = Release|x86 + {8143D08D-1861-42DD-A861-56B15DE42A69}.Release|x86.Build.0 = Release|x86 + {BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}.Debug|x86.ActiveCfg = Debug|x86 + {BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}.Debug|x86.Build.0 = Debug|x86 + {BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}.Release|x86.ActiveCfg = Release|x86 + {BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/sound/recorder/.gitignore b/sound/recorder/.gitignore new file mode 100644 index 000000000..e307eca41 --- /dev/null +++ b/sound/recorder/.gitignore @@ -0,0 +1,4 @@ +/OpenTXrecorder.suo +/bin/* +/obj/* +*.csproj.user diff --git a/sound/recorder/App.xaml b/sound/recorder/App.xaml new file mode 100644 index 000000000..bc0c857b7 --- /dev/null +++ b/sound/recorder/App.xaml @@ -0,0 +1,8 @@ + + + + + diff --git a/sound/recorder/App.xaml.cs b/sound/recorder/App.xaml.cs new file mode 100644 index 000000000..43d50882a --- /dev/null +++ b/sound/recorder/App.xaml.cs @@ -0,0 +1,32 @@ +/* This file is part of OpenTX Recorder. + * OpenTX Recorder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * OpenTX Recorder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + * + * Copyright 2014 Kjell Kernen */ + +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Windows; + +namespace OpenTXrecorder +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/sound/recorder/GPLv3_Logo.png b/sound/recorder/GPLv3_Logo.png new file mode 100644 index 000000000..ba78d4c49 Binary files /dev/null and b/sound/recorder/GPLv3_Logo.png differ diff --git a/sound/recorder/MainWindow.xaml b/sound/recorder/MainWindow.xaml new file mode 100644 index 000000000..ce3423f90 --- /dev/null +++ b/sound/recorder/MainWindow.xaml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sound/recorder/MainWindow.xaml.cs b/sound/recorder/MainWindow.xaml.cs new file mode 100644 index 000000000..8578fd9e2 --- /dev/null +++ b/sound/recorder/MainWindow.xaml.cs @@ -0,0 +1,244 @@ +/* This file is part of OpenTX Recorder. + * OpenTX Recorder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * OpenTX Recorder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + * + * Copyright 2014 Kjell Kernen */ + + +using System; +using System.IO; +using System.Collections.Generic; +using System.Linq; +using System.Media; +using System.Threading; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using System.Windows.Navigation; +using System.Runtime.InteropServices; + +namespace OpenTXrecorder +{ + public partial class MainWindow : Window + { + [DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] + private static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback); + + SentenceTables tables = new SentenceTables(); + Languages languages = new Languages(); + Language curLang; + Sentences sentences = new Sentences(); + int added_files = 0; + bool isRecording = false; + + public MainWindow() + { + SplashScreen splash = new SplashScreen("recorder_logo.png"); + splash.Show(true); + Thread.Sleep(1500); + + InitializeComponent(); + + lvSentences.ItemsSource = sentences; + cbLanguages.ItemsSource = languages; + languages.Add("English", "en"); + languages.Add("Czech", "cz"); + languages.Add("German", "de"); + languages.Add("French", "fr"); + languages.Add("Italian", "it"); + languages.Add("Polish", "pl"); + languages.Add("Portuguese", "pt"); + languages.Add("Swedish", "se"); + languages.Add("Slovak", "sk"); + languages.Add("Spanish", "es"); + curLang = languages[0]; + cbLanguages.SelectedIndex = 0; // Note: Sets current langugage -> triggers loadlanguage() + } + + private void loadLanguage() + { + string[] system_strings; + string[] other_strings; + + try + { + system_strings = System.IO.File.ReadAllLines(@"SOUNDS\" + curLang.sName + @"\SYSTEM\system_sounds.txt"); + other_strings = System.IO.File.ReadAllLines(@"SOUNDS\" + curLang.sName + @"\other_sounds.txt"); + } + catch (IOException) + { + system_strings = tables.default_system_strings[tables.toInt(curLang.sName)]; + other_strings = tables.default_other_strings[tables.toInt(curLang.sName)]; + } + sentences.RemoveRange(0, sentences.Count); + + foreach (string str in system_strings) + sentences.Add(str, @"SOUNDS\" + curLang.sName + @"\SYSTEM\"); + + sentences.Add(@";^ System Sounds ^;", ""); + + foreach (string str in other_strings) + sentences.Add(str, @"SOUNDS\" + curLang.sName + @"\"); + + lvSentences.Items.Refresh(); // Workaround - Two way binding is better + } + + private void saveLanguage() + { + System.IO.Directory.CreateDirectory(@"SOUNDS\" + curLang.sName + @"\SYSTEM"); + StreamWriter sw = File.CreateText(@"SOUNDS\" + curLang.sName + @"\SYSTEM\system_sounds.txt"); + int i; + for (i = 0; sentences[i].fileName != ""; i++) + { + sw.WriteLine(sentences[i].toRaw()); + } + sw.Close(); + sw = File.CreateText(@"SOUNDS\" + curLang.sName + @"\other_sounds.txt"); + for (i++; i < sentences.Count; i++) + { + sw.WriteLine(sentences[i].toRaw()); + } + sw.Close(); + } + + private void cbLanguages_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + curLang = (Language)e.AddedItems[0]; + loadLanguage(); + } + + private void lvSentences_MouseDoubleClick(object sender, MouseButtonEventArgs e) + { + if (this.lvSentences.SelectedItems.Count < 1) return; + + Sentence sentence = (Sentence)this.lvSentences.SelectedItem; + if (sentence.fileExists) + { + try + { + SoundPlayer player = new SoundPlayer(sentence.fullPath()); + player.Play(); + } + catch (Exception) { }; // Catch and disregard all media exceptions + } + } + + private void openTXLogo_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) + { + AboutWindow aboutWindow = new AboutWindow(); + aboutWindow.ShowDialog(); + } + + private void buttonAddItem_Click(object sender, RoutedEventArgs e) + { + added_files++; + sentences.Add(new Sentence("new_file_" + added_files.ToString() + ";New Description;New Voice Message", @"SOUNDS\" + curLang.sName + @"\")); + this.lvSentences.Items.Refresh(); + this.lvSentences.SelectedIndex = this.lvSentences.Items.Count - 1; + this.lvSentences.ScrollIntoView(this.lvSentences.SelectedItem); + } + + private void btnRecord_Click(object sender, RoutedEventArgs e) + { + if (this.lvSentences.SelectedItems.Count < 1) return; + + if (isRecording) + btnStop_Click(sender, e); + else + { + saveLanguage(); + isRecording = true; + lblRecording.Visibility = System.Windows.Visibility.Visible; + Sentence sentence = (Sentence)this.lvSentences.SelectedItem; + string path = sentence.fullPath(); + Directory.CreateDirectory(Path.GetDirectoryName(path)); // Create directory if it doesn't exist + System.IO.File.WriteAllText(path, ""); // Creates and flushes a file if it does not exist + + mciSendString("open new Type waveaudio Alias recsound", "", 0, 0); + mciSendString("record recsound", "", 0, 0); + } + } + + private void btnStop_Click(object sender, RoutedEventArgs e) + { + if (this.lvSentences.SelectedItems.Count < 1) return; + + int index = this.lvSentences.SelectedIndex; + lblRecording.Visibility = System.Windows.Visibility.Hidden; + isRecording = false; + Sentence sentence = (Sentence)this.lvSentences.SelectedItem; + mciSendString("save recsound " + sentence.fullPath(), "", 0, 0); + mciSendString("close recsound ", "", 0, 0); + + loadLanguage(); // Called to refresh the sentence data of the current langugae + this.lvSentences.SelectedIndex = index; + } + + private void btnPlay_Click(object sender, RoutedEventArgs e) + { + lblRecording.Visibility = System.Windows.Visibility.Hidden; + lvSentences_MouseDoubleClick(sender, null); + } + } + + public class Language + { + public string lName { get; set; } + public string sName { get; set; } + } + + public class Languages : List + { + public void Add(string longer, string shorter) + { + this.Add(new Language { lName = longer, sName = shorter }); + } + } + + public class Sentence + { + public string fileName { get; set; } + public string description { get; set; } + public string voiceString { get; set; } + public string path { get; set; } + public bool fileExists { get; set; } + + public Sentence(string rawString, string dirPath) + { + string[] words = rawString.Split(';'); + fileName = words[0].TrimStart(' ', '\"'); + description = words[1]; + voiceString = words[2].TrimEnd('\"', ',', ' '); + path = dirPath; + fileExists = File.Exists(fullPath()); + } + + public string fullPath() + { + return System.AppDomain.CurrentDomain.BaseDirectory + path + fileName + ".wav"; + } + + public string toRaw() + { + return "\"" + fileName + ";" + description + ";" + voiceString + "\","; + } + } + + public class Sentences : List + { + public void Add(string rawString, string dirPath) + { + this.Add(new Sentence(rawString, dirPath)); + } + } +} diff --git a/sound/recorder/OpenTXRecorder.csproj b/sound/recorder/OpenTXRecorder.csproj new file mode 100644 index 000000000..74a04e914 --- /dev/null +++ b/sound/recorder/OpenTXRecorder.csproj @@ -0,0 +1,169 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {8143D08D-1861-42DD-A861-56B15DE42A69} + WinExe + Properties + OpenTXrecorder + OpenTXrecorder + v4.0 + Client + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + icon.ico + + + + + + + + + + + + 4.0 + + + + + + + + MSBuild:Compile + Designer + + + AboutWindow.xaml + + + App.xaml + + + + MSBuild:Compile + Designer + + + MainWindow.xaml + Code + + + Designer + MSBuild:Compile + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + + + + False + Microsoft .NET Framework 4 Client Profile %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sound/recorder/Properties/AssemblyInfo.cs b/sound/recorder/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..d01499fd5 --- /dev/null +++ b/sound/recorder/Properties/AssemblyInfo.cs @@ -0,0 +1,71 @@ +/* This file is part of OpenTX Recorder. +* OpenTX Recorder is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. + +* OpenTX Recorder is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. + +* You should have received a copy of the GNU General Public License +* along with Foobar. If not, see . +* +* Copyright 2014 Kjell Kernen */ + +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenTX Recorder")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("OpenTX Team")] +[assembly: AssemblyProduct("OpenTX Recorder")] +[assembly: AssemblyCopyright("Copyright © Kjell Kernen 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("0.1")] +[assembly: AssemblyFileVersion("0.1")] diff --git a/sound/recorder/Properties/Resources.Designer.cs b/sound/recorder/Properties/Resources.Designer.cs new file mode 100644 index 000000000..04f945574 --- /dev/null +++ b/sound/recorder/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace OpenTXrecorder.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenTXrecorder.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/speaker/Properties/Resources.resx b/sound/recorder/Properties/Resources.resx similarity index 100% rename from speaker/Properties/Resources.resx rename to sound/recorder/Properties/Resources.resx diff --git a/sound/recorder/Properties/Settings.Designer.cs b/sound/recorder/Properties/Settings.Designer.cs new file mode 100644 index 000000000..ffa4c812a --- /dev/null +++ b/sound/recorder/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace OpenTXrecorder.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/speaker/Properties/Settings.settings b/sound/recorder/Properties/Settings.settings similarity index 100% rename from speaker/Properties/Settings.settings rename to sound/recorder/Properties/Settings.settings diff --git a/sound/recorder/aboutWindow.xaml b/sound/recorder/aboutWindow.xaml new file mode 100644 index 000000000..95e440614 --- /dev/null +++ b/sound/recorder/aboutWindow.xaml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sound/recorder/aboutWindow.xaml.cs b/sound/recorder/aboutWindow.xaml.cs new file mode 100644 index 000000000..8e09efc76 --- /dev/null +++ b/sound/recorder/aboutWindow.xaml.cs @@ -0,0 +1,62 @@ +/* This file is part of OpenTX Recorder. + * OpenTX Recorder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * OpenTX Recorder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + * + * Copyright 2014 Kjell Kernen */ + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; +using System.Windows.Navigation; + + +namespace OpenTXrecorder +{ + public partial class AboutWindow : Window + { + public AboutWindow() + { + InitializeComponent(); + Assembly app = Assembly.GetExecutingAssembly(); + + AssemblyTitleAttribute title = (AssemblyTitleAttribute)app.GetCustomAttributes(typeof(AssemblyTitleAttribute), false)[0]; + AssemblyProductAttribute product = (AssemblyProductAttribute)app.GetCustomAttributes(typeof(AssemblyProductAttribute), false)[0]; + AssemblyCopyrightAttribute copyright = (AssemblyCopyrightAttribute)app.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0]; + AssemblyCompanyAttribute company = (AssemblyCompanyAttribute)app.GetCustomAttributes(typeof(AssemblyCompanyAttribute), false)[0]; + Version version = app.GetName().Version; + + this.Title = String.Format("About {0}", title.Title); + this.lblProductName.Content = product.Product; + this.lblVersion.Content = String.Format("Version {0}", version.ToString()); + this.lblCopyright.Content = copyright.Copyright.ToString(); + this.lblCompanyName.Content = company.Company; + } + + private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e) + { + Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri)); + e.Handled = true; + } + } +} diff --git a/speaker/icon.ico b/sound/recorder/icon.ico similarity index 100% rename from speaker/icon.ico rename to sound/recorder/icon.ico diff --git a/sound/recorder/play.png b/sound/recorder/play.png new file mode 100644 index 000000000..15f2da559 Binary files /dev/null and b/sound/recorder/play.png differ diff --git a/sound/recorder/record.png b/sound/recorder/record.png new file mode 100644 index 000000000..7ee74f7fc Binary files /dev/null and b/sound/recorder/record.png differ diff --git a/sound/recorder/recorder_logo.png b/sound/recorder/recorder_logo.png new file mode 100644 index 000000000..5998c34d3 Binary files /dev/null and b/sound/recorder/recorder_logo.png differ diff --git a/sound/recorder/recorder_logo.xcf b/sound/recorder/recorder_logo.xcf new file mode 100644 index 000000000..5ac20d303 Binary files /dev/null and b/sound/recorder/recorder_logo.xcf differ diff --git a/sound/recorder/recorder_logo_small.png b/sound/recorder/recorder_logo_small.png new file mode 100644 index 000000000..b505a2f3c Binary files /dev/null and b/sound/recorder/recorder_logo_small.png differ diff --git a/sound/recorder/sentencetables.cs b/sound/recorder/sentencetables.cs new file mode 100644 index 000000000..46d30d921 --- /dev/null +++ b/sound/recorder/sentencetables.cs @@ -0,0 +1,2455 @@ +/* This file is part of OpenTX Recorder. + * OpenTX Recorder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * OpenTX Recorder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + * + * Copyright 2014 Kjell Kernen */ + +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Windows; + +namespace OpenTXrecorder +{ + public class SentenceTables + { + private static string[] default_pl_system_strings = + { + "0000;0;0", + "0001;1;1", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;200;200", + "0102;300;300", + "0103;400;400", + "0104;500;500", + "0105;600;600", + "0106;700;700", + "0107;800;800", + "0108;900;900", + "0109;;1000", + "0110;TISIACE;tisiace", + "0111;JEDNA;jedna", + "0112;JEDNO;jedno", + "0113;DWIE;dwie", + "0114;CALA;cela", + "0115;CALE;cale", + "0116;CALYCH;calych", + "0117;MINUS;minus", + + "0120;Female number;", + "0121;Female number;", + "0122;Female number;", + "0123;Female number;", + "0124;Female number;", + "0125;Female number;", + "0126;Female number;", + "0127;Female number;", + "0128;Female number;", + "0129;Female number;", + + "0160;volt 1;wolt", + "0161;volt 2;wolty", + "0162;volt 3;", + "0163;volt 4;", + "0164;amps 1;", + "0165;amps 2;", + "0166;amps 3;", + "0167;amps 4;", + "0168;mps 1;", + "0169;mps 2;", + "0170;mps 3;", + "0171;mps 4;", + "0172;spare 1;", + "0173;spare 2;", + "0174;spare 3;", + "0175;spare 4;", + "0176;kmh 1;", + "0177;kmh 2;", + "0178;kmh 3;", + "0179;kmh 4;", + "0180;meter 1;", + "0181;meter 2;", + "0182;meter 3;", + "0183;meter 4;", + "0184;degrees 1;", + "0185;degrees 2;", + "0186;degrees 3;", + "0187;degrees 4;", + "0188;percent 1;", + "0189;percent 2;", + "0190;percent 3;", + "0191;percent 4;", + "0192;milliamps 1;", + "0193;milliamps 2;", + "0194;milliamps 3;", + "0195;milliamps 4;", + "0196;mAh 1;", + "0197;mAh 2;", + "0198;mAh 3;", + "0199;mAh 4;", + "0200;watt 1;", + "0201;watt 2;", + "0202;watt 3;", + "0203;watt 4;", + "0204;db 1;", + "0205;db 2;", + "0206;db 3;", + "0207;db 4;", + "0208;feet 1;", + "0209;feet 2;", + "0210;feet 3;", + "0211;feet 4;", + "0212;knot 1;", + "0213;knot 2;", + "0214;knot 3;", + "0215;knot 4;", + "0216;hours 1;", + "0217;hours 2;", + "0218;hours 3;", + "0219;hours 4;", + "0220;minutes 1;", + "0221;minutes 2;", + "0222;minutes 3;", + "0223;minutes 4;", + "0224;secondds 1;", + "0225;secondds 2;", + "0226;secondds 3;", + "0227;secondds 4;", + "0228;rpm 1;", + "0229;rpm 2;", + "0230;rpm 3;", + "0231;rpm 4;", + "0232;g 1;", + "0233;g 2;", + "0234;g 3;", + "0235;g 4;", + "0250;Timer1;", + "0251;Timer2;", + "0252;RSSI Tx;", + "0253;RSSI Rx;", + "0254;A1;", + "0255;A2;", + "0256;Altitude;", + "0257;RPM;", + "0258;Fuel;", + "0259;T1;", + "0260;T2;", + "0261;Speed;", + "0262;Distance;", + "0263;GPS Altitude;", + "0264;LiPo Elements;", + "0265;LiPo Total;", + "0266;VFAS;", + "0267;Current;", + "0268;Consumption;", + "0269;Telemetry Power;", + "0270;Accel X;", + "0271;Accel Y;", + "0272;Accel Z;", + "0217;HDG;", + "0218;Vario;", + }; + + private static string[] default_pl_other_strings = + { + "atti;attitude;", + "batcrit;battery critical;", + "batlow;low battery;", + "camcenter;camera center;", + "camfix;camera fixed;", + "cammanual;camera manual;", + "flapsdn;flaps down;", + "flapsup;flaps up;", + "fltmode1;flight mode 1;", + "fltmode2;flight mode 2;", + "fltmode3;flight mode 3;", + "fltmode4;flight mode 4;", + "fltmode5;flight mode 5;", + "fltmode6;flight mode 6;", + "fltmode7;flight mode 7;", + "fltmode8;flight mode 8;", + "fltmode9;flight mode 9;", + "fsoff;failsafe off;", + "fson;failsafe on;", + "geardn;gear down;", + "gearup;gear upp;", + "gps;gps;", + "hirates;hi rates;", + "htoff;head tracker off;", + "hton;head tracker on;", + "ioc;ioc;", + "iocoff;ioc off;", + "lowrates;lowrates;", + "manual;manual;", + "normal;normal;", + "nrmmod;normal mode;", + "thrhold;throttle locked;", + "thrrel;throttle released;", + }; + + private static string[] default_sk_system_strings = + { + "0000;0;0", + "0001;1;jedna", + "0002;2;dva", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;200;200", + "0102;300;300", + "0103;400;400", + "0104;500;500", + "0105;600;600", + "0106;700;700", + "0107;800;800", + "0108;900;900", + "0109;1000;1000", + "0110;2000;dvetisíc;", + "0111;JEDEN;jeden", + "0112;JEDNO;jedno", + "0113;DVE;dve", + "0114;CELA;celá", + "0115;CELE;celá", + "0116;CELYCH;celýnch", + "0117;MINUS;minus", + "0118;volt 1;volt", + "0119;volt 2;volty", + "0120;volt 3;voltov", + "0121;volt 4;volta", + "0122;amps 1;ampér", + "0123;amps 2;ampére", + "0124;amps 3;ampérov", + "0125;amps 4;ampéra", + "0126;mps 1;meter za sekundu", + "0127;mps 2;metre za sekundu", + "0128;mps 3;metrov za sekundu", + "0129;mps 4;metra za sekundu", + "0130;spare 1;jednotka", + "0131;spare 2;jednotky", + "0132;spare 3;jednotiek", + "0133;spare 4;jednotky", + "0134;kmh 1;kilometer za hodinu", + "0135;kmh 2;kilometre za hodinu", + "0136;kmh 3;kilometrov za hodinu", + "0137;kmh 4;kilometra za hodinu", + "0138;meter 1;meter", + "0139;meter 2;metre", + "0140;meter 3;metrov", + "0141;meter 4;metra", + "0142;degrees 1;stupeň", + "0143;degrees 2;stupně", + "0144;degrees 3;stupňov", + "0145;degrees 4;stupňa", + "0146;percent 1;percento", + "0147;percent 2;percentá", + "0148;percent 3;percent", + "0149;percent 4;percenta", + "0150;milliamps 1;miliampér", + "0151;milliamps 2;miliampére", + "0152;milliamps 3;miliampérov", + "0153;milliamps 4;miliampéra", + "0154;mAh 1;miliampérhodina", + "0155;mAh 2;miliampérhodiny", + "0156;mAh 3;miliampérhodín", + "0157;mAh 4;miliampérhodiny", + "0158;watt 1;vat", + "0159;watt 2;vaty", + "0160;watt 3;vatov", + "0161;watt 4;vatu", + "0162;db 1;decibel", + "0163;db 2;decibely", + "0164;db 3;decibelov", + "0165;db 4;decibela", + "0166;feet 1;stopa", + "0167;feet 2;stopy", + "0168;feet 3;stuop", + "0169;feet 4;stopy", + "0170;knot 1;uzol", + "0171;knot 2;uzly", + "0172;knot 3;uzlov", + "0173;knot 4;uzla", + "0174;hours 1;hodina", + "0175;hours 2;hodiny", + "0176;hours 3;hodín", + "0177;hours 4;hodiny", + "0178;minutes 1;minůta", + "0179;minutes 2;minůty", + "0180;minutes 3;minůt", + "0181;minutes 4;minůty", + "0182;secondds 1;sekunda", + "0183;secondds 2;sekundy", + "0184;secondds 3;sekund", + "0185;secondds 4;sekundy", + "0186;rpm 1;otáčka za minůtu", + "0187;rpm 2;otáčky za minůtu", + "0188;rpm 3;otáčok za minůtu", + "0189;rpm 4;otáčky za minůtu", + "0190;g 1;gé", + "0191;g 2;gé", + "0192;g 3;gé", + "0193;g 4;gé", + "a1_org;a1 low;", + "a1_red;a1 critical;", + "a2_org;a2 low;", + "a2_red;a2 critical;", + "endtrim;maximum trim reached;", + "inactiv;inactivity alarm;", + "lowbatt;radio battery low;", + "midtrim;trim center;", + "rssi_org;rf signal low;", + "rssi_red;rf signal critical;", + "swalert;switch warning;", + "swr_red;radio antenna defective;", + "tada;Start Sound;", + "telemko;telemetry lost;", + "telemok;telemetry recover;", + "thralert;throttle warning;", + "timer10;10 seconds;", + "timer20;20 seconds;", + "timer30;30 seconds;", + "timerlt3;timer sound;" + }; + + private static string[] default_sk_other_strings = + { + "atti;attitude;", + "batcrit;battery critical;", + "batlow;low battery;", + "camcenter;camera center;", + "camfix;camera fixed;", + "cammanual;camera manual;", + "flapsdn;flaps down;", + "flapsup;flaps up;", + "fltmode1;flight mode 1;", + "fltmode2;flight mode 2;", + "fltmode3;flight mode 3;", + "fltmode4;flight mode 4;", + "fltmode5;flight mode 5;", + "fltmode6;flight mode 6;", + "fltmode7;flight mode 7;", + "fltmode8;flight mode 8;", + "fltmode9;flight mode 9;", + "fsoff;failsafe off;", + "fson;failsafe on;", + "geardn;gear down;", + "gearup;gear upp;", + "gps;gps;", + "hirates;hi rates;", + "htoff;head tracker off;", + "hton;head tracker on;", + "ioc;ioc;", + "iocoff;ioc off;", + "lowrates;lowrates;", + "manual;manual;", + "normal;normal;", + "nrmmod;normal mode;", + "thrhold;throttle locked;", + "thrrel;throttle released;" + }; + + private static string[] default_es_system_strings = + { + "0000;0;0", + "0001;1;1", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;;ciento", + "0102;;doscientos", + "0103;;trescientos", + "0104;;cuatrocientos", + "0105;;quinientos", + "0106;;sescientos", + "0107;;setecientos", + "0108;;ochocientos", + "0109;;nuevecientos", + "0110;;mil", + "0111;;coma", + "0112;;un", + "0113;;una", + "0114;;y", + "0115;;meno", + "0116;;hora", + "0117;;horas", + "0118;;minuto", + "0119;;minutos", + "0120;;segundo", + "0121;;segundos", + "0122;;Voltio", + "0123;;ampério", + "0124;;metros por segundo", + "0125;;", + "0126;;kilómetro por hora", + "0127;;metros", + "0128;;grados", + "0129;;por ciento", + "0130;;miliamperios", + "0131;;miliamperios por hora", + "0132;;vatio", + "0133;;db", + "0134;;pés", + "0135;;nós", + "0136;;horas", + "0137;;minutos", + "0138;;segundos", + "0139;;RPM", + "0140;;g", + "0141;;cronómetro", + "0142;;cronómetro", + "0143;;transmisión", + "0144;;recepción", + "0145;;A1", + "0146;;A2", + "0147;;altitud", + "0148;;motor", + "0149;;combustible", + "0150;;temperatura", + "0151;;temperatura", + "0152;;velocidad", + "0153;;distancia", + "0154;;altitude", + "0155;;célula lipo", + "0156;;Total lipo", + "0157;;voltaje", + "0158;;corriente", + "0159;;consumo", + "0160;;potencia", + "0161;;aceleración X", + "0162;;aceleración Y", + "0163;;aceleración Z", + "0164;;dirección", + "0165;;variómetro", + "0166;;minimo", + "0167;;máximo", + "a1_org;;Alarma A1", + "a1_red;;A1 crítica", + "a2_org;;Alarma A2", + "a2_red;;A2 crítica", + "eebad;;eeprom corrompida", + "eeformat;;Formateo de eeprom en curso", + "endtrim;;trim al máximo", + "error;;error", + "highmah;;assorbimiento elevado", + "hightemp;;temperatura elevada", + "inactiv;;me tienes abandonada", + "lowbatt;;batería del transmisor baja", + "midpot;;potenciómetro centrado", + "midtrim;;trim centrado", + "rssi_org;;recepcion de señal baja", + "rssi_red;;recepción de señal crítica", + "swr_red;;Problemas con la antena del transmisor", + "swalert;;Los interruptores no están en la posición correcta, por favor corrijalo", + "tada;OpenTX Welcome sound;Bienvenida a OpenTX", + "telemko;;Sin telemetría", + "telemok;;Telemetría disponible", + "thralert;;El acelerador está activado, por favor, corrijalo", + "timer10;;10 segundos", + "timer20;;20 segundos", + "timer30;;30 segundos", + "timerlt3;;3 segundos" + }; + + private static string[] default_es_other_strings = + { + "attero;;aterrizaje", + "crowof;;crou, desligado", + "crowon;;crou, activo", + "engoff;;motor apagado", + "flapdn;;flaps abajo", + "flapup;;flaps arriba", + "fltmd1;;fase de vuelo 1", + "fltmd2;;fase de vuelo 2", + "fltmd3;;fase de vuelo 3", + "fltmd4;;fase de vuelo 4", + "fltmd5;;fase de vuelo 5", + "fltmd6;;fase de vuelo 6", + "fltmd7;;fase de vuelo 7", + "fltmd8;;fase de vuelo 8", + "fltmd9;;fase de vuelo 9", + "geardn;;tren abajo.", + "gearup;;tren arriba.", + "lowbat;;bateria baja", + "nrmmod;;modo de vuelo normal", + "spdmod;;modo de velocidad", + "thmmod;;modo de térmica", + "trnoff;;modo de entrenamiento deshabilitado", + "trnon;;modo de entrenamiento activado", + "tohigh;;muy alto", + "tolow;;muy bajo" + }; + + private static string[] default_pt_system_strings = + { + "0000;0;0", + "0001;1;1", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;;cento", + "0102;;duzentos", + "0103;;trezentos", + "0104;;quatrocentos", + "0105;;quinhentos", + "0106;;seiscentos", + "0107;;setecentos", + "0108;;oitocentos", + "0109;;novecentos", + "0110;;mil", + "0111;;virgula", + "0112;;uma", + "0113;;duas", + "0114;;e", + "0115;;menos", + "0116;;hora", + "0117;;horas", + "0118;;minuto", + "0119;;minutos", + "0120;;segundo", + "0121;;segundos", + "0122;;Volt", + "0123;;ampére", + "0124;;metros por segundo", + "0125;;", + "0126;;quilômetros por hora", + "0127;;metros", + "0128;;graus", + "0129;;cento", + "0130;;miliamperes", + "0131;;miliamperes por hora", + "0132;;watt", + "0133;;db", + "0134;;pés", + "0135;;nós", + "0136;;horas", + "0137;;minutos", + "0138;;segundos", + "0139;;RPM", + "0140;;g", + "0141;;cronómetro", + "0142;;cronómetro", + "0143;;transmissão", + "0144;;recepção", + "0145;;A1", + "0146;;A2", + "0147;;altitude", + "0148;;motor", + "0149;;combustível", + "0150;;temperatura", + "0151;;temperatura", + "0152;;velocidade", + "0153;;distância", + "0154;;altitude", + "0155;;célula lipo", + "0156;;Total lipo", + "0157;;tensão", + "0158;;corrente", + "0159;;consumo", + "0160;;potência", + "0161;;aceleração X", + "0162;;aceleração Y", + "0163;;aceleração Z", + "0164;;Direcção", + "0165;;variómetro", + "0166;;mínimo", + "0167;;máximo", + "a1_org;;Alarme A1", + "a1_red;;A1 critica", + "a2_org;;Alarme A2", + "a2_red;;A2 critica", + "eebad;;eeprom corrompida", + "eeformat;;formatação da eeprom em curso", + "endtrim;;trim no máximo", + "error;;erro", + "highmah;;assorbimento elevato", + "hightemp;;temperatura elevata", + "inactiv;;atenção, o rádio foi esquecido ligado, por favor desligue-o", + "midtrim;;trim centrado", + "midpot;;potenciómetro centrado", + "lowbatt;;bateria do rádio fraca", + "rssi_org;;recepção de sinal muito baixa", + "rssi_red;;recepção de sinal crítica", + "swalert;;atenção, certifique-se que os interruptores estão na posição certa", + "swr_red;;Problema com a antena do transmissor", + "tada;;Bem-vindo ao OpenTX", + "thralert;;atenção,acelerador não está no mínimo", + "timer10;;10 segundos", + "timer20;;20 segundos", + "timer30;;30 segundos", + "timerlt3;;três segundo" + }; + + private static string[] default_pt_other_strings = + { + "attero;;aterragem", + "crowof;;crou, desligado", + "crowon;;crou, activo", + "engoff;;motor desligado", + "flapdn;;flaps estendidos", + "flapup;;flaps recolhidos", + "fltmd1;;fase de voo 1", + "fltmd2;;fase de voo 2", + "fltmd3;;fase de voo 3", + "fltmd4;;fase de voo 4", + "fltmd5;;fase de voo 5", + "fltmd6;;fase de vôo 6", + "fltmd7;;fase de voo 7", + "fltmd8;;fase de voo 8", + "fltmd9;;fase de voo 9", + "geardn;;trem, em baixo.", + "gearup;;trem, em cima.", + "lowbat;;bateria fraca", + "nrmmod;;modo de voo normal", + "sigcrt;;sinal crítico", + "siglow;;sinal baixo", + "spdmod;;modo de velocidade", + "thmmod;;modo de térmica", + "trnoff;;modo de treino desligado", + "trnon;;modo de treino ligado", + "tohigh;;muito alto", + "tolow;;muito baixo" + }; + + private static string[] default_cz_system_strings = + { + "0000;0;nula", + "0001;1;jedna", + "0002;2;dva", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;;sto", + "0101;;dvěsta", + "0102;;třista", + "0103;;čtyřista", + "0104;;pětset", + "0105;;šestset", + "0106;;sedmset", + "0107;;osmset", + "0108;;devětset", + "0109;;tisíc", + "0110;;tisíce", + "0111;;jeden", + "0112;;jedno", + "0113;;dvě", + "0114;;celá", + "0115;;celé", + "0116;;celých", + "0117;;mínus", + "0118;;volt", + "0119;;volty", + "0120;;voltů", + "0121;;voltu", + "0122;;ampér", + "0123;;ampéry", + "0124;;ampérů", + "0125;;ampéru", + "0126;;metr za sekundu", + "0127;;metry za sekundu", + "0128;;metrů za sekundu", + "0129;;metru za sekundu", + "0130;;jednotka", + "0131;;jednotky", + "0132;;jednotek", + "0133;;jednotky", + "0134;;kilometr za hodinu", + "0135;;kilometry za hodinu", + "0136;;kilometrů za hodinu", + "0137;;kilometru za hodinu", + "0138;;metr", + "0139;;metry", + "0140;;metrů", + "0141;;metru", + "0142;;stupeň", + "0143;;stupně", + "0144;;stupňů", + "0145;;stupně", + "0146;;procento", + "0147;;procenta", + "0148;;procento", + "0149;;procenta", + "0150;;miliampér", + "0151;;miliampéry", + "0152;;miliampérů", + "0153;;miliampéru", + "0154;;miliampérhodina", + "0155;;miliampérhodiny", + "0156;;miliampérhodin", + "0157;;miliampérhodiny", + "0158;;vat", + "0159;;vaty", + "0160;;vatů", + "0161;;vatu", + "0162;;decibel", + "0163;;decibely", + "0164;;decibelů", + "0165;;decibelu", + "0166;;stopa", + "0167;;stopy", + "0168;;stop", + "0169;;stopy", + "0170;;uzel", + "0171;;uzly", + "0172;;uzlů", + "0173;;uzlu", + "0174;;hodina", + "0175;;hodiny", + "0176;;hodin", + "0177;;hodiny", + "0178;;minuta", + "0179;;minuty", + "0180;;minut", + "0181;;minuty", + "0182;;sekunda", + "0183;;sekundy", + "0184;;sekund", + "0185;;sekundy", + "0186;;otáčka za minutu", + "0187;;otáčky za minutu", + "0188;;otáček za minutu", + "0189;;otáčky za minutu", + "0190;;gé", + "0191;;gé", + "0192;;gé", + "0193;;gé", + "a1_org;;A1,nízká", + "a1_red;;A1,kritická", + "a2_org;;A2,nízká", + "a2_red;;A2,kritická", + "eebad;;neplatná eeprom", + "endtrim;;maximum trimu", + "inactiv;;zapoměl jsi na mě!", + "lowbatt;;baterie rádia je vybitá", + "midtrim;;střed trimu", + "rssi_org;;nízký RF signál", + "rssi_red;;kritický RF signál", + "swalert;;přepínače nejsou ve výchozí poloze", + "swr_red;;problém s anténou rádia", + "tada;;Oupn najn iks", + "telemko;;telemetrie ztracena", + "telemok;;telemetrie je funkční", + "thralert;;plyn není na nule", + "timer10;;deset sekund", + "timer20;;dvacet sekund", + "timer30;;třicet sekund", + "timerlt3;;tři sekund!" + }; + + private static string[] default_cz_other_strings = + { + "bytvybita;;baterie modelu je vybitá", + "klapky0;;klapky jsou vypnuty", + "klapky1;;klapky jsou zapnuty", + "ksignal;;kritický signál!", + "motor0;;motor je vypnut", + "motor1;;motor je aktivován", + "nizko;;jsi příliš nízko", + "nsignal;;nízký signál!", + "palivo;;dochází palivo", + "podvozek0;;podvozek je zasunut", + "podvozek1;;podvozek je vysunut", + "r_norm;;normální režim aktivován", + "r_pristani;;režim přistání aktivován", + "r_rychly;;rychlý režim aktivován", + "r_start;;režim start aktivován", + "r_termik;;termický režim aktivován", + "stpovolen;;start povolen", + "trener0;;trenér je vypnutý", + "trener1;;trenér je zapnut", + "vario0;;vario je zapnuto", + "vario1;;vario je vypnuto", + "vysoko;;jsi příliš vysoko" + }; + + private static string[] default_en_system_strings = + { + "0000;0;0", + "0001;1;1", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;200;200", + "0102;300;300", + "0103;400;400", + "0104;500;500", + "0105;600;600", + "0106;700;700", + "0107;800;800", + "0108;900;900", + "0109;thousand;thousand", + "0111;minus;minus", + "0112;point;point", + "0115;volt;volt", + "0116;volts;volts", + "0117;amp;ampere", + "0118;amps;ampere", + "0119;meter per second;meter per second", + "0120;meters per second;meters per second", + "0123;kmh;k-m-h", + "0124;kmh;k-m-h", + "0125;meter;meter", + "0126;meters;meters", + "0127;degree;degree", + "0128;degrees;degrees", + "0129;percent;percent", + "0130;percent;percent", + "0131;milliamp;milliamp", + "0132;milliamps;milliamps", + "0133;mah;m-a-h", + "0134;mah;m-a-h", + "0135;watt;watt", + "0136;watts;watts", + "0137;db;db", + "0138;db;db", + "0140;feet;feet", + "0141;knot;knot", + "0142;knots;knots", + "0143;hour;hour", + "0144;hours;hours", + "0145;minute;minute", + "0146;minutes;minutes", + "0147;second;second", + "0148;seconds;seconds", + "0149;rpm;r-p-m", + "0150;rpm;r-p-m", + "0151;g;gee", + "0152;g;gees", + "0160;point zero;point zero", + "0161;point one;point one", + "0162;point two;point two", + "0163;point three;point three", + "0164;point four;point four", + "0165;point five;point five", + "0166;point six;point six", + "0167;point seven;point seven", + "0168;point eight;point eight", + "0169;point nine;point nine", + "a1_org;a1 low;a1 low", + "a1_red;a1 critical;a1 critical", + "a2_org;a2 low;a2 low", + "a2_red;a2 critical;a2 critical", + "endtrim;maximum trim reached;maximum trim reached", + "inactiv;inactivity alarm;inactivity alarm", + "lowbatt;radio battery low;radio battery low", + "midtrim;trim center;center", + "rssi_org;rf signal low;rf signal low", + "rssi_red;rf signal critical;rf signal critical", + "swalert;switch warning;switch warning", + "swr_red;radio antenna defective;radio antenna defective", + "tada;Start Sound;welcome to open T-X", + "telemko;telemetry lost;telemetry lost", + "telemok;telemetry recover;telemetry recover", + "thralert;throttle warning;throttle warning", + "timer10;10 seconds;10 seconds", + "timer20;20 seconds;20 seconds", + "timer30;30 seconds;30 seconds", + "timerlt3;timer sound;3 seconds" + }; + + private static string[] default_en_other_strings = + { + "atti;attitude;attitude", + "batcrit;battery critical;battery critical", + "batlow;low battery;low battery", + "camcenter;camera center;camera center", + "camfix;camera fixed;camera fixed", + "cammanual;camera manual;camera manual", + "capacity;capacity;capacity", + "engdis;engine disabled;engine disabled", + "engoff;engine off;engine off", + "engon;engine on;engine on", + "flaps1;flaps 1;flaps 1", + "flaps2;flaps 2;flaps 2", + "flapsdn;flaps down;flaps down", + "flapsup;flaps up;flaps up", + "fltmode1;flight mode one;flight mode one", + "fltmode2;flight mode two;flight mode two", + "fltmode3;flight mode three;flight mode three", + "fltmode4;flight mode four;flight mode four", + "fltmode5;flight mode five;flight mode five", + "fltmode6;flight mode six;flight mode six", + "fltmode7;flight mode seven;flight mode seven", + "fltmode8;flight mode eight;flight mode eight", + "fsoff;failsafe off;failsafe off", + "fson;failsafe on;failsafe on", + "geardn;gear down;gear down", + "gearup;gear upp;gear upp", + "gps;gps;G-P-S", + "horn;horn sound;eeeeeeeee", + "hirates;hi rates;hi rates", + "htoff;head tracker off;head tracker off", + "hton;head tracker on;head tracker on", + "ioc;ioc;ioc", + "iocoff;ioc off;ioc off", + "lowrates;lowrates;lowrates", + "manual;manual;manual", + "normal;normal;normal", + "nrmmod;normal mode;normal mode", + "pouet;small horn;ee , ee", + "shutter;camera shutter sound;klick", + "thrhold;throttle locked;throttle locked", + "thrrel;throttle released;throttle released", + "wizz;wizzing sound;shiss" + }; + + private static string[] default_se_system_strings = + { + "0000;0;0", + "0001;1;en", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;tjugoen", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;trettioen", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;fyrtioen", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;femtioen", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;sextioen", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;sjuttioen", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;åttioen", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;nittioen", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;200;200", + "0102;300;300", + "0103;400;400", + "0104;500;500", + "0105;600;600", + "0106;700;700", + "0107;800;800", + "0108;900;900", + "0109;thousand;tusen", + "0111;minus;minus", + "0112;point;komma", + "0115;volt;volt", + "0116;volts;volt", + "0117;amp;ampere", + "0118;amps;ampere", + "0119;meter per second;meter per sekund", + "0120;meters per second;meter per sekund", + "0123;kmh;kilometer i timmen", + "0124;kmh;kilometer i timmen", + "0125;meter;meter", + "0126;meters;meter", + "0127;degree;grad", + "0128;degrees;grader", + "0129;percent;procent", + "0130;percent;procent", + "0131;milliamp;milliampere", + "0132;milliamps;milliampere", + "0133;mah;milliampere-timme", + "0134;mah;milliampere-timmar", + "0135;watt;watt", + "0136;watts;watt", + "0137;db;dessibell", + "0138;db;dessibell", + "0140;feet;fot", + "0141;knot;knop", + "0142;knots;knop", + "0143;hour;timme", + "0144;hours;timmar", + "0145;minute;minut", + "0146;minutes;minuter", + "0147;second;sekund", + "0148;seconds;sekunder", + "0149;rpm;varv i minuten", + "0150;rpm;varv i minuten", + "0151;g;g", + "0152;g;g", + "0160;point zero;komma noll", + "0161;point one;komma en", + "0162;point two;komma två", + "0163;point three;komma tre", + "0164;point four;komma fyra", + "0165;point five;komma fem", + "0166;point six;komma sex", + "0167;point seven;komma sju", + "0168;point eight;komma åtta", + "0169;point nine;komma nio", + "a1_org;a1 low;a1 låg", + "a1_red;a1 critical;a1 kritisk", + "a2_org;a2 low;a2 låg", + "a2_red;a2 critical;a2 kritisk", + "endtrim;maximum trim reached;maximum trim", + "inact;inactivity alarm;inaktivitets-larm", + "lowbat;radio battery low;Låg radiobatterispänning", + "midtrim;trim center;center", + "rssi_org;rf signal low;Svag radio-signal", + "rssi_red;rf signal critical;Kritisk radio-signal", + "swalert;switch warning;brytar-varning", + "swr_red;;radio-antennen är defekt", + "tada;;Välkommen till open Te Ex", + "telemko;;telemetri förlorad", + "telemok;;telemetri åter", + "thralert;;gas-varning", + "timer10;;10 sekunder", + "timer20;;20 sekunder", + "timer30;;30 sekunder", + "timerlt3;timer sound;3 sekunder" + }; + + private static string[] default_se_other_strings = + { + "atti;;lutning", + "batcrit;;kritisk batteri-nivå", + "batlow;;låg batteri-nivå", + "camcenter;;kamera centrerad", + "cammanual;;manuell kamera-kontroll", + "capacity;;kapacitet", + "engdis;;motor säkrad", + "engoff;;motor avslagen", + "engon;;motor på", + "flaps1;;flaps läge, ett", + "flaps2;;flaps läge två", + "flapsdn;;flaps ned", + "flapsup;;flaps upp", + "fltmode1;;flyg-läge, ett", + "fltmode2;;flyg-läge två", + "fltmode3;;flyg-läge tre", + "fltmode4;;flyg-läge fyra", + "fltmode5;;flyg-läge fem", + "fltmode6;;flyg-läge sex", + "fltmode7;;flyg-läge sju", + "fltmode8;;flyg-läge åtta", + "fsoff;;fäjlsäif avslagen", + "fson;;fäjlsäif på", + "geardn;;landningsställ ned", + "gearup;;landningsställ upp", + "gps;;GPS", + "hirates;;höga nivåer", + "htoff;;head tracker avslagen", + "hton;;head tracker på", + "horn;horn sound;eeeeeeeee", + "ioc;;i o c", + "iocoff;;i o c avslagen", + "lowrates;;låga nivåer", + "manual;;manuell", + "normal;;normal", + "nrmmod;;normalt läge", + "pouet;small horn;ee , ee", + "shutter;camera shutter sound;klick", + "thrhold;;gas säkrad", + "thrrel;;gas osäkrad", + "speed;;hastighet", + "start;;start", + "thermal;;termik", + "wizz;wizzing sound;shiss" + }; + + private static string[] default_it_system_strings = + { + "0000;0;0", + "0001;1;1", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;mila;mila", + "0102;mille;mille", + "0103;virgola;virgola", + "0104;un;un", + "0105;e;e", + "0106;meno;meno", + "0107;ora;ora", + "0108;ore;ore", + "0109;minuto;minuto", + "0110;minuti;minuti", + "0111;secondo;secondo", + "0112;secondi;secondi", + "0113;;volt", + "0114;;ampere", + "0115;;metri per secondo", + "0116;;", + "0117;;chilometri/ora", + "0118;;metri", + "0119;;gradi", + "0120;;percento", + "0121;;milliampere", + "0122;;milliampere/ora", + "0123;;watt", + "0124;;db", + "0125;;piedi", + "0126;;nodi", + "0127;;ore", + "0128;;minuti", + "0129;;secondi", + "0130;;R P M", + "0131;;g", + "0132;;timer", + "0133;;timer", + "0134;;trasmissione", + "0135;;ricezione", + "0136;;A1", + "0137;;A2", + "0138;;altitudine", + "0139;;motore", + "0140;;carburante", + "0141;;temperatura", + "0142;;temperatura", + "0143;;velocità", + "0144;;distanza", + "0145;;altitudine", + "0146;;cella lipo", + "0147;;totale lipo", + "0148;;tensione", + "0149;;corrente", + "0150;;consumo", + "0151;;potenza", + "0152;;accellerazione X", + "0153;;accellerazione Y", + "0154;;accellerazione Z", + "0155;;direzione", + "0156;;variometro", + "0157;;minimo", + "0158;;massimo", + "a1_org;A1 in allarme;A1 in allarme", + "a1_red;A1 critico;A1 critico", + "a2_org;A2 in allarme;A2 in allarme", + "a2_red;A2 critico;A2 critico", + "eebad;eeprom corrotta;eeprom corrotta", + "eeformat;formattazone eeprom in corso;formattazone eeprom in corso", + "endtrim;massimo trim raggiunto;massimo trim raggiunto", + "error;errore;errore", + "highmah;assorbimento elevato;assorbimento elevato", + "hightemp;temperatura elevata;temperatura elevata", + "inactiv;radio inattiva controllare;radio inattiva controllare", + "lowbatt;batteria della radio scarica;batteria della radio scarica", + "midpot;potenziometro centrato;potenziometro centrato", + "midtrim;trim centrato;trim centrato", + "rssi_org;Segnale radio basso;Segnale radio basso", + "rssi_red;Segnale radio critico;Segnale radio critico", + "swalert;interruttori non in posizione, verificare;interruttori non in posizione, verificare", + "swr_red;Problema all'antenna della radio;Problema all'antenna della radio", + "tada;;Benvenuto", + "telemko;Telemetria assente;Telemetria assente", + "telemok;Telemetria disponibile;Telemetria disponibile", + "thralert;controllo motore non in posizione, verificare;controllo motore non in posizione, verificare", + "timer10;dieci secondi;dieci secondi", + "timer20;venti secondi;venti secondi", + "timer30;trenta secondi;trenta secondi", + "timerlt3;timer sound;3 secondi" + }; + + private static string[] default_it_other_strings = + { + "attero;;atterraggiio", + "crowof;;crow off", + "crowon;;crow on", + "engoff;;motore spento", + "flapdn;;flap estesi", + "flapup;;flap rientrati", + "fltmd1;;fase di volo 1", + "fltmd2;;fase di volo 2", + "fltmd3;;fase di volo 3", + "fltmd4;;fase di volo 4", + "fltmd5;;fase di volo 5", + "fltmd6;;fase di volo 6", + "fltmd7;;fase di volo 7", + "fltmd8;;fase di volo 8", + "fltmd9;;fase di volo 9", + "geardn;;carrello aperto", + "gearup;;carrello chiuso", + "gps;;GPS", + "lowbat;;batteria scarica", + "nrmmod;;modo volo normale", + "spdmod;;modo velocità", + "thmmod;;modo termica", + "tohigh;;troppo alto", + "tolow;;troppo basso", + "trnoff;;modalità maestro disattiva", + "trnon;;modalità maestro attiva" + }; + + private static string[] default_de_system_strings = + { + "0000;0;0", + "0001;1;ein", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;1000;tausend", + "0102;;comma;comma", + "0103;;und", + "0104;;minus", + "0105;;uhr", + "0106;;minute", + "0107;;minuten", + "0108;;sekunde", + "0109;;sekunden", + "0110;;Volt", + "0111;;Ampere", + "0112;;Meter pro sekunde", + "0113;;", + "0114;;kilometer pro stunde", + "0115;;Meter", + "0116;;Grad", + "0117;;Prozent", + "0118;;Milliampere", + "0119;;Milliampere pro stunde", + "0120;;Watt", + "0121;;db", + "0122;;Fuesse", + "0123;;Knoten", + "0124;;Uhr", + "0125;;Minuten", + "0126;;Secunden", + "0127;;R P M", + "0128;;g", + "0129;;Timer", + "0130;;Timer", + "0131;;Sendung", + "0132;;Empfang", + "0133;;A1", + "0134;;A2", + "0135;;Hoehe", + "0136;;Motor", + "0137;;Treibstoff", + "0138;;Temperatur", + "0139;;Temperatur", + "0140;;Geschwindigkeit", + "0141;;Ferne", + "0142;;Hoehe", + "0143;;Lipo-Zelle", + "0144;;Zellen gesamt", + "0145;;Spannung", + "0146;;Strom", + "0147;;Verbrauch", + "0148;;Power", + "0149;;Beschleunigung X", + "0150;;Beschleunigung Y", + "0151;;Beschleunigung Z", + "0152;;Richtung", + "0153;;Variometer", + "0154;;Minimum", + "0155;;Maximum", + "a1_org;;A1 schlecht!", + "a1_red;;A1 kritisch!", + "a2_org;;A2 schlecht!", + "a2_red;;A2 kritisch!", + "eebad;;Das EEPROM ist fehlerhaft", + "eeformat;;Das EEPROM ist immer formatiert", + "endtrim;;Maximale trimmung erreicht", + "error;;fehler", + "highmah;;Senderstrom ist zu hoch!", + "hightemp;;Sendertemperatur ist zu hoch!", + "inactiv;;Sender ist inaktiv,bitte Ueberpruefen Sie", + "lowbatt;;Senderakku niedrig", + "midtrim;;Trim zentriert", + "midpot;;Poti zentriert", + "rssi_org;;Funksignal schlecht!", + "rssi_red;;Funksignal kritisch!", + "swr_red;;Problem mit der sender Antenna", + "swalert;;Schalten fehlpositioniert, bitte pruefen", + "tada;Welcome sound;Willkommen", + "thralert;;Gaskanal nicht Null, bitte pruefen", + "timer10;;10 sekunden", + "timer20;;20 sekunden", + "timer30;;30 sekunden", + "timerlt3;;Noch drei Sekunden" }; + + private static string[] default_de_other_strings = + { + "attero;;Landung", + "crowof;;crow aus", + "crowon;;crow ein", + "engoff;;Motor aus", + "flapdn;;Klappen ausgefahren", + "flapup;;Klappen eingefahren", + "fltmd1;;Regime 1", + "fltmd2;;Regime 2", + "fltmd3;;Regime 3", + "fltmd4;;Regime 4", + "fltmd5;;Regime 5", + "fltmd6;;Regime 6", + "fltmd7;;Regime 7", + "fltmd8;;Regime 8", + "fltmd9;;Regime 9", + "geardn;;Fahrwerk ausgefahren", + "gearup;;Fahrwerk eingezogen", + "horn;horn sound;eeeeeeeee", + "lowbat;;Batterie schwach", + "nrmmod;;Normal-Modus ist aktiviert", + "pouet;small horn;ee , ee", + "shutter;camera shutter sound;klick", + "spdmod;;Schnell-Modus ist aktiviert", + "thmmod;;Thermik-Modus ist aktiviert", + "trnon;;Trainer-Modus ein", + "trnoff;;Trainer-Modus aus", + "tohigh;;zu hoch", + "tolow;;zu niedrig", + "wizz;wizzing sound;shiss" + }; + + private static string[] default_fr_system_strings = + { + "0000;0;0", + "0001;1;1", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;200;200", + "0102;300;300", + "0103;400;400", + "0104;500;500", + "0105;600;600", + "0106;700;700", + "0107;800;800", + "0108;900;900", + "0109;1000;Mille", + "0110;;une", + "0111;11;onze", + "0112;21;21", + "0113;31;31", + "0114;41;41", + "0115;51;51", + "0116;61;61", + "0117;71;71", + "0118;81;81", + "0119;.;virgule", + "0120;&;et", + "0121;-;moins", + "0122;<>;bip", + "0123;<>;bip", + "0124;<>;bip", + "0125;V;volts", + "0126;A;ampères", + "0127;ms;mètres par seconde", + "0128;<>;bip", + "0129;kmh;kilomètre heure", + "0130;m;mètres", + "0131;;degrés", + "0132;%;pourcent", + "0133;mA;milliampère", + "0134;mAH;milliampères heure", + "0135;W;watt", + "0136;dB;db", + "0137;;pied", + "0138;;noeud", + "0139;h;heure", + "0140;min;minute", + "0141;sec;secondes", + "0142;;taux par minute", + "0143;G;g", + "0144;<>;bip", + "0144;<>;bip", + "0146;timer;chrono", + "0147;<>;bip", + "0148;;tension", + "0149;;tension", + "0150;;émission", + "0151;;réception", + "0152;;altitude", + "0153;;moteur", + "0154;;carburant", + "0155;;temperature", + "0156;;temperature", + "0157;;vitesse", + "0158;;distance", + "0159;;attitude", + "0160;;élément lipo", + "0161;;total lipo", + "0162;;tension", + "0163;;courant", + "0164;;consomation", + "0165;;puissance", + "0166;;accelération x", + "0167;;accelération y", + "0168;;accelération z", + "0169;;orientation", + "0170;;vario", + "0171;<>;bip", + "0172;<>;bip", + "0173;<>;bip", + "0174;<>;bip", + "0175;<>;bip", + "0176;<>;bip", + "0177;<>;bip", + "0178;<>;bip", + "0179;<>;bip", + "0180;.0;virgule 0", + "0181;.1;virgule 1", + "0182;.2;virgule 2", + "0183;.3;virgule 3", + "0184;.4;virgule 4", + "0185;.5;virgule 5", + "0186;.6;virgule 6", + "0187;.7;virgule 7", + "0188;.8;virgule 8", + "0189;.9;virgule 9", + "190;<>;bip", + "a1_org;a1 low;a1 bas", + "a1_red;a1 critical;a1 critique", + "a2_org;a2 low;a2 bas", + "a2_red;a2 critical;a2 critique", + "eebad;memoire basse;niveau mémoire bas", + "endtrim;trim maximum atteint;trim maximum atteint", + "inact;inactivity alarm;alarme d'innactivité", + "lowbat;radio battery low;batterie transmetteur faible", + "midtrim;trim center;trim centré", + "rssi_org;rf signal low;signal recepteur faible", + "rssi_red;rf signal critical;signal recepteur critique", + "swalert;switch warning;interupteur mal positionné", + "swr_red;radio antenna defective;antenne emeteur defectueuse", + "tada;welcome to opentx;Bienvenue sur Open tx", + "telemko;telemetry lost;télémétrie perdue", + "telemok;telemetry recover;télémétrie retrouvée", + "thralert;throttle warning;mettre les gaz a 0", + "timer10;10 seconds;10 secondes", + "timer20;20 seconds;20 secondes", + "timer30;30 seconds;30 secondes", + "timerlt3;3 seconds;3 secondes" + }; + + private static string[] default_fr_other_strings = + { + "attero;;atterrissage", + "atti;attitude;attitude", + "batcrit;battery critical;niveau batterie critique", + "batlow;low battery;niveau batterie bas", + "camcenter;camera center;caméra centrée", + "cammanual;camera manual;caméra manuelle", + "capacity;capacity;capacité", + "engdis;engine disabled;moteur calé", + "engoff;engine off;moteur coupé", + "engon;engine on;moteur démarré", + "flaps1;flaps 1;volets 1", + "flaps2;flaps 2;volets 2", + "flapsdn;flaps down;volets sortis", + "flapsup;flaps up;volets rentrés", + "fltmode0;phase de vol 0;phase de vol 0", + "fltmode1;phase de vol 1;phase de vol 1", + "fltmode2;phase de vol 2;phase de vol 2", + "fltmode3;phase de vol 3;phase de vol 3", + "fltmode4;phase de vol 4;phase de vol 4", + "fltmode5;phase de vol 5;phase de vol 5", + "fltmode6;phase de vol 6;phase de vol 6", + "fltmode7;phase de vol 7;phase de vol 7", + "fltmode8;phase de vol 8;phase de vol 8", + "fsoff;failsafe off;failsafe coupé", + "fson;failsafe on;failsafe activé", + "geardn;gear down;train sorti", + "gearup;gear upp;train rentré", + "gps;gps;gps", + "hirates;hi rates;taux élevé", + "htoff;head tracker off;suivi tète désactivé", + "hton;head tracker on;suivi tète activé", + "ioc;ioc;i o c", + "iocoff;ioc off;i o c coupé", + "lowrates;lowrates;taux faible", + "manual;manual;manuel", + "normal;normal;normal", + "nrmmod;normal mode;mode normal", + "thrhold;throttle locked;gaz bloqués","thrrel;throttle released;gaz relachés", + "trnoff;;fin écolage", + "trnon;;écolage", + }; + + public string[][] default_system_strings = new string[10][]; + public string[][] default_other_strings = new string[10][]; + + public int toInt(string langStr) + { + if (langStr == "cz") return 1; + if (langStr == "de") return 2; + if (langStr == "es") return 3; + if (langStr == "fr") return 4; + if (langStr == "it") return 5; + if (langStr == "pl") return 6; + if (langStr == "pt") return 7; + if (langStr == "se") return 8; + if (langStr == "sk") return 9; + else return 0; //English default + } + + public SentenceTables() + { + default_other_strings[toInt("cz")] = default_cz_other_strings; + default_system_strings[toInt("cz")] = default_cz_system_strings; + + default_other_strings[toInt("de")] = default_de_other_strings; + default_system_strings[toInt("de")] = default_de_system_strings; + + default_other_strings[toInt("en")] = default_en_other_strings; + default_system_strings[toInt("en")] = default_en_system_strings; + + default_other_strings[toInt("es")] = default_es_other_strings; + default_system_strings[toInt("es")] = default_es_system_strings; + + default_other_strings[toInt("fr")] = default_fr_other_strings; + default_system_strings[toInt("fr")] = default_fr_system_strings; + + default_other_strings[toInt("it")] = default_it_other_strings; + default_system_strings[toInt("it")] = default_it_system_strings; + + default_other_strings[toInt("pl")] = default_pl_other_strings; + default_system_strings[toInt("pl")] = default_pl_system_strings; + + default_other_strings[toInt("pt")] = default_pt_other_strings; + default_system_strings[toInt("pt")] = default_pt_system_strings; + + default_other_strings[toInt("se")] = default_se_other_strings; + default_system_strings[toInt("se")] = default_se_system_strings; + + default_other_strings[toInt("sk")] = default_sk_other_strings; + default_system_strings[toInt("sk")] = default_sk_system_strings; + } + } +} diff --git a/sound/recorder/stop.png b/sound/recorder/stop.png new file mode 100644 index 000000000..d931243bd Binary files /dev/null and b/sound/recorder/stop.png differ diff --git a/sound/speaker/.gitignore b/sound/speaker/.gitignore new file mode 100644 index 000000000..ebd53ae98 --- /dev/null +++ b/sound/speaker/.gitignore @@ -0,0 +1,3 @@ +/OpenTXspeaker.suo +/bin/* +/obj/* diff --git a/speaker/App.xaml b/sound/speaker/App.xaml similarity index 100% rename from speaker/App.xaml rename to sound/speaker/App.xaml diff --git a/speaker/App.xaml.cs b/sound/speaker/App.xaml.cs similarity index 100% rename from speaker/App.xaml.cs rename to sound/speaker/App.xaml.cs diff --git a/sound/speaker/GPLv3_Logo.png b/sound/speaker/GPLv3_Logo.png new file mode 100644 index 000000000..ba78d4c49 Binary files /dev/null and b/sound/speaker/GPLv3_Logo.png differ diff --git a/speaker/MainWindow.xaml b/sound/speaker/MainWindow.xaml similarity index 72% rename from speaker/MainWindow.xaml rename to sound/speaker/MainWindow.xaml index 9ed94b625..312a13593 100644 --- a/speaker/MainWindow.xaml +++ b/sound/speaker/MainWindow.xaml @@ -2,10 +2,10 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="OpenTX Speaker" - Height="460" + Height="514" MinWidth="840" MaxWidth="840" - ResizeMode="CanResizeWithGrip" MinHeight="460" SizeToContent="Width"> + ResizeMode="CanResizeWithGrip" MinHeight="514" SizeToContent="Width" Icon="/OpenTXspeaker;component/icon.ico"> @@ -71,7 +71,7 @@ - + + + + + + + + @@ -91,7 +106,7 @@ - + + + + + + + + - - + +