Added optional tts and rate settings.

This commit is contained in:
Storm Dragon
2025-07-08 19:19:21 -04:00
parent 525b00fc50
commit fc02fc5ffe

52
tojam
View File

@ -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