#!/bin/bash
#
#Copyright 2012 - 2019 CurlyMo, mk01 & mkreisl <development@xbian.org>
#
#This file is part of XBian - XBMC on the Raspberry Pi.
#
#XBian 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 3 of the License, or (at your option) any later
#version.
#
#XBian 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 XBian. If not, see <http://www.gnu.org/licenses/>

#|------------------------------------|
#|          Global variables          |
#|------------------------------------|

# The arguments this module accepts
ARGUMENTS=(webserver tvoff exitoff haltoff tvexiton priority usbauto usbsync usbshare sharerw uuidname hddspin);

#|------------------------------------|
#|          Include files             |
#|------------------------------------|

source $BASEPATH/modules/xbmc/functions
if [ $GUIMODE -eq 1 ]; then
	source $BASEPATH/modules/xbmc/dialogs
fi

#|------------------------------------|
#|           Main program             |
#|------------------------------------|

# Executes the GUI version of this module
function showGUIFn() {
	showXBMCSettingsDlg;
	if [ $? -eq 0 ]; then
		if [ $RETURN -eq 1 ]; then
			showXBMCWebserverDlg;
			STATE=$?;
			setXBMCWebserverFn $STATE;
			if [ $? -eq 1 ]; then
				if [ $STATE -eq 0 ]; then
					showXBMCWebserverSuccessEnabledDlg;
				else
					showXBMCWebserverSuccessDisabledDlg;
				fi
#				askForRebootFn;
			else
				if [ $STATE -eq 0 ]; then
					showXBMCWebserverFailedEnableDlg;
				else
					showXBMCWebserverFailedDisableDlg;
				fi
			fi
			showGUIFn;
		fi
	fi
}

# Executes the command line version of this module
#  $1 Argument [String]
#  $2 XBMC setting [String]
# webserver
#  $3 [String] select[enable|disable]
# Returns
#  *webserver
#  - 1: Enable|Success
#  - 0: Disabled|Failed
function showCMDFn() {
	case $1 in
		webserver)
			if [ $# -eq 2 ]; then
				if [ "$2" == "select" ]; then
					getXBMCWebserverFn;
					echo $?;
				elif [ "$2" == "enable" ]; then
					setXBMCWebserverFn 1
					echo $?
#					askForRebootFn;
				elif [ "$2" == "disable" ]; then
					setXBMCWebserverFn 0
					echo $?
#					askForRebootFn;
				else
					echo -1
				fi
			else
				echo -1;
			fi
		;;
                tvoff)
                    if [ $# -gt 1 ]; then
                        shift 1
                        setXBMCtvoffFn $@
                    else
                        getXBMCtvoffFn
                    fi
                ;;
                tvexiton)
                    if [ $# -gt 1 ]; then
                        setXBMCtvonFn $2
                    else
                        getXBMCtvonFn
                    fi
                    echo $((1-$?))
                ;;
                haltoff)
                    if [ $# -gt 1 ]; then
                        setXBMChaltoffFn $2
                    else
                        getXBMChaltoffFn
                    fi
                    echo $((1-$?))
                ;;
                exitoff)
                    if [ $# -gt 1 ]; then
                        setXBMCexitoffFn $2
                    else
                        getXBMCexitoffFn
                    fi
                    echo $((1-$?))
                ;;
                usbauto)
                    if [ $# -eq 2 ]; then
                        setXBMCusbautoFn $2
                        echo $((1-$?))
                    else
                        getXBMCusbautoFn
                        echo $((1-$?))
                    fi
                ;;
                usbsync)
                    if [ $# -eq 2 ]; then
                        setXBMCusbsyncFn $2
                        echo $((1-$?))
                    else
                        getXBMCusbsyncFn
                        echo $((1-$?))
                    fi
                ;;
                usbshare)
                    if [ $# -eq 2 ]; then
                        setXBMCusbshareFn $2
                        echo $((1-$?))
                    else
                        getXBMCusbshareFn
                        echo $((1-$?))
                    fi
                ;;
                sharerw)
                    if [ $# -eq 2 ]; then
                        setXBMCsharerwFn $2
                        echo $((1-$?))
                    else
                        getXBMCsharerwFn
                        echo $((1-$?))
                    fi
                ;;
                uuidname)
                    if [ $# -eq 2 ]; then
                        setXBMCuuidnameFn $2
                        echo $((1-$?))
                    else
                        getXBMCuuidnameFn
                        echo $((1-$?))
                    fi
                ;;
                priority)
                    if [ $# -gt 1 ]; then
                        setXBMCpriorityFn $2 $3 $4
                        echo $((1-$?))
                    else
                        getXBMCpriorityFn
                        echo $(echo $(echo $((1-$?)); grep PSAVER /etc/default/xbmc | awk -F'=' '{print $2}';  grep PPLAYER /etc/default/xbmc | awk -F'=' '{print $2}')| tr "\"" " ")
                    fi
                ;;
                hddspin)
                    if [ $# -gt 1 ]; then
                        setXBMChddspinFn $2 $3
                        echo $((1-$?))
                    else
                        min=$(getXBMChddspinFn)
                        if [ $min -gt 0 ]; then
                            echo "1 $min"
                        else
                            echo "0 0"
                        fi
                    fi
                ;;
	esac;
}
