#!/bin/sh
#
# Display data blocks as images using imagemagick
#
# author: esteve

if [ "$1" = "-H" ]; then
	echo "Display: display data blocks as images using imagemagick"
	exit 0
fi

if [ -z $1 ] 
	then 

	export MAIN_DIALOG='<vbox>
	<text>
	  <label>Display the current block </label>
	</text>
	<vbox>
		<combobox>
	            	<item>raw</item>
	        	<item>jpeg</item>
	        	<item>png</item>
	        	<item>bmp</item>
	        	<item>gif</item>
	        	<item>tga</item>
	        	<item>tif</item>
			<variable>DFTYPE</variable>
		</combobox>
	
		<hbox>
			<button ok></button>
		</hbox>

	</vbox>'
	eval `gtkdialog --program MAIN_DIALOG`
	if [ $DFTYPE = "raw" ]
		then
		export MAIN_DIALOG='<vbox>
			<text>
				<label>Display the current block </label>
			</text>
			<text>
				<label>
				Size ( ex. 320x240 )
				</label>
			</text>
			<entry>
				<variable>IMSIZE</variable>
			</entry>
			<text>
				<label>
				Depth ( ex. 8 )
				</label>
			</text>
			<entry>
				<variable>DEPTH</variable>
			</entry>
			<hbox>
				<button ok></button>
				<button cancel></button>
			</hbox>
		</vbox>'
		
	eval `gtkdialog --program MAIN_DIALOG`
	fi
else
	
	DFTYPE=$1
	IMSIZE=$2
	DEPTH=$3
fi
if [ $DFTYPE = "raw" ]
	then
	COUNTB=$( echo $IMSIZE | sed -e "s/x/*/" | bc )
	TMPFF=`mktemp` #/tmp/$RANDOM.gray
	rm -f $TMPFF
	TMPFF="${TMPFF}.gray"
	rm -f $TMPFF
	mkfifo $TMPFF
	dd if="$FILE" of=$TMPFF count=$COUNTB bs=1 skip=$OFFSET &
	display -size $IMSIZE -depth $DEPTH $TMPFF
	rm -f $TMPFF
else 
	TMPFF=`mktemp`.
	rm -f $TMPFF
	TMPFF="${TMPFF}.$DFTYPE"
	mkfifo $TMPFF
	dd if="$FILE" of=$TMPFF count=$BSIZE bs=1 skip=$OFFSET &
	display $TMPFF
	rm -f $TMPFF
fi
