#!/bin/sh

dumpspk >/dev/null 2>&1

if [ $? != 0 ]; then
  echo "Speakup isn't loaded, the version of loadspk and dumpspk that you have"
  echo "installed doesn't support your synthesizer, or you don't have access"
  echo "to the console."
  exit 1
fi

function getvalue() {
  value=`dumpspk 2>/dev/null | grep ^$1 | cut -f2 "-d=" | cut -f2 "-d "`
}

function setvalue() {
  loadspk >/dev/null <<END
$1 = $2
END
}

function newvalue() {
  if [ "$2" = "" ]; then
    desc=$1
  else
    desc=$2
  fi

  echo -n "Enter new $desc: "
  read value
  setvalue $1 $value
}

quitflag=0

while [ $quitflag = 0 ]; do
  echo
  getvalue punc_level

  case $value in
  0)
    value="none"
    ;;
  1)
    value="some"
    ;;
  2)
    value="most"
    ;;
  3)
    value="all"
    ;;
  *)
    value="unknown"
    ;;
  esac

  echo "1:  Punctuation level is $value."
  getvalue rate
  echo "2:  Rate is $value."
  getvalue volume
  echo "3:  Volume is $value."
  getvalue pitch
  echo "4:  Pitch is $value."
  getvalue tone
  echo "5:  Tone is $value."
  echo "6:  Save settings and exit."
  echo "7:  Exit without saving; changes will last until next reboot."
  echo
  echo -n "Enter your choice: "
  read choice

  case $choice in
  1)
    cat <<END

The following punctuation levels are available:

1.  None
2.  Some
3.  Most
4.  All

END
    echo -n "Enter new punctuation level: "
    read level
    setvalue punc_level `expr $level - 1`
    ;;
  2)
    newvalue rate
    ;;
  3)
    newvalue volume
    ;;
  4)
    newvalue pitch
    ;;
  5)
    newvalue tone
    ;;
  6)
    if [ `whoami` = "root" ]; then
      dumpspk >/etc/speakup.conf 2>/dev/null
      quitflag=1
    else
      echo "You must be root to do this."
    fi
    ;;
  7)
    quitflag=1
    ;;
  *)
    echo "That isn't one of your choices."
    ;;
  esac
done
