diff --git a/tojam b/tojam index 5a4cc70..ad9a631 100755 --- a/tojam +++ b/tojam @@ -109,6 +109,7 @@ configure_ninjam() { "save mixdown" "Save Mixdown: (${saveMixdown})" "save source files" "Save Source Files: (${saveSourceFiles/-nosavesourcefiles/false recommended})" "sound driver" "Sound Driver: (${soundDriver%% *})" + "tts" "Text-to-Speech: (${tts})" "username" "Set User Name: (${userName#*anonymous:})" ) setting="$(dialog --backtitle "Tojam" \ @@ -223,6 +224,41 @@ configure_ninjam() { sed -i -e "s/^soundDriver=.*/soundDriver=\"${soundDriver}\"/" -e "s/^alsaParameters=.*/alsaParameters=\"${alsaParameters}\"/" "${config}/config" && dialog --msgbox "Sound driver set to alsa." -1 -1 ;; + "tts") + if [[ "${tts}" == "true" ]]; then + ttsRate="$(dialog --backtitle "Tojam" \ + --rangebox "TTS Rate (0-10):" 8 50 0 10 "${ttsRate}" --stdout)" + menuCode=$? + [[ ${menuCode} -ne 0 ]] && continue + tts="$(dialog --yes-label "Enable" \ + --no-label "Disable" \ + --yesno "Text-to-Speech is currently enabled at rate ${ttsRate}. Change setting?" -1 -1 --stdout)" + tts=$? + [[ ${tts} -eq 255 ]] && continue + tts="${tts/0/true}" + tts="${tts/1/false}" + else + tts="$(dialog --yes-label "Enable" \ + --no-label "Keep Disabled" \ + --yesno "Text-to-Speech is currently disabled. Enable it?" -1 -1 --stdout)" + tts=$? + [[ ${tts} -eq 255 ]] && continue + tts="${tts/0/true}" + tts="${tts/1/false}" + if [[ "${tts}" == "true" ]]; then + ttsRate="$(dialog --backtitle "Tojam" \ + --rangebox "TTS Rate (0-10):" 8 50 0 10 "${ttsRate}" --stdout)" + menuCode=$? + [[ ${menuCode} -ne 0 ]] && continue + fi + fi + sed -i -e "s/^tts=.*/tts=\"${tts}\"/" -e "s/^ttsRate=.*/ttsRate=\"${ttsRate}\"/" "${config}/config" && + if [[ "${tts}" == "true" ]]; then + dialog --msgbox "TTS enabled at rate ${ttsRate}." -1 -1 + else + dialog --msgbox "TTS disabled." -1 -1 + fi + ;; "username") userName="$(dialog --backtitle "Tojam" \ --inputbox "Enter User Name (letters, numbers, dash, and underscore accepted):" -1 -1 "${userName#*anonymous:}" --stdout)" @@ -247,6 +283,12 @@ save_files() { fi } +tts_flags() { + if [[ "${tts}" == "true" ]]; then + echo "-tts -tts-rate ${ttsRate}" + fi +} + # Configuration stuff config="${XDG_CONFIG_HOME:-${HOME}/.config}/tojam" @@ -262,10 +304,16 @@ if ! [[ -r "${config}/config" ]]; then echo 'saveMixdown="disabled"'; echo 'saveSourceFiles="false"'; echo 'soundDriver="jack"'; + echo 'tts="false"'; + echo 'ttsRate="0"'; echo "userName='Tojam$(date '+%S')'"; } >> "${config}/config" fi source "${config}/config" +# Set defaults for TTS settings if not present in config +[[ -z "${tts}" ]] && tts="false" +[[ -z "${ttsRate}" ]] && ttsRate="0" + # Fix up username if anonymous is true if [[ "${anonymous}" == "true" ]]; then userName="anonymous:${userName}" @@ -342,7 +390,7 @@ esac ninjam="$(command -v cninjam 2> /dev/null)" [[ ${#ninjam} -le 3 ]] && { echo "Could not find cninjam."; exit 1; } if [[ "${soundDriver}" == "jack" ]]; then -$ninjam "${server}" -user "${userName}" -jack -sessiondir "${sessiondir}" ${saveSourceFiles} $(save_files) +$ninjam "${server}" -user "${userName}" -jack -sessiondir "${sessiondir}" ${saveSourceFiles} $(save_files) $(tts_flags) else -$ninjam "${server}" -user "${userName}" -alsaconfig "${alsaParameters}" -sessiondir "${sessiondir}" ${saveSourceFiles} $(save_files) +$ninjam "${server}" -user "${userName}" -alsaconfig "${alsaParameters}" -sessiondir "${sessiondir}" ${saveSourceFiles} $(save_files) $(tts_flags) fi