#!/bin/bash
# Copyright (C) 2007 Pâris Quentin
#  		     Cassarin-Grand Arthur

# This program 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 2 of the License, or
# (at your option) any later version.

# This program 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 this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 
simuler_reboot ()
{
	N1="0"
	N2="0"
	if [ ! "$1" = "" ]
	then
		N1="$1"
	fi
	if [ ! "$2" = "" ]
	then	
		N2="$2"
	fi

	attendre "$LNG_WINE_REBOOT" "wineboot" "" "$N1" "$N2" "1" "" 1
}
select_prefixe ()
{
	export WINEPREFIX="$1"
}
creer_prefixe ()
{
	N1="0"
	N2="0"
	if [ ! "$1" = "" ]
	then
		N1="$1"
	fi
	if [ ! "$2" = "" ]
	then	
		N2="$2"
	fi

	attendre "$LNG_WINE_PREFIXCREATE" "wineprefixcreate" "" "$N1" "$N2" "1" "" 0 "$LNG_FINISHED"
}
# Disponible à partir de la 1.6.4
Ask_For_cdrom ()
{
	N1="0"
	N2="0"
	if [ ! "$1" = "" ]
	then
		N1="$1"
	fi
	if [ ! "$2" = "" ]
	then	
		N2="$2"
	fi

	CDROM=$(champ "$LNG_WINE_ASKFORCDROM" "/media/cdrom" "$N1" "$N2" 1 "CD-ROM")
	if [ "$?" = 1 ]
	then
	 exit
	fi

	if [ "$CDROM" = "" ]
	then
		CDROM="/media/cdrom"
	fi

}

Lire_autorun()
{
	#Depuis la 1.8.0, par MulX
	local AutorunInf=$(find $1 -iname autorun.inf)
	if [ -n "$AutorunInf" ] ; then
		SetupIs=$(grep "open" $AutorunInf | cut -d\= -f 2)
	else
		SetupIs=-1
		return -1
	fi
	
}
Check_cdrom ()
{
	#message "$LNG_MOUNT_CDROM"
	if [ ! "$CDROM" = "" ]
	then
		if [ ! -e "$CDROM/$1" ]
		then
			erreur "$LNG_WINE_ERRORCDROM" 
		exit 0
		fi
	fi
}
Set_OS ()
{
	# Valeurs possibles : vista, win2003, winxp, win2k, winnt, winme, win98, win95, win31
	if [ ! "$1" = "" ]
	then
		echo "[HKEY_CURRENT_USER\Software\Wine]" > $REPERTOIRE/tmp/makeos.reg
		echo "\"Version\"=\"$1\"" >> $REPERTOIRE/tmp/makeos.reg
		regedit $REPERTOIRE/tmp/makeos.reg
		rm $REPERTOIRE/tmp/makeos.reg -f
	fi		
}

Set_Managed ()
{
	# On ou Off
	if [ "$1" = "On" ]
	then
		echo "[HKEY_CURRENT_USER\Software\Wine\X11 Driver]" > $REPERTOIRE/tmp/managed.reg
		echo "\"Managed\"=\"Y\"" >> $REPERTOIRE/tmp/managed.reg
		regedit $REPERTOIRE/tmp/managed.reg
		rm $REPERTOIRE/tmp/managed.reg -f
	fi
	if [ "$1" = "Off" ]
	then
		echo "[HKEY_CURRENT_USER\Software\Wine\X11 Driver]" > $REPERTOIRE/tmp/managed.reg
		echo "\"Managed\"=\"N\"" >> $REPERTOIRE/tmp/managed.reg
		regedit $REPERTOIRE/tmp/managed.reg
		rm $REPERTOIRE/tmp/managed.reg -f
	fi
}

