#! /bin/sh
## dmx-value to percent conversion, at least to get it ballparkish.
## Usage:  <this>  [@]VALUE[%]
##	if plain VALUE, treat as DMX and convert to %
##	if @VALUE or VALUE%, treat as percentage and convert to DMX
##	  [the "@5" convention also works to mean 50%, so use "@05"
##	  or "5%" to indicate 5%]

ISPC=''
IARG="$1"
case "$IARG" in
  '' ) echo "Usage: $0 [@]VALUE[%]" ; exit 1 ;;
  ?*% ) ISPC=Y ;;
  @? ) ISPC=Y ; IARG="${IARG}0" ;;
  @??* ) ISPC=Y ;;
esac
case "$ISPC" in
  Y )
    PVAL=`echo "$IARG" | sed -e 's+%$++' -e 's+^@++'`
    case "$PVAL" in
      [0-9] ) : ;;
      [0-9][0-9] ) : ;;
      100 ) : ;;
      ?* ) echo "invalid %" ; exit 1 ;;
    esac
    DVAL=`echo "$PVAL 256 * 100 / p" | dc`
    test "$DVAL" = "0" || DVAL=`expr $DVAL - 1`
  ;;
  '' )
    DVAL="$IARG"
    case "$DVAL" in
      [0-9] ) : ;;
      [0-9][0-9] ) : ;;
      [12][0-9][0-9] ) : ;;
      ?* ) echo "invalid dmx value" ; exit 1 ;;
    esac
    PVAL=`echo "4 k $DVAL 255 / 100 * 0 k 1 / p" | dc`
  ;;
esac
echo "$PVAL% = dmx $DVAL"
exit 0
