private void playKeySound(XMLSettings.KeysSounds currentKeysSounds) { Environment.CurrentDirectory = Path.GetDirectoryName(Application.ExecutablePath); string path; if (currentKeysSounds.SoundLocations.Length > 1) { //get random sound int temp; while (true) { temp = rand.Next(0, currentKeysSounds.SoundLocations.Length); if (temp != lastIndex && File.Exists(currentKeysSounds.SoundLocations[temp])) { break; } Thread.Sleep(1); } lastIndex = temp; path = currentKeysSounds.SoundLocations[lastIndex]; } else { path = currentKeysSounds.SoundLocations[0]; //get first sound } if (File.Exists(path)) { playSound(path); keysJustPressed = currentKeysSounds.Keys; } else if (!showingMsgBox) //dont run when already showing messagebox (don't want a bunch of these on your screen, do you?) { SystemSounds.Beep.Play(); showingMsgBox = true; MessageBox.Show("File " + path + " does not exist"); showingMsgBox = false; } }
private void btnCreateWAVAdd_Click(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(tbText.Text) && !string.IsNullOrWhiteSpace(tbKeys.Text) && !string.IsNullOrWhiteSpace(tbWhereSave.Text) && Directory.Exists(tbWhereSave.Text)) { Keys[] convertedKeys; string error; if (Helper.keysArrayFromString(tbKeys.Text, out convertedKeys, out error)) { if (convertedKeys.Length > 0) { var newKS = new XMLSettings.KeysSounds(convertedKeys, new string[] { tbWhereSave.Text + "\\" + Helper.cleanFileName(tbText.Text.Replace(" ", "") + ".wav") }); synth = new SpeechSynthesizer(); synth.SetOutputToWaveFile(newKS.SoundLocations[0]); PromptBuilder builder = new PromptBuilder(); builder.AppendText(tbText.Text); synth.Speak(builder); synth.Dispose(); synth = null; mainForm.keysSounds.Add(newKS); var newItem = new ListViewItem(tbKeys.Text); newItem.SubItems.Add(newKS.SoundLocations[0]); mainForm.lvKeySounds.Items.Add(newItem); mainForm.lvKeySounds.ListViewItemSorter = new ListViewItemComparer(0); mainForm.lvKeySounds.Sort(); mainForm.keysSounds.Sort(delegate(XMLSettings.KeysSounds x, XMLSettings.KeysSounds y) { if (x.Keys == null && y.Keys == null) { return(0); } else if (x.Keys == null) { return(-1); } else if (y.Keys == null) { return(1); } else { return(Helper.keysToString(x.Keys).CompareTo(Helper.keysToString(y.Keys))); } }); MessageBox.Show("File saved to " + newKS.SoundLocations[0]); } } else { MessageBox.Show("Keys string incorrectly made. Check for spelling errors"); } } else { MessageBox.Show("No text in text box, keys box, and/or where to save box... or the where to save folder does not exist"); } }