Set_SoundDriver () 
{
	if [ ! "$1" = "" ]
	then
		echo "[HKEY_CURRENT_USER\Software\Wine\Drivers]" > $REPERTOIRE/tmp/alsa.reg
		echo "\"Audio\"=\"$1\"" >> $REPERTOIRE/tmp/alsa.reg
		regedit $REPERTOIRE/tmp/alsa.reg
		rm $REPERTOIRE/tmp/alsa.reg -f
	fi
}
Set_GLSL ()
{
	# On ou Off
	if [ "$1" = "On" ]
	then
		echo "[HKEY_CURRENT_USER\Software\Wine\Direct3D]" > $REPERTOIRE/tmp/glsl.reg
		echo "\"UseGLSL\"=\"Y\"" >> $REPERTOIRE/tmp/glsl.reg
		regedit $REPERTOIRE/tmp/glsl.reg
		rm $REPERTOIRE/tmp/glsl.reg	 -f
	fi
	if [ "$1" = "Off" ]
	then
		echo "[HKEY_CURRENT_USER\Software\Wine\Direct3D]" > $REPERTOIRE/tmp/glsl.reg
		echo "\"UseGLSL\"=\"N\"" >> $REPERTOIRE/tmp/glsl.reg
		regedit $REPERTOIRE/tmp/glsl.reg
		rm $REPERTOIRE/tmp/glsl.reg	 -f
	fi
}
Set_DXGrab ()
{
	# On ou Off
	if [ "$1" = "On" ]
	then
		echo "[HKEY_CURRENT_USER\Software\Wine\X11 Driver]" > $REPERTOIRE/tmp/managed.reg
		echo "\"DXGrab\"=\"Y\"" >> $REPERTOIRE/tmp/managed.reg
		regedit $REPERTOIRE/tmp/managed.reg
		rm $REPERTOIRE/tmp/managed.reg -f
	fi
	if [ "$1" = "Off" ]
	then
		echo "[HKEY_CURRENT_USER\Software\Wine\X11 Driver]" > $REPERTOIRE/tmp/managed.reg
		echo "\"DXGrab\"=\"N\"" >> $REPERTOIRE/tmp/managed.reg
		regedit $REPERTOIRE/tmp/managed.reg
		rm $REPERTOIRE/tmp/managed.reg -f
	fi
}
fonts_to_prefixe ()
{
	cd $WINEPREFIX/drive_c/windows/
	rm ./fonts -r -f
	ln -s $REPERTOIRE/fonts
}
wait_wine_exit () 
{
	attendre "$LNG_WAIT" "bash $PLAYONLINUX/bash/wait_wine_exit" "" 0 0 0 "" 0
}
installer_wine_version ()
{
	ARCHITECTURE="i386"
	if [ "$1" = "" ]
	then
		VERSIONENTRER=$(champ "$LNG_WINEVERSIONS_CHOOSEDOWNLOAD ($LNG_EXEMPLE : 0.9.32)")
	else
		VERSIONENTRER="$1"
	fi	
	if [ "$VERSIONENTRER" = "" ]
	then
		erreur "$LNG_WINEVERSIONS_MUSTSPECIFY"
		exit
	fi
	if [ ! -e "$REPERTOIRE/WineVersions/$VERSIONENTRER" ]
	then
		VERSION="$VERSIONENTRER~"
		ADRESSEDUDEB=$(lynx http://wine.budgetdedicated.com/archive/ -dump | grep "$VERSION" | grep wine_ | grep i386 | tac | tail -n 1)
		if [ "$ADRESSEDUDEB" = "" ]
		then
		 erreur "$(LNG_WINEVERSIONS_CANTFIND $VERSIONENTRER)"
		 exit
		fi

		ADRESSE_HTTP=$(expr index "$ADRESSEDUDEB" '.http://')
		ADRESSEDUDEB=${ADRESSEDUDEB:$ADRESSE_HTTP}

		mkdir $REPERTOIRE/WineVersions/$VERSIONENTRER -p
		cd $REPERTOIRE/WineVersions/$VERSIONENTRER
		telecharger "$LNG_WINEVERSIONS_DOWNLOADING $VERSIONENTRER" $ADRESSEDUDEB
		NOMDUDEB="$(ls *.deb)"
		if [ "$NOMDUDEB" = "" ]
		then
			erreur "$LNG_WINEVERSIONS_DOWNLOADFAILED"
		else
			#message "$LNG_WINEVERSIONS_INSTALL"
	
			ar p $NOMDUDEB data.tar.gz | gunzip > data.tar
			tar -xvf data.tar

			#message "$LNG_WINEVERSIONS_INSTALLATION_FINISHED"
	
			rm $NOMDUDEB -f
			rm data.tar -f
		fi
		
	fi
}
Set_WineVersion_Assign()
{
	cd $REPERTOIRE/WineVersions
	VERSIONTAPER="$1"
	JEU="$2"	
	if [ "$VERSIONTAPER" = "--reset" ]
	then
		export PATH=$VRAIPATH
		#message "$LNG_WINEVERSIONS_RESETSESSION"
	else
		if [ "$VERSIONTAPER" = "" ]
		then
			erreur "$LNG_WINEVERSIONS_MUSTSPECIFY"
		fi
		
		if [ ! -e "$REPERTOIRE/WineVersions/$VERSIONTAPER" ]
		then
			#message "$(LNG_WINEVERSIONS_NOTINSTALLED $VERSIONTAPER)"
			installer_wine_version "$VERSIONTAPER"
		fi
		if [ -e "$REPERTOIRE/configurations/installed/$JEUX" ]
		then
			FICHIER="$REPERTOIRE/tmp/nouveaulanceur"
			echo "#!/bin/bash" > $FICHIER
			echo "PATH=\"$REPERTOIRE/WineVersions/$VERSIONTAPER/usr/bin/:\$PATH\"" >> $FICHIER
			cat "$REPERTOIRE/configurations/installed/$JEU" | tail -n 4 >> $FICHIER
			mv $REPERTOIRE/tmp/nouveaulanceur "$REPERTOIRE/configurations/installed/$JEU"
			chmod +x "$REPERTOIRE/configurations/installed/$JEU"
		fi
	fi
}
Set_WineVersion_Session()
{
	cd $REPERTOIRE/WineVersions
	VERSIONTAPER="$1"	
	if [ "$VERSIONTAPER" = "--reset" ]
	then
		export PATH=$VRAIPATH
		#message "$LNG_WINEVERSIONS_RESETSESSION"
	else
		if [ "$VERSIONTAPER" = "" ]
		then
			erreur "$LNG_WINEVERSIONS_MUSTSPECIFY"
		fi
		
		if [ ! -e "$REPERTOIRE/WineVersions/$VERSIONTAPER" ]
		then
			#message "$(LNG_WINEVERSIONS_NOTINSTALLED $VERSIONTAPER)"
			installer_wine_version "$VERSIONTAPER"
		fi
		export PATH=$VRAIPATH
		export PATH="$REPERTOIRE/WineVersions/$VERSIONTAPER/usr/bin/:$PATH"
	fi
}

