#!/bin/bash
#
# integrate all needed source-files from a TightVNC4Win-source-tree and
# patch them for make them working with GCC and fit iTALC's purposes
#
# Copyright (c) 2006 Tobias Doerffel
#

if [ -z $1 ] ; then
	echo "Usage:	tightvnc4win_integrate <path-to-tightvnc4win-sources>"
	exit
fi

tightvnc4winsrc=$1

if [ ! -e $tightvnc4winsrc/WinVNC.cpp ] ; then
	tightvnc4winsrc=$1/winvnc
	if [ ! -e $tightvnc4winsrc/WinVNC.cpp ] ; then
		echo "Could not find a valid source-tree of TightVNC for Windows in $1"
		exit
	fi
fi

# prepare destination dir
destdir=ica/win32/src
mkdir -p $destdir
rm -rf $destdir/*

# copy files
cp $tightvnc4winsrc/VNCHooks/VNCHooks.h $destdir
cp $tightvnc4winsrc/VNCHooks/VNCHooks.cpp $destdir
cp $tightvnc4winsrc/omnithread/nt.cpp $destdir
cp $tightvnc4winsrc/omnithread/nt.h $destdir
cp $tightvnc4winsrc/omnithread/omnithread.h $destdir
cp $tightvnc4winsrc/VSocket.h $destdir
cp $tightvnc4winsrc/vncEncodeCoRRE.cpp $destdir
cp $tightvnc4winsrc/vncEncodeHexT.cpp $destdir
cp $tightvnc4winsrc/stdhdrs.h $destdir
cp $tightvnc4winsrc/vncBuffer.h $destdir
cp $tightvnc4winsrc/Log.h $destdir
cp $tightvnc4winsrc/vncTimedMsgBox.h $destdir
cp $tightvnc4winsrc/resource.h $destdir
cp $tightvnc4winsrc/rfb.h $destdir
cp $tightvnc4winsrc/vncServer.h $destdir
cp $tightvnc4winsrc/vncDesktop.h $destdir
cp $tightvnc4winsrc/vncKeymap.cpp $destdir
cp $tightvnc4winsrc/VSocket.cpp $destdir
cp $tightvnc4winsrc/WinVNC.cpp $destdir
cp $tightvnc4winsrc/MinMax.h $destdir
cp $tightvnc4winsrc/vncService.cpp $destdir
cp $tightvnc4winsrc/vncEncodeTight.h $destdir
cp $tightvnc4winsrc/vncauth.c $destdir/vncauth_w32.c
cp $tightvnc4winsrc/VideoDriver.cpp $destdir
cp $tightvnc4winsrc/d3des.c $destdir/d3des_w32.c
cp $tightvnc4winsrc/vncEncodeHexT.h $destdir
cp $tightvnc4winsrc/WinVNC.h $destdir
cp $tightvnc4winsrc/vncInstHandler.cpp $destdir
cp $tightvnc4winsrc/vncKeymap.h $destdir
cp $tightvnc4winsrc/d3des.h $destdir
cp $tightvnc4winsrc/vncClient.h $destdir
cp $tightvnc4winsrc/vncRegion.h $destdir
cp $tightvnc4winsrc/vncServer.cpp $destdir
cp $tightvnc4winsrc/vncInstHandler.h $destdir
cp $tightvnc4winsrc/tableinittctemplate.cpp $destdir
cp $tightvnc4winsrc/vncClient.cpp $destdir
cp $tightvnc4winsrc/RectList.h $destdir
cp $tightvnc4winsrc/vncEncodeZlib.h $destdir
cp $tightvnc4winsrc/stdhdrs.cpp $destdir
cp $tightvnc4winsrc/tableinitcmtemplate.cpp $destdir
cp $tightvnc4winsrc/vncEncodeRRE.cpp $destdir
cp $tightvnc4winsrc/vncEncodeTight.cpp $destdir
cp $tightvnc4winsrc/vncSockConnect.h $destdir
cp $tightvnc4winsrc/RectList.cpp $destdir
cp $tightvnc4winsrc/MinMax.cpp $destdir
cp $tightvnc4winsrc/translate.cpp $destdir
cp $tightvnc4winsrc/Log.cpp $destdir
cp $tightvnc4winsrc/vncEncodeRRE.h $destdir
cp $tightvnc4winsrc/vncEncoder.cpp $destdir
cp $tightvnc4winsrc/vncBuffer.cpp $destdir
cp $tightvnc4winsrc/vncEncodeZlib.cpp $destdir
cp $tightvnc4winsrc/vncRegion.cpp $destdir
cp $tightvnc4winsrc/vncService.h $destdir
cp $tightvnc4winsrc/translate.h $destdir
cp $tightvnc4winsrc/vncPasswd.h $destdir
cp $tightvnc4winsrc/VideoDriver.h $destdir
cp $tightvnc4winsrc/vncEncoder.h $destdir
cp $tightvnc4winsrc/vncEncodeCoRRE.h $destdir
cp $tightvnc4winsrc/vncSockConnect.cpp $destdir
cp $tightvnc4winsrc/VTypes.h $destdir
cp $tightvnc4winsrc/vncauth.h $destdir
cp $tightvnc4winsrc/tabletranstemplate.cpp $destdir
cp $tightvnc4winsrc/vncDesktop.cpp $destdir

# patch files
curdir=`pwd`
cd $destdir
patch -p1 < $curdir/tightvnc4win_italc.diff
