#!/bin/sh
# (C) 2005-2008 by Marcos Guglielmetti, under GNU GPL v3 or later
#
# Versión 0.3 for Musix 1.0 R4 DVD
#



# Nuevo: cambia el valor de Períodos / Buffer si encuentra un
# chip de sonido HDA-Intel - HDA Intel
#  date sáb sep 15 12:38:42 CEST 2007
periodos_buffer="2"
cat /proc/asound/cards | grep "HDA-Intel" >/dev/null
if [ "$?" = "0" ]
then
periodos_buffer="3"
fi



# si jack está corriendo, todo bien, sino, lo iniciamos
JACK_ACTIVO=0
if pidof jackd 2>&1 >/dev/null; then
JACK_ACTIVO=1
fi

# Nuevo en Musix 0.79: sirve para informar al usuario sobre un Incorrecto funcionamiento de jack en tiempo real.
Kernel=`uname -a`
check_jack_realtime () {
ps -C jackd -cmL | grep FF
if [ "$?" = "0" ] # debug ###
then
	echo "Jack parece correr bien con esta configuración"	
else
	echo "jack parece tener problemas con esta configuración"

gmessage "El servidor de audio JACK parece tener problemas con esta configuración.
Controle que esté corriendo un kernel preparado para operaciones en tiempo real!
Jack audio server seems to have problems with realtime operations.
Check that you are running a realtime patched kernel!
$Kernel

Además, vea: /etc/security/limits.conf  
Also, see: /etc/security/limits.conf  

"
fi
}


# nuevo en Musix 0.79, chequea que el usuario tenga permisos para operación
# en tiempo real con jack, o que jack pueda funcionar en tiempo real.
if [ "$JACK_ACTIVO" = "1" ]
then
check_jack_realtime
fi


# Si no esta activo jack , lo iniciamos con valor predeterminado
if [ "$JACK_ACTIVO" = "0" ]
then
# NOTE. cambiandos a 48000
	# si el parámetro de entrada es P, carga solo Play
	if [ "$1" = "P" ]
	then
	echo "Playback only mode. Using raw MIDI driver"
	# Atención!! ### agregado driver MIDI raw -Xraw
	/usr/bin/jackd -T -R -P40 -t2000 -m -dalsa -dhw:0 -r48000 -p512  -n$periodos_buffer -P -s -S -Xraw &
	
	else
	# duplex
	echo "Duplex mode. Using raw MIDI driver"
	/usr/bin/jackd -T -R -P40 -t2000 -m -dalsa -dhw:0 -r48000 -p512 -n$periodos_buffer -s -S -Xraw &
	
	fi

sleep 3s
fi

QJACK_ACTIVO=0
if pidof qjackctl 2>&1 >/dev/null; then
QJACK_ACTIVO=1
fi


# Si no esta activo jack , lo iniciamos con valor predeterminado
if [ "$QJACK_ACTIVO" = "0" ]
then
qjackctl &
sleep 3s
fi
