Merge branch 'testing'
This commit is contained in:
commit
620b8af135
@ -434,6 +434,7 @@ help() {
|
||||
echo "noCache=\"true\" # Do not keep downloaded items in the cache."
|
||||
echo "norh=\"true\" # Do not install RHVoice."
|
||||
echo "redownload=\"true\" # Redownload sources, do not use the version stored in cache."
|
||||
echo "rhvoice=\"voicename\" # Select the voice to be installed (default Bdl)."
|
||||
echo "winedebug=\"flag(s)\" # Set wine debug flags, useful for development."
|
||||
exit 0
|
||||
}
|
||||
@ -502,8 +503,6 @@ winetricks() {
|
||||
echo "1" > "${XDG_CACHE_HOME:-$HOME/.cache}/winetricks/track_usage"
|
||||
fi
|
||||
# Download or update agm's copy of winetricks
|
||||
winetricksPath="${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager"
|
||||
mkdir -p "${winetricksPath}"
|
||||
if [[ ! -e "${winetricksPath}/winetricks" ]]; then
|
||||
checkWinetricksUpdate="true"
|
||||
download "https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks"
|
||||
@ -526,10 +525,23 @@ install_rhvoice() {
|
||||
if [[ "$norh" == "true" ]]; then
|
||||
return
|
||||
fi
|
||||
download "https://rhvoice.eu-central-1.linodeobjects.com/RHVoice-voice-English-Bdl-v4.1.2007.13-setup.exe"
|
||||
declare -A RHVoice=(
|
||||
[alan]="https://rhvoice.eu-central-1.linodeobjects.com/RHVoice-voice-English-Alan-v4.0.2008.15-setup.exe"
|
||||
[bdl]="https://rhvoice.eu-central-1.linodeobjects.com/RHVoice-voice-English-Bdl-v4.1.2008.15-setup.exe"
|
||||
[clb]="https://rhvoice.eu-central-1.linodeobjects.com/RHVoice-voice-English-Clb-v4.0.2008.15-setup.exe"
|
||||
[slt]="https://rhvoice.eu-central-1.linodeobjects.com/RHVoice-voice-English-Slt-v4.0.2008.15-setup.exe"
|
||||
)
|
||||
voiceName="${voiceName:-bdl}"
|
||||
voiceName="${voiceName,,}"
|
||||
if [[ "${RHVoice[${voiceName}]}" == "" ]]; then
|
||||
echo "Invalid RHVoice name specified, defaulting to Bdl."
|
||||
voiceName="bdl"
|
||||
fi
|
||||
local voiceFile="${RHVoice[${voiceName}]##*/}"
|
||||
download "${RHVoice[${voiceName}]}"
|
||||
winetricks -q win8
|
||||
echo "Installing RHVoice..."
|
||||
wine "${cache}/RHVoice-voice-English-Bdl-v4.1.2007.13-setup.exe" &
|
||||
echo "Installing RHVoice ${voiceName^}..."
|
||||
wine "${cache}/${voiceFile}" &
|
||||
sleep 20
|
||||
wineserver -k
|
||||
}
|
||||
@ -562,9 +574,16 @@ install_wine_bottle() {
|
||||
{ DISPLAY="" wineboot -u
|
||||
wine msiexec /i z:"$monoPath" /quiet
|
||||
wine msiexec /i z:"$geckoPath" /quiet
|
||||
if [[ "${*}" =~ speechsdk ]] || [[ "${WINEARCH}" == "win64" ]]; then
|
||||
if [[ "${*}" =~ speechsdk ]]; then
|
||||
install_rhvoice
|
||||
fi
|
||||
if [[ "${WINEARCH}" == "win64" ]]; then
|
||||
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd"
|
||||
fi
|
||||
if [[ "${WINEARCH}" == "win64" ]] && [[ ! -f "${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd" ]]; then
|
||||
cp "${cache}/nvda2speechd" "${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd"
|
||||
chmod +x "${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd"
|
||||
fi
|
||||
winetricks -q $@ ${winVer:-winxp} ${winetricksSettings}; } | dialog --progressbox "Installing wine bottle, please wait..." -1 -1
|
||||
}
|
||||
|
||||
@ -753,6 +772,9 @@ game_launcher() {
|
||||
fi
|
||||
fi
|
||||
# for games that require custom scripts before launch or custom launch parameters
|
||||
if [[ "$game" =~ laser-breakout ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
if [[ "$game" =~ sequence-storm ]]; then
|
||||
[[ -x ~/.SequenceStormReader ]] && ~/.SequenceStormReader &
|
||||
fi
|
||||
@ -764,6 +786,9 @@ game_launcher() {
|
||||
wine "$winePath\\$wineExec"
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$game" =~ rs-games ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
if [[ "$game" =~ screaming-strike-2 ]]; then
|
||||
pushd "$(winepath "$winePath")"
|
||||
wine "$wineExec"
|
||||
@ -783,6 +808,7 @@ game_launcher() {
|
||||
exit 0
|
||||
fi
|
||||
if [[ -d "${WINEPREFIX}/drive_c/windows/syswow64" ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
wine64 start /realtime /d "${winePath}" "$wineExec"
|
||||
else
|
||||
wine start /d "${winePath}" "$wineExec" /realtime
|
||||
@ -828,6 +854,10 @@ cache="${XDG_CACHE_HOME:-$HOME/.cache}/audiogame-manager"
|
||||
configFile="${XDG_CONFIG_HOME:-$HOME/.config}/storm-games/audiogame-manager/games.conf"
|
||||
mkdir -p "${cache}"
|
||||
mkdir -p "${configFile%/*}"
|
||||
# Create the path for AGM's helper programs.
|
||||
# Originally this was only winetricks, thus the name, and I'm too lazy to change it now.
|
||||
winetricksPath="${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager"
|
||||
mkdir -p "${winetricksPath}"
|
||||
# Load any arguments from settings.conf file
|
||||
if [[ -r "${configFile%/*}/settings.conf" ]]; then
|
||||
source "${configFile%/*}/settings.conf"
|
||||
@ -912,7 +942,7 @@ gameList=(
|
||||
"BG Word Target"
|
||||
"BG Word Yahtzee"
|
||||
"BG Yahtzee"
|
||||
#"Blind Drive"
|
||||
"Blind Drive"
|
||||
"Bloodshed"
|
||||
"Bombercats"
|
||||
#"Breed Memorial"
|
||||
@ -933,9 +963,11 @@ gameList=(
|
||||
"Death on the Road"
|
||||
"Deathmatch"
|
||||
"Dog Who Hates Toast"
|
||||
#"Dragon Pong"
|
||||
"Duck Hunt"
|
||||
"DynaMan"
|
||||
"Easter Quest"
|
||||
#"Endless Runner"
|
||||
"Entombed"
|
||||
"ESP Pinball Classic"
|
||||
"ESP Pinball Extreme"
|
||||
@ -945,7 +977,6 @@ gameList=(
|
||||
#"Fartman"
|
||||
"Finger Panic"
|
||||
"Fuck That Bird"
|
||||
"Future Life"
|
||||
"GMA Tank Commander"
|
||||
"Grizzly Gulch"
|
||||
"Hammer of Glory"
|
||||
@ -995,9 +1026,9 @@ gameList=(
|
||||
"Sequence Storm"
|
||||
#"Shades of Doom 1.2"
|
||||
"Shades of Doom"
|
||||
"Shooter"
|
||||
"Silver Dollar"
|
||||
"Slender Lost Vision"
|
||||
#"Shooter"
|
||||
"Sonic the Hedgehog"
|
||||
"Sonic Zoom"
|
||||
#"Space Defender"
|
||||
@ -1026,7 +1057,7 @@ gameList=(
|
||||
"Villains From Beyond"
|
||||
"VIP Mud"
|
||||
"Warsim"
|
||||
"Windows Attack"
|
||||
#"Wolf Games Launcher"
|
||||
#"World of War"
|
||||
)
|
||||
|
||||
@ -1062,6 +1093,7 @@ declare -A command=(
|
||||
[R]="Redownload. Removes old versions of packages from cache before installing."
|
||||
[r]="Remove a game. This will delete all game data."
|
||||
[t]="Total games. Show how many games are currently available."
|
||||
[v:]="Select the voice to be installed, default is Bdl."
|
||||
)
|
||||
|
||||
# Convert the keys of the associative array to a format usable by getopts
|
||||
@ -1094,6 +1126,7 @@ while getopts "${args}" i ; do
|
||||
--infobox "There are currently ${#gameList[@]} games available." -1 -1
|
||||
exit 0
|
||||
;;
|
||||
v) voiceName="${OPTARG}";;
|
||||
esac
|
||||
done
|
||||
|
||||
@ -1169,9 +1202,10 @@ case "${game}" in
|
||||
add_launcher "c:\Program Files\Battle Zone\ss.exe"
|
||||
;;
|
||||
"Beatstar Pro")
|
||||
# Sapi is broken on win64 for now, and this game doesn't support nvda it seems.
|
||||
export WINEARCH=win64
|
||||
export winVer="win7"
|
||||
install_wine_bottle sapi mf
|
||||
install_wine_bottle mf
|
||||
download "https://oriolgomez.com/games/beat_windows.zip"
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/Beatstar Pro" "${cache}/beat_windows.zip"
|
||||
add_launcher "c:\Program Files\Beatstar Pro\beatstar.exe"
|
||||
@ -1538,13 +1572,15 @@ case "${game}" in
|
||||
;;
|
||||
"Blind Drive")
|
||||
get_installer "Blind Drive 1.1.112.00i-win64.zip" "https://lofipeople.itch.io/blind-drive"
|
||||
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
|
||||
export WINEARCH=win64
|
||||
export winVer="win8"
|
||||
install_wine_bottle sapi
|
||||
install_wine_bottle
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/blind-drive" "${cache}/Blind Drive 1.1.112.00i-win64.zip"
|
||||
# Weird work around to get keyboard working.
|
||||
winetricks -q usetakefocus=y
|
||||
winetricks -q usetakefocus=n
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
|
||||
add_launcher "c:\Program Files\blind-drive\Blind Drive.exe"
|
||||
;;
|
||||
"Bloodshed")
|
||||
@ -1629,6 +1665,7 @@ case "${game}" in
|
||||
;;
|
||||
"Code Dungeon")
|
||||
get_installer "codedungeon-win-64.zip" "https://stealcase.itch.io/codedungeon"
|
||||
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
|
||||
export WINEARCH=win64
|
||||
export winVer="win8"
|
||||
install_wine_bottle
|
||||
@ -1636,6 +1673,7 @@ case "${game}" in
|
||||
# Weird work around to get keyboard working.
|
||||
winetricks -q usetakefocus=y
|
||||
winetricks -q usetakefocus=n
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
|
||||
add_launcher "c:\Program Files\code-dungeon\Code Dungeon.exe"
|
||||
;;
|
||||
"Copter Mission")
|
||||
@ -1663,10 +1701,10 @@ case "${game}" in
|
||||
"Crime Hunter")
|
||||
export WINEARCH=win64
|
||||
export winVer="win7"
|
||||
install_wine_bottle sapi
|
||||
download "http://masonasons.me/softs/CH2.0Win.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient64.dll"
|
||||
install_wine_bottle
|
||||
download "http://masonasons.me/softs/CH2.0Win.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/crime-hunter" "${cache}/CH2.0Win.zip"
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvdaControllerClient64.dll" "{}" \;
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
|
||||
add_launcher "c:\Program Files\crime-hunter\ch.exe"
|
||||
;;
|
||||
"Danger on the Wheel")
|
||||
@ -1715,6 +1753,12 @@ case "${game}" in
|
||||
add_launcher "c:\Program Files\dogwhohatestoast\DogwhoHatesToast.exe"
|
||||
echo "Note: Dog who Hates Toast installed. Once you start the game, you must press tab until you hear sapi on to get speech." >&2
|
||||
;;
|
||||
"Dragon Pong")
|
||||
install_wine_bottle vb6run dx8vb speechsdk
|
||||
download "https://www.iamtalon.me/games/dragonpong.zip"
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/dragonpong.zip"
|
||||
add_launcher "c:\Program Files\dragonpong\DragonPong.exe"
|
||||
;;
|
||||
"Duck Hunt")
|
||||
export bottle="l-works"
|
||||
install_wine_bottle vb6run dx8vb speechsdk
|
||||
@ -1739,6 +1783,13 @@ case "${game}" in
|
||||
wine "${cache}/easter quest setup.exe" /silent
|
||||
add_launcher "c:\Program Files\MTGames\Easter Quest\easter.exe"
|
||||
;;
|
||||
"Endless Runner")
|
||||
install_wine_bottle speechsdk
|
||||
download "http://www.masonasons.me/softs/EndlessRunner.7z"
|
||||
7z e -y -o"$WINEPREFIX/drive_c/Program Files/Endless Runner" "${cache}/EndlessRunner.7z" -prunner
|
||||
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
|
||||
add_launcher "c:\Program Files\Endless Runner\runner.exe"
|
||||
;;
|
||||
"Entombed")
|
||||
export winVer="win7"
|
||||
install_wine_bottle speechsdk msvcrt40 gdiplus ie7 wmp11 mf
|
||||
@ -1839,15 +1890,6 @@ case "${game}" in
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/fuck that bird" "${cache}/bird_en.zip"
|
||||
add_launcher "c:\Program Files\fuck that bird\game.exe"
|
||||
;;
|
||||
"Future Life")
|
||||
export winVer="win7"
|
||||
install_wine_bottle speechsdk
|
||||
get_installer "Future Life.zip" "https://www.mediafire.com/file/phkzxtqjaw6nao9/Future"
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/Future Life.zip"
|
||||
chmod +w "$WINEPREFIX/drive_c/Program Files/Future Life"
|
||||
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
|
||||
add_launcher "c:\Program Files\Future Life\future_life.exe"
|
||||
;;
|
||||
"GMA Tank Commander")
|
||||
install_wine_bottle vb6run dx8vb speechsdk
|
||||
download "http://www.gmagames.com/gtc120.exe"
|
||||
@ -1982,12 +2024,12 @@ EOF
|
||||
"Laser Breakout")
|
||||
export bottle="nyanchan"
|
||||
export winVer="win7"
|
||||
install_wine_bottle speechsdk
|
||||
download "http://www.nyanchangames.com/softs/lsSetup.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||
install_wine_bottle
|
||||
download "http://www.nyanchangames.com/softs/lsSetup.exe" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll"
|
||||
wine "${cache}/lsSetup.exe" &
|
||||
xdotool sleep 10 key Return
|
||||
wineserver -w
|
||||
find "${WINEPREFIX}" -type f -name "nvdaControllerClient.dll" -exec rm -fv "{}" \;
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient.dll' -exec cp -v "${cache}/nvda2speechd32.dll" "{}" \;
|
||||
add_launcher "c:\nyanchangame\laser breakout\play.exe"
|
||||
;;
|
||||
"Light Battles")
|
||||
@ -2230,6 +2272,7 @@ EOF
|
||||
download "https://www.agarchive.net/games/XSight/River%20Raiders%201.3.5.exe"
|
||||
wine "$cache/River Raiders 1.3.5.exe" &
|
||||
xdotool sleep 5 type y 2> /dev/null
|
||||
xdotool sleep 1 type y 2> /dev/null
|
||||
xdotool sleep 1 key --clearmodifiers alt+n sleep 2 key alt+n sleep 2 key alt+n sleep 2 key alt+i sleep 5 key alt+f 2> /dev/null
|
||||
wineserver -w
|
||||
add_launcher "c:\Program Files\River Raiders\raid.exe"
|
||||
@ -2237,9 +2280,9 @@ EOF
|
||||
"RS Games")
|
||||
export winVer="win7"
|
||||
install_wine_bottle speechsdk
|
||||
download "http://rsgames.org/rsdownloads/rsgclient/rsgames-client-setup-2.01.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||
download "http://rsgames.org/rsdownloads/rsgclient/rsgames-client-setup-2.01.exe" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll"
|
||||
wine "${cache}/rsgames-client-setup-2.01.exe" /silent
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvda2speechd32.dll" "{}" \;
|
||||
add_launcher "c:\Program Files\RS Games Client\rsg.exe"
|
||||
;;
|
||||
"Run For Your Life")
|
||||
@ -2331,10 +2374,9 @@ EOF
|
||||
export WINEARCH=win64
|
||||
export winVer="win7"
|
||||
install_wine_bottle
|
||||
download "http://masonasons.me/softs/Shooter.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient64.dll"
|
||||
download "http://masonasons.me/softs/Shooter.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/shooter" "${cache}/Shooter.zip"
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvdaControllerClient64.dll" "{}" \;
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
|
||||
add_launcher "c:\Program Files\shooter\shooter.exe"
|
||||
;;
|
||||
"Sonic the Hedgehog")
|
||||
@ -2599,7 +2641,7 @@ EOF
|
||||
;;
|
||||
"VIP Mud")
|
||||
export winVer="win7"
|
||||
install_wine_bottle vb6run dx8vb speechsdk
|
||||
install_wine_bottle vb6run dx8vb speechsdk ole32
|
||||
download "http://gmagames.com/vipmud20016.exe"
|
||||
wine "${cache}/vipmud20016.exe" /silent
|
||||
mkdir -p "${HOME}/.local/wine/vip-mud/drive_c/users/${USER}/Documents/VIP Mud"
|
||||
@ -2617,12 +2659,14 @@ EOF
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/Warsim/" "${cache}/Warsim Full Game.zip"
|
||||
add_launcher "c:\Program Files\Warsim\Warsim.exe"
|
||||
;;
|
||||
"Windows Attack")
|
||||
get_installer "WA.exe" "https://drive.google.com/file/d/1BwKGLP37m-Z6nyKdo8LwmU9J1CEqfMb_/view?usp=drivesdk"
|
||||
"Wolf Games Launcher")
|
||||
download "https://sightlesswolf.com/wg-release.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
|
||||
export WINEARCH=win64
|
||||
export winVer="win7"
|
||||
install_wine_bottle speechsdk
|
||||
cp "${cache}/WA.exe" "$WINEPREFIX/drive_c/Program Files/"
|
||||
add_launcher "c:\Program Files\WA.exe"
|
||||
install_wine_bottle
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/wg-release.zip"
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
|
||||
add_launcher "c:\Program Files\wg-release\WolfGames.exe"
|
||||
;;
|
||||
"World of War")
|
||||
export winVer="win7"
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# Set Voice
|
||||
# Set the default wine voice based on installed options.
|
||||
# Set the default wine voice ba$sed on installed options.
|
||||
# Rate can be specified as a numeric argument to this script, 1 through 9.
|
||||
# The default rate is 7
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
# ■The contents of this file are subject to the Common Public Attribution
|
||||
# License Version 1.0 (the ■License■); you may not use this file except in
|
||||
# compliance with the License. You may obtain a copy of the License at
|
||||
# https://opensource.org/licenses/CPAL-1.0. The License is based on the Mozilla Public License Version
|
||||
# https://opensource.org/licenses/CPAL-1.0. The License is ba$sed on the Mozilla Public License Version
|
||||
# 1.1 but Sections 14 and 15 have been added to cover use of software over a
|
||||
# computer network and provide for limited attribution for the Original
|
||||
# Developer. In addition, Exhibit A has been modified to be consistent with
|
||||
@ -44,6 +44,15 @@
|
||||
|
||||
#--code--
|
||||
|
||||
# Set a variable to make mac compatibility easier...
|
||||
sed="sed"
|
||||
grep="grep"
|
||||
if [[ "$(uname)" == "Darwin" ]]; then
|
||||
sed="gsed"
|
||||
grep="ggrep"
|
||||
fi
|
||||
export grep
|
||||
export sed
|
||||
# Settings to improve accessibility of dialog.
|
||||
export DIALOGOPTS='--insecure --no-lines --visit-items'
|
||||
# Turn off debug messages
|
||||
@ -116,11 +125,7 @@ menulist() {
|
||||
restore_voice() {
|
||||
if [[ $doRestore -eq 0 ]]; then
|
||||
wineserver -k # If we don't do this it's likely wine will overwrite our reverted change or even clobber the registry key entirely
|
||||
if [[ "$(uname)" == "Darwin" ]]; then
|
||||
gsed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="'"${oldVoice//\\/\\\\}"'"/g' "${WINEPREFIX}/user.reg"
|
||||
else
|
||||
sed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="'"${oldVoice//\\/\\\\}"'"/g' "${WINEPREFIX}/user.reg"
|
||||
fi
|
||||
$sed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="'"${oldVoice//\\/\\\\}"'"/g' "${WINEPREFIX}/user.reg"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -133,17 +138,14 @@ set_voice() {
|
||||
[ "$x" = "$tmp" ] && break
|
||||
counter=$(( $counter + 1 ))
|
||||
done
|
||||
local RHVoiceName="$(find "${WINEPREFIX}/drive_c/ProgramData/Olga Yakovleva/RHVoice/data/voices/" -maxdepth 1 -type d)"
|
||||
RHVoiceName="${RHVoiceName##*/}"
|
||||
fullVoice="${voiceListFullName[$counter]}"
|
||||
fullVoice="${fullVoice/RHVoice/RHVoice\\\\bdl}"
|
||||
fullVoice="${fullVoice/RHVoice/RHVoice\\\\${RHVoiceName}}"
|
||||
wineserver -k # If we don't do this it's likely wine will overwrite our reverted change or even clobber the registry key entirely
|
||||
# Remove any existing rate change for voices
|
||||
if [[ "$(uname)" == "Darwin" ]]; then
|
||||
gsed -i '/"DefaultTTSRate"=dword:/d' "${WINEPREFIX}/user.reg"
|
||||
gsed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\'"${fullVoice//\\/\\\\}"'"\n"DefaultTTSRate"=dword:0000000'${2:-7}'/g' "${WINEPREFIX}/user.reg"
|
||||
else
|
||||
sed -i '/"DefaultTTSRate"=dword:/d' "${WINEPREFIX}/user.reg"
|
||||
sed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\'"${fullVoice//\\/\\\\}"'"\n"DefaultTTSRate"=dword:0000000'${2:-7}'/g' "${WINEPREFIX}/user.reg"
|
||||
fi
|
||||
$sed -i '/"DefaultTTSRate"=dword:/d' "${WINEPREFIX}/user.reg"
|
||||
$sed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\'"${fullVoice//\\/\\\\}"'"\n"DefaultTTSRate"=dword:0000000'${2:-7}'/g' "${WINEPREFIX}/user.reg"
|
||||
}
|
||||
|
||||
test_voice() {
|
||||
@ -155,14 +157,12 @@ test_voice() {
|
||||
[ "$x" = "$tmp" ] && break
|
||||
counter=$(( $counter + 1 ))
|
||||
done
|
||||
local RHVoiceName="$(find "${WINEPREFIX}/drive_c/ProgramData/Olga Yakovleva/RHVoice/data/voices/" -maxdepth 1 -type d)"
|
||||
RHVoiceName="${RHVoiceName##*/}"
|
||||
fullVoice="${voiceListFullName[$counter]}"
|
||||
fullVoice="${fullVoice/RHVoice/RHVoice\\\\bdl}"
|
||||
fullVoice="${fullVoice/RHVoice/RHVoice\\\\${RHVoiceName}}"
|
||||
wineserver -k # If we don't do this it's likely wine will overwrite our reverted change or even clobber the registry key entirely
|
||||
if [[ "$(uname)" == "Darwin" ]]; then
|
||||
gsed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\'"${fullVoice//\\/\\\\}"'"/g' "${WINEPREFIX}/user.reg"
|
||||
else
|
||||
sed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\'"${fullVoice//\\/\\\\}"'"/g' "${WINEPREFIX}/user.reg"
|
||||
fi
|
||||
$sed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\'"${fullVoice//\\/\\\\}"'"/g' "${WINEPREFIX}/user.reg"
|
||||
cat << "EOF" > /tmp/speak.vbs
|
||||
dim speechobject
|
||||
set speechobject=createobject("sapi.spvoice")
|
||||
@ -186,22 +186,18 @@ wine cscript "z:\tmp\speak.vbs"
|
||||
# Create an array of available voices.
|
||||
ifs="$IFS"
|
||||
IFS=$'\n'
|
||||
if [[ "$(uname)" == "Darwin" ]]; then
|
||||
voiceListFullName=($(ggrep -P '\[Software\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^\\]+\].*' "${WINEPREFIX}/system.reg" | sed -E -e 's/\[([^]]+)\].*/\1/g'))
|
||||
else
|
||||
voiceListFullName=($(grep -P '\[Software\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^\\]+\].*' "${WINEPREFIX}/system.reg" | sed -E -e 's/\[([^]]+)\].*/\1/g'))
|
||||
fi
|
||||
voiceListFullName=($($grep -P '\[Software\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^\\]+\].*' "${WINEPREFIX}/system.reg" | $sed -E -e 's/\[([^]]+)\].*/\1/g'))
|
||||
IFS="$ifs"
|
||||
voiceList=()
|
||||
for x in "${voiceListFullName[@]}" ; do
|
||||
voiceList+=("$(echo "$x" | rev | cut -d\\ -f1 | rev)")
|
||||
voiceList+=("$(echo "$x" | $sed -E -e 's/Software\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\(.+)/\3/g')")
|
||||
done
|
||||
if [[ "$(uname)" == "Darwin" ]]; then
|
||||
oldVoice="$(ggrep -P '"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"' "${WINEPREFIX}/user.reg" | sed -E -e 's/"DefaultTokenId"="([^"]+)"/\1/g')"
|
||||
else
|
||||
oldVoice="$(grep -P '"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"' "${WINEPREFIX}/user.reg" | sed -E -e 's/"DefaultTokenId"="([^"]+)"/\1/g')"
|
||||
fi
|
||||
oldVoice="$($grep -P '"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"' "${WINEPREFIX}/user.reg" | $sed -E -e 's/"DefaultTokenId"="([^"]+)"/\1/g')"
|
||||
exit=1
|
||||
if [[ "${voiceList[@]}" -eq 0 ]]; then
|
||||
dialog --msgbox "No voices found." -1 -1
|
||||
exit 1
|
||||
fi
|
||||
while [[ $exit -ne 0 ]] ; do
|
||||
voice="$(menulist "${voiceList[@]}")"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user