1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
  
     | 
    
      #!/bin/bash
if [ ! -d db ]; then
	echo "You must be in the base directory of ddccontrol-db."
	exit 0
fi
echo "Paste file, then type Ctrl-D:"
cat > tmp
echo
PNPNAME=`grep "Plug and Play ID: " tmp | sed -e "s/.* \(.......\) .*/\1/"`
CAPSSTART=`grep -n "Raw output" tmp | sed -e "s/^\([0-9]*\).*/\1/"`
CAPSEND=`grep -n "Parsed output" tmp | sed -e "s/^\([0-9]*\).*/\1/"`
let CAPSTAIL=CAPSEND-1
let CAPSHEAD=CAPSEND-CAPSSTART
CAPS=`head -n $CAPSTAIL tmp | tail -n $CAPSHEAD | sed -e "s/Raw output: //"`
LIST="87 CA CC E2 F5"
for elem in $LIST
do
	echo $CAPS | grep -q -i $elem 
	if [ $? = 1 ]; then
		grep -q -i "Control 0x$elem:" tmp
		if [ $? = 0 ]; then
			LISTC="$LISTC $elem"
		fi
	fi
done
echo "Will add controls $LISTC"
# Detect SAMmb6
grep -q " 0xdc" tmp
if [ $? = 0 ]; then
	COUNT=`grep "0xdc" tmp | sed -e "s:.*/[0-9]*/\([0-9]*\) .*$:\1:"`
	case $COUNT in
		7) echo "Will include SAMmb6. Altought maximum is 7."; SAMmb6=1 ;;
		240) echo "Will include SAMmb6."; SAMmb6=1 ;;
		6) echo "Will include SAMmb6."; SAMmb6=1 ;;
		5) echo "Will include SAMmb6."; SAMmb6=1 ;;
		4) SAMmb6=0 ;;
		*) echo "Unable to detect SAMmb6 ($COUNT), please put a note in the file." ;;
	esac
fi
# Detect SAMcp10
grep -q " 0xe0" tmp
if [ $? = 0 ]; then
	COUNT=`grep "0xe0" tmp | sed -e "s:.*/[0-9]*/\([0-9]*\) .*$:\1:"`
	case $COUNT in
		10) echo "Will include SAMcp10."; SAMcp10=1 ;;
		4) SAMcp10=0 ;;
		3) SAMcp10=0 ;;
		2) SAMcp10=0 ;;
		*) echo "Unable to detect SAMcp10 ($COUNT), please put a note in the file." ;;
	esac
fi
# Detect SAMg9
grep -q " 0xf2" tmp
if [ $? = 0 ]; then
	COUNT=`grep "0xf2" tmp | sed -e "s:.*/[0-9]*/\([0-9]*\) .*$:\1:"`
	case $COUNT in
		9) echo "Will include SAMg9, WARNING, there are 2 kinds of 9-values gamma controls."; SAMg9=1 ;;
		2) SAMg9=0 ;;
		*) echo "Unable to detect SAMg9 ($COUNT), please put a note in the file." ;;
	esac
fi
FILE="db/monitor/$PNPNAME.xml"
if [ -f $FILE ]; then
	echo "DB file exists ($FILE), aborting."
	exit 0
fi
echo "Enter monitor name, followed by 2 enters:"
NAME=`cat | head -n 1`
echo "Enter author name, followed by 2 enters:"
AUTHOR=`cat | head -n 1`
echo "<?xml version=\"1.0\"?>" > $FILE
echo "<monitor name=\"$NAME\" init=\"standard\">" >> $FILE
echo "	<!--- $CAPS -->" >> $FILE
CNT=`echo $LISTC | wc -c`
if [ $CNT -gt 2 ]; then
	echo "	<caps add=\"(vcp($LISTC))\"/>" >> $FILE
fi
test a$SAMmb6 = a1 && echo "	<include file=\"SAMmb6\"/>" >> $FILE
test a$SAMcp10 = a1 && echo "	<include file=\"SAMcp10\"/>" >> $FILE
test a$SAMg9 = a1 && echo "	<include file=\"SAMg9\"/>" >> $FILE
echo "	<include file=\"SAMlcd\"/>" >> $FILE
echo "</monitor>" >> $FILE
echo "Done!"
echo "You should now run:"
echo "svn add $FILE && svn ci -m \"Add support for $NAME, thanks to $AUTHOR.\""
rm tmp
 
     |