From 308136aec08a6b23bff75818e5afda634b83d21c Mon Sep 17 00:00:00 2001 From: Kjell Kernen Date: Wed, 19 Mar 2014 21:09:54 +0100 Subject: [PATCH] OpenTX Recorder added --- sound/.gitignore | 1 + sound/OpenTXSound.sln | 26 + sound/recorder/.gitignore | 4 + sound/recorder/App.xaml | 8 + sound/recorder/App.xaml.cs | 32 + sound/recorder/GPLv3_Logo.png | Bin 0 -> 2666 bytes sound/recorder/MainWindow.xaml | 107 + sound/recorder/MainWindow.xaml.cs | 244 ++ sound/recorder/OpenTXRecorder.csproj | 169 ++ sound/recorder/Properties/AssemblyInfo.cs | 71 + .../recorder/Properties/Resources.Designer.cs | 63 + .../recorder}/Properties/Resources.resx | 0 .../recorder/Properties/Settings.Designer.cs | 26 + .../recorder}/Properties/Settings.settings | 0 sound/recorder/aboutWindow.xaml | 49 + sound/recorder/aboutWindow.xaml.cs | 62 + {speaker => sound/recorder}/icon.ico | Bin sound/recorder/play.png | Bin 0 -> 4270 bytes sound/recorder/record.png | Bin 0 -> 4301 bytes sound/recorder/recorder_logo.png | Bin 0 -> 14657 bytes sound/recorder/recorder_logo.xcf | Bin 0 -> 202207 bytes sound/recorder/recorder_logo_small.png | Bin 0 -> 4748 bytes sound/recorder/sentencetables.cs | 2455 +++++++++++++++++ sound/recorder/stop.png | Bin 0 -> 4065 bytes sound/speaker/.gitignore | 3 + {speaker => sound/speaker}/App.xaml | 0 {speaker => sound/speaker}/App.xaml.cs | 0 sound/speaker/GPLv3_Logo.png | Bin 0 -> 2666 bytes {speaker => sound/speaker}/MainWindow.xaml | 51 +- {speaker => sound/speaker}/MainWindow.xaml.cs | 9 +- .../speaker/OpenTXspeaker.csproj | 47 +- .../speaker/OpenTXspeaker.sln | 2 +- .../speaker}/Properties/AssemblyInfo.cs | 4 +- .../speaker}/Properties/Resources.Designer.cs | 44 +- sound/speaker/Properties/Resources.resx | 117 + .../speaker}/Properties/Settings.Designer.cs | 20 +- sound/speaker/Properties/Settings.settings | 7 + {speaker => sound/speaker}/aboutWindow.xaml | 8 +- .../speaker}/aboutWindow.xaml.cs | 0 {speaker => sound/speaker}/eSpeak.png | Bin {speaker => sound/speaker}/firmware_logo.xcf | Bin sound/speaker/icon.ico | Bin 0 -> 79774 bytes {speaker => sound/speaker}/installvoices.xaml | 4 +- .../speaker}/installvoices.xaml.cs | 0 {speaker => sound/speaker}/sentencetables.cs | 0 {speaker => sound/speaker}/speaker_logo.png | Bin {speaker => sound/speaker}/speaker_logo.xcf | Bin .../speaker}/speaker_logo_small.png | Bin speaker/.gitignore | 3 - speaker/GPLv3_Logo.png | Bin 9012 -> 0 bytes 50 files changed, 3567 insertions(+), 69 deletions(-) create mode 100644 sound/.gitignore create mode 100644 sound/OpenTXSound.sln create mode 100644 sound/recorder/.gitignore create mode 100644 sound/recorder/App.xaml create mode 100644 sound/recorder/App.xaml.cs create mode 100644 sound/recorder/GPLv3_Logo.png create mode 100644 sound/recorder/MainWindow.xaml create mode 100644 sound/recorder/MainWindow.xaml.cs create mode 100644 sound/recorder/OpenTXRecorder.csproj create mode 100644 sound/recorder/Properties/AssemblyInfo.cs create mode 100644 sound/recorder/Properties/Resources.Designer.cs rename {speaker => sound/recorder}/Properties/Resources.resx (100%) create mode 100644 sound/recorder/Properties/Settings.Designer.cs rename {speaker => sound/recorder}/Properties/Settings.settings (100%) create mode 100644 sound/recorder/aboutWindow.xaml create mode 100644 sound/recorder/aboutWindow.xaml.cs rename {speaker => sound/recorder}/icon.ico (100%) create mode 100644 sound/recorder/play.png create mode 100644 sound/recorder/record.png create mode 100644 sound/recorder/recorder_logo.png create mode 100644 sound/recorder/recorder_logo.xcf create mode 100644 sound/recorder/recorder_logo_small.png create mode 100644 sound/recorder/sentencetables.cs create mode 100644 sound/recorder/stop.png create mode 100644 sound/speaker/.gitignore rename {speaker => sound/speaker}/App.xaml (100%) rename {speaker => sound/speaker}/App.xaml.cs (100%) create mode 100644 sound/speaker/GPLv3_Logo.png rename {speaker => sound/speaker}/MainWindow.xaml (72%) rename {speaker => sound/speaker}/MainWindow.xaml.cs (98%) rename speaker/OpenTXspeak.csproj => sound/speaker/OpenTXspeaker.csproj (74%) rename speaker/OpenTXspeak.sln => sound/speaker/OpenTXspeaker.sln (91%) rename {speaker => sound/speaker}/Properties/AssemblyInfo.cs (97%) rename {speaker => sound/speaker}/Properties/Resources.Designer.cs (84%) create mode 100644 sound/speaker/Properties/Resources.resx rename {speaker => sound/speaker}/Properties/Settings.Designer.cs (85%) create mode 100644 sound/speaker/Properties/Settings.settings rename {speaker => sound/speaker}/aboutWindow.xaml (88%) rename {speaker => sound/speaker}/aboutWindow.xaml.cs (100%) rename {speaker => sound/speaker}/eSpeak.png (100%) rename {speaker => sound/speaker}/firmware_logo.xcf (100%) create mode 100644 sound/speaker/icon.ico rename {speaker => sound/speaker}/installvoices.xaml (93%) rename {speaker => sound/speaker}/installvoices.xaml.cs (100%) rename {speaker => sound/speaker}/sentencetables.cs (100%) rename {speaker => sound/speaker}/speaker_logo.png (100%) rename {speaker => sound/speaker}/speaker_logo.xcf (100%) rename {speaker => sound/speaker}/speaker_logo_small.png (100%) delete mode 100644 speaker/.gitignore delete mode 100644 speaker/GPLv3_Logo.png 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 0000000000000000000000000000000000000000..ba78d4c4941dabf2fcac5409a92ac4c57920c69f GIT binary patch literal 2666 zcmV-w3YGPVP)Px#32;bRa{vGVivR!tivi)#(!2lw00(qQO+^RT0uvMpF24YJ`L;(K) z{{a7>y{D4^014_zL_t(&-tC%skW|$b#(x5`77PlZ01Xf|tXfvU1+9P)Nl;9MMIeIW zf~A;|yxWx-F&@d<9Z!mSGK`{-NXD*+V< z1U?qnFHjo71r>243NtglEQV7Q5|M$wwPW#3mU1Xa75(4)}+D^1dj!r-wg;N!7wPTlz6cv~* zaG8PJ%ocdxi%_r(8VF2J2gJd((|x~-stE3f0*?zktgtfz_z{7D0<}|XS^^CmbayaJ zV6ea`S+E+%|4L05^x|!{8+(dT?jEM~Js`$27+y6h2%>GgYF0wJYE0l-O z)7o925Tv&W;2eAZgu;B5;j^dJ8-bz3oKpjkZt1g)zX^66mI| z)j_Xp5wNzxdh2k6HU6=}>lr5fjzC|47oe%aZiQ_MKeNs1Wz;5au`^ddqYxT8_`O0| z2+eKGVG3K)+k_Uu1%|7S@cDv!RA5U0Jp{%pe3tfppM%?rytQ5}8P;njwoMwi^#raG z_|!q~0P19O58V`YC~Ow^rGefh%fweYXuAOFEA&%1pirdH-T=NSi#0u9by^9`QxJv5 zHjl?NEpVEPINjb~s%aLOrIZQ$Er2cpYhwES(!o;>ZWd4fj>h!yt-vP^&Rzf~rSJ-% zg@aKFTLZW-2{m&$=#dIvD=Zf1XvcR*1&`sq0ThV$zmI09^NGMv1M6&ojS7EJsBiOF z8n;M=9{?nvrNFcK_*#Yg1^TDhK}Ke?#C57YX(PO#~hmZ&YIfXpm0?Of77b zcz4lUy){(?;9j;d=Zg=NarIQ8n^{2*frBCRE`gImI7i`?I3Q90+X5fTF_*Oh*9+WO z1x|lZpeTTXIJ}Zj$9dYg#Asf_jNm>ECo6nxzAm326$kDY0%zN14N};eq2A;GS}N34 z_?^POB%Ep+b3>f}wIrZv1mNKjYL#A=I=IZiomF5OUkN;%%t28n`n7hnwKmOUxi!^C z?!7sJ)RYjqCgH3A+6T}!^hf+gd!G=mbKa5;2^2Z#5Q*l| zfdhdl0@EDyF+dtC++#s#w6j4H&?112wh__NE(zy`FhF3r<@t|C0A7{B|L)KTzz$ld zr)$xAGn~&v$ExqQqQD+9qd48hXc$805H1yOr8Q%W^E8V!qcoEr7HA|sO)M9(j7va) zLPO)u<>K8*eH(mXo|E4b6{n4!WlMoas%ZhvALqY1(?UYejX$qum2H*6CFz(2o?R^x zDEv(hmVvj&jg=p^uDHvkZKlwQXnG#Q_KXL#Ubbsr9Nn7x7-IFOx}g0W@Fj z20>x8!ootY1Jtn~{dF~g`?~m)`Q!|iyHa6%kmfQnQM3*U9~p3ePDSc@Q2%*2Wf?S% zmJ%okp_W5IHRG)GOwilcdW(Gu*4g{T~>dyLTd*<7nqH5>P4bO#m15lF^bQk0@fXG4I;>Zi8G4~)h=aS0UnUjaR`^J~?z=+$ zHTWKdViR&!n`TiY-;I@$Nas4sHq*3$R%RqSBP!U};>Y>BK#9N@@vNzKHf)UY&9JQQ zCMxp?bTg|ev(NnmCWO%6!B~MAp&w|lz>EMc4xx`RjCHn%FPzVQekwkb8YeK{!Gi*~ zsNb|P0)6c!`IJklP`iK9vb6vc-7RoHJ0Nq5dRwk5m+UDA)gAo?O?LN0*eFN#QW*D#LIwjzkygL(4{)S zRcNGevoWb@0%ujrt~sxh79Qi@G*o92@TaP*zZ6=F7pc}Mlq8{3Nv<1-3c80vD-#)#iR!fAg3`3i=|n0Ep+VCB*yVN$x?2_YiZ5k$@3&Tcz#W!=Gm9%=?NxpL Y19h*OP%`Tk_W%F@07*qoM6N<$g8#_jNdN!< literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..15f2da559cf813ff5d2183dfbf77f0860acde253 GIT binary patch literal 4270 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 Q6#xJL07*qoM6N<$f@usCxc~qF literal 0 HcmV?d00001 diff --git a/sound/recorder/record.png b/sound/recorder/record.png new file mode 100644 index 0000000000000000000000000000000000000000..7ee74f7fc2abed31e8a5f4fbe3a390a8d5ffa6f1 GIT binary patch literal 4301 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 literal 0 HcmV?d00001 diff --git a/sound/recorder/recorder_logo.png b/sound/recorder/recorder_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5998c34d3041ffa1029d6f9ebdfe20bf3b832692 GIT binary patch literal 14657 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 literal 0 HcmV?d00001 diff --git a/sound/recorder/recorder_logo_small.png b/sound/recorder/recorder_logo_small.png new file mode 100644 index 0000000000000000000000000000000000000000..b505a2f3ce2e561ce178c07de4d22685410e7861 GIT binary patch literal 4748 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. + * + * 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 0000000000000000000000000000000000000000..d931243bd3a4975df7733abe714b91dfe5cc9ea3 GIT binary patch literal 4065 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 Tk|C|n00000NkvXXu0mjfL1&l? literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba78d4c4941dabf2fcac5409a92ac4c57920c69f GIT binary patch literal 2666 zcmV-w3YGPVP)Px#32;bRa{vGVivR!tivi)#(!2lw00(qQO+^RT0uvMpF24YJ`L;(K) z{{a7>y{D4^014_zL_t(&-tC%skW|$b#(x5`77PlZ01Xf|tXfvU1+9P)Nl;9MMIeIW zf~A;|yxWx-F&@d<9Z!mSGK`{-NXD*+V< z1U?qnFHjo71r>243NtglEQV7Q5|M$wwPW#3mU1Xa75(4)}+D^1dj!r-wg;N!7wPTlz6cv~* zaG8PJ%ocdxi%_r(8VF2J2gJd((|x~-stE3f0*?zktgtfz_z{7D0<}|XS^^CmbayaJ zV6ea`S+E+%|4L05^x|!{8+(dT?jEM~Js`$27+y6h2%>GgYF0wJYE0l-O z)7o925Tv&W;2eAZgu;B5;j^dJ8-bz3oKpjkZt1g)zX^66mI| z)j_Xp5wNzxdh2k6HU6=}>lr5fjzC|47oe%aZiQ_MKeNs1Wz;5au`^ddqYxT8_`O0| z2+eKGVG3K)+k_Uu1%|7S@cDv!RA5U0Jp{%pe3tfppM%?rytQ5}8P;njwoMwi^#raG z_|!q~0P19O58V`YC~Ow^rGefh%fweYXuAOFEA&%1pirdH-T=NSi#0u9by^9`QxJv5 zHjl?NEpVEPINjb~s%aLOrIZQ$Er2cpYhwES(!o;>ZWd4fj>h!yt-vP^&Rzf~rSJ-% zg@aKFTLZW-2{m&$=#dIvD=Zf1XvcR*1&`sq0ThV$zmI09^NGMv1M6&ojS7EJsBiOF z8n;M=9{?nvrNFcK_*#Yg1^TDhK}Ke?#C57YX(PO#~hmZ&YIfXpm0?Of77b zcz4lUy){(?;9j;d=Zg=NarIQ8n^{2*frBCRE`gImI7i`?I3Q90+X5fTF_*Oh*9+WO z1x|lZpeTTXIJ}Zj$9dYg#Asf_jNm>ECo6nxzAm326$kDY0%zN14N};eq2A;GS}N34 z_?^POB%Ep+b3>f}wIrZv1mNKjYL#A=I=IZiomF5OUkN;%%t28n`n7hnwKmOUxi!^C z?!7sJ)RYjqCgH3A+6T}!^hf+gd!G=mbKa5;2^2Z#5Q*l| zfdhdl0@EDyF+dtC++#s#w6j4H&?112wh__NE(zy`FhF3r<@t|C0A7{B|L)KTzz$ld zr)$xAGn~&v$ExqQqQD+9qd48hXc$805H1yOr8Q%W^E8V!qcoEr7HA|sO)M9(j7va) zLPO)u<>K8*eH(mXo|E4b6{n4!WlMoas%ZhvALqY1(?UYejX$qum2H*6CFz(2o?R^x zDEv(hmVvj&jg=p^uDHvkZKlwQXnG#Q_KXL#Ubbsr9Nn7x7-IFOx}g0W@Fj z20>x8!ootY1Jtn~{dF~g`?~m)`Q!|iyHa6%kmfQnQM3*U9~p3ePDSc@Q2%*2Wf?S% zmJ%okp_W5IHRG)GOwilcdW(Gu*4g{T~>dyLTd*<7nqH5>P4bO#m15lF^bQk0@fXG4I;>Zi8G4~)h=aS0UnUjaR`^J~?z=+$ zHTWKdViR&!n`TiY-;I@$Nas4sHq*3$R%RqSBP!U};>Y>BK#9N@@vNzKHf)UY&9JQQ zCMxp?bTg|ev(NnmCWO%6!B~MAp&w|lz>EMc4xx`RjCHn%FPzVQekwkb8YeK{!Gi*~ zsNb|P0)6c!`IJklP`iK9vb6vc-7RoHJ0Nq5dRwk5m+UDA)gAo?O?LN0*eFN#QW*D#LIwjzkygL(4{)S zRcNGevoWb@0%ujrt~sxh79Qi@G*o92@TaP*zZ6=F7pc}Mlq8{3Nv<1-3c80vD-#)#iR!fAg3`3i=|n0Ep+VCB*yVN$x?2_YiZ5k$@3&Tcz#W!=Gm9%=?NxpL Y19h*OP%`Tk_W%F@07*qoM6N<$g8#_jNdN!< literal 0 HcmV?d00001 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 @@ - + + + + + + + + - - + +