#!/bin/sh

#--------------------------------------------
# Dieses Skript konfiguriert easyVDR fuer das
# Asus M2NPV-VM / M2N-VM HDMI / A8N VM CSM
# Voraussetzung ist Internetzugang
#---------------------------------------------
# Version: 	0.0.4
#---------------------------------------------
# Autor: 	Wicky (0.0.1)
#		maxx  (0.0.2)
#---------------------------------------------
#
# v0.0.3 28.3.08 xine/xineliboutput nicht mehr standardmäßig kompilieren
# v0.0.4 31.3.08 FF-Erkennung eingefügt
#

# Funktion-Libs einbinden
. /usr/bin/easyvdr/functions/easyvdr_m2n_functions

version="0.0.4"
nvidia="yes"
compile="no"
alsa="no"
v4l="no"
xprog="no"
COMPILE_OPT=""

function usage ()
{
        echo ""
	echo "easyvdr-config-m2npv.sh $version"
	echo ""
	echo "Options:"
	echo "        -f,  --force            Überprüfung auf kompatible Hardware übergehen"
	echo "        -c,  --compile          download+compile xinelib+xineliboutput"
	echo "        -nc, --nocompile        kein download+compile xinelib+xineliboutput (standard)"
	echo "        -a,  --alsa             compile alsa"
	echo "        -v,  --v4l              compile v4l-dvb"
	echo "        -n,  --nvidia           die nvidia-Installation durchführen (standard)"
	echo "        -nn, --nonvidia         die nvidia-Installation auslassen"
	echo "        -x,  --xprog            firefox, flash, vlc, acrobat, xmms, ... installieren"
	echo "        -h,  --help             Hilfe anzeigen"
	echo
}
############################################################
# OnlineCheck(lan_driver)
#
function OnlineCheck() {
   echo "---> Internetverbindung wird überprüft (LANDriver=$1)..."
   ping -c1 www.google.de >/dev/null 2>&1
   if [ $? -ne 0 ]; then
      echo "kein Internet - LAN-Kabel an Router dran? Router kann DHCP? Versuche jetzt LAN einzurichten..."
      sleep 5
      mySetSysconfig LAN_NETWORK_DRIVER $1
      mySetSysconfig LAN_USE_DHCP yes
      execute /etc/init.d/RCLanstart start
      ping -c1 www.google.de >/dev/null 2>&1
      if [ $? -ne 0 ]; then
         echo "kein Internet -> Bitte überprüfen - ENDE"
         sleep 5
         exit 1
      fi
   fi
   echo "Internet funktioniert! Wir sind online!"
   sleep 3
}
############################################################
# ConfigSound(): Konfiguriert die erste Sound Karte des vdr
#
function ConfigSound() {
   soundcmd=""
   echo "options snd-hda-intel position_fix=1 model=3stack" > /etc/modprobe.d/alsa-fix
   if [ "x$alsa" = "xyes" ]; then
      CompileAlsa
   fi

   ncard=`hwinfo --sound | grep "Driver Activation Cmd" | wc -l`
   if [ $ncard -gt 0 ]; then
      Hwinfo sound "Driver Activation Cmd"
      soundcmd=$hwinfo_result
      echo "---> Sound wird konfiguriert ..."
      if [ $ncard -gt 1 ]; then
         echo " $ncard Soundkarten gefunden. Versuche gleich ein \"$soundcmd\""
	 sleep 10
      fi
      sleep 3
      alsaconf
      echo " Starte Sound Treiber: $soundcmd"
      `$soundcmd`
      echo
      sleep 2
      echo " Alle Regler mit M entmuten, Bewegen mit den Pfeil-Tasten und den alsamixer mit ESC verlassen!"
      sleep 5
      alsamixer
      alsactl store
      sleep 5
   else
   	echo " keine Soundkarte erkannt. Good Bye..."
        sleep 2
   fi
}

ConfigSysconfig() {
   mySetSysconfig STARTKONSOLE          "7"
#   mySetSysconfig SHUTDOWNMETHOD        "NVRAMWakeup"
   mySetSysconfig SHUTDOWNMETHOD        "ACPI"
   mySetSysconfig NVRAM_DIRECTISA       "yes"
   mySetSysconfig NVRAM_FORCE_REBOOT    "yes"
   mySetSysconfig NVRAM_IWNAME          ""
}

function GetParam() {
	# Skriptparameter einlesen
	while [ $# -gt 0 ]; do
		case "$1" in
			"--force"	|"-f")	force="yes";
						FORCE_OPT="--force"
						shift;;
			"--compile"	|"-c")	COMPILE_OPT="--compile";
						shift;;
			"--nocompile"	|"-nc")	COMPILE_OPT="";
						shift;;
			"--nvidia"	|"-n")	nvidia="yes";
						shift;;
			"--nonvidia"	|"-nn")	nvidia="no";
						shift;;
			"--alsa"	|"-a")	alsa="yes";
						shift;;
			"--v4l"		|"-v")	v4l="yes";
						shift;;
			"--xprog"	|"-x")	xprog="yes";
						shift;;
			"--help"        |"-h")  usage;
						exit;;
			*)			echo "Parameter: $1 unbekannt"
						usage;
						exit;;
		esac
	done
}

function main {
	GetParam $*
	IsCompatibleOrForced
	if [ $? -eq 0  ]; then
	        IsFF
	        if [ $? -eq 0 ] && [ "$force" != "yes" ]; then
		   echo          "---> FF Karte erkannt!                                                        "
	           read -t 30 -p "Ausgabe über nvidia trotzdem installieren? [j/N] (CR=N, Timeout 30 Sek.) " ffinstall
		   if [ "$ffinstall" != "j" ] && [ "$ffinstall" != "J" ]; then
		      echo "                                                                              "
		      echo "FF Karte macht die Ausgabe                                                    "
		      exit 0
		   fi
	        fi

		echo "                                                                             "
		echo "***** easyVDR wird nun für nvidia Ausgabe eingerichtet. *****                "
		echo "                                                                             "
		echo "---> Der VDR-Prozess wird falls notwendig beendet...                         "

		stop_vdr
		OnlineCheck forcedeth

		echo "---> X wird installiert ...                                                  "
		sleep 3
		/usr/bin/easyvdr/easyvdr-install-x.sh
		if [ "x$xprog" = "xyes" ]; then
		        echo "---> X-Programme werden installiert ...                                      "
			sleep 3
			/usr/bin/easyvdr/easyvdr-install-xprog.sh
		fi

		##### falls nvidia erkannt und Inst. auch gewollt => nvidia installieren #####
                IsNvidia
		if [ $? -eq 0 ] && [ "x$nvidia" = "xyes" ]; then
			echo "---> nvidia wird installiert ..."
			sleep 3
			/usr/bin/easyvdr/easyvdr-install-nvidia.sh
		fi

		echo "---> sysconfig wird konfiguriert ..."
		sleep 3
		ConfigSysconfig
		/usr/bin/easyvdr/easyvdr-config-xineliboutput.sh -fe=local $FORCE_OPT $COMPILE_OPT

		sleep 3
		/usr/bin/easyvdr/easyvdr-config-fluxbox.sh -vo=m2npv-dvi -fe=local $FORCE_OPT

		if [ "x$v4l" = "xyes" ]; then
			echo "---> v4l-dvb wird installiert ..."
			sleep 3
			Compilev4l
		fi
		ConfigSound
		/usr/bin/easyvdr/easyvdr-config-x.sh
		sleep 3
		
		start_vdr
	else
		MessageNotCompatible
	fi
}
	
main $*
