diff --git a/ChangeLog b/ChangeLog
index 832b6821..bce487eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,13 @@
- changed the maximum number of clients supported by the server from 20 to 50
+TODO x64 deploy version for Windows -> change deploy script
+
+TODO client: larger sound card buffers are managed by conversion buffer, not in processintern for loop (note iSndCrdFrameSizeFactor!)
+
+TODO check why for some servers we do not get client list in server list
+
+TODO check server list registration for correct behavior
diff --git a/windows/deploy_windows.bat b/windows/deploy_windows.bat
index 53d414fd..16c31562 100755
--- a/windows/deploy_windows.bat
+++ b/windows/deploy_windows.bat
@@ -1,36 +1,72 @@
@echo off
rem To set up a new Qt and Visual Studio version
-rem - set environment path variable to the correct Qt bin directory (e.g. 32 bit version)
+rem - set environment path variable to the correct Qt bin directories:
+rem - QTDIR32: points to the Qt 32 bit binaries, e.g., C:\Qt\5.10.1\msvc2015
+rem - QTDIR64: points to the Qt 64 bin binaries, e.g., C:\Qt\5.10.1\msvc2015_64
rem - if using Visual Studio Express version, download the redistributable (it is not automatically there)
rem - change the Qt distribute dll names in the installer.nsi file (some contain version numbers)
rem settings and check ---------------------------------------------------------
set NSIS_PATH=%PROGRAMFILES(x86)%\NSIS
+set VS_REDIST32_EXE=vc_redist.x86.exe
+set VS_REDIST64_EXE=VC_redist.x64.exe
if "%VSINSTALLDIR%" == "" goto vsenvproblem
+if "%QTDIR32%" == "" goto qtdirproblem
+if "%QTDIR64%" == "" goto qtdirproblem
+cd ..
+
+
+rem ########################## 32 bit build ####################################
+set QTDIR=%QTDIR32%
+set Path=%QTDIR32%\bin;%Path%
+rem create visual studio project file ------------------------------------------
+qmake -tp vc -spec win32-msvc
+
+rem TODO qmake seems to use the incorrect VS version to create the project file.
+rem As a quick hack I simply replace the toolset version which seems to work.
+powershell -Command "(gc jamulus.vcxproj) -replace 'v141', 'v140' | Out-File -encoding ASCII jamulus.vcxproj"
+powershell -Command "(gc jamulus.vcxproj) -replace 'x64', 'Win32' | Out-File -encoding ASCII jamulus.vcxproj"
+powershell -Command "(gc jamulus.vcxproj) -replace ';WIN64', '' | Out-File -encoding ASCII jamulus.vcxproj"
+powershell -Command "(gc jamulus.vcxproj) -replace '-DWIN64 ', '' | Out-File -encoding ASCII jamulus.vcxproj"
+
+rem clean and compile solution -------------------------------------------------
+devenv Jamulus.vcxproj /Clean "Release|x86"
+devenv Jamulus.vcxproj /Build "Release|x86"
+mkdir release\x86
+copy release\Jamulus.exe release\x86\
+
+
+rem ########################## 64 bit build ####################################
+set QTDIR=%QTDIR64%
+set Path=%QTDIR64%\bin;%Path%
rem create visual studio project file ------------------------------------------
-cd ..
-qmake -tp vc -spec win32-msvc
+qmake -tp vc
rem TODO qmake seems to use the incorrect VS version to create the project file.
rem As a quick hack I simply replace the toolset version which seems to work.
powershell -Command "(gc jamulus.vcxproj) -replace 'v141', 'v140' | Out-File -encoding ASCII jamulus.vcxproj"
rem clean and compile solution -------------------------------------------------
-devenv Jamulus.vcxproj /Clean "Release|x86"
-devenv Jamulus.vcxproj /Build "Release|x86"
+devenv Jamulus.vcxproj /Clean "Release|x64"
+devenv Jamulus.vcxproj /Build "Release|x64"
-rem create installer -----------------------------------------------------------
+
+rem ########################## create installer ################################
cd windows
"%NSIS_PATH%\makensis.exe" installer.nsi
-
move Jamulusinstaller.exe ../deploy/Jamulus-version-installer.exe
-
goto endofskript
+
:vsenvproblem
-echo Use the Visual Studio Command Prompt to call this skript
+echo Use the Visual Studio x86 x64 Cross Tools Command Prompt to call this skript
+goto endofskript
+
+:qtdirproblem
+echo The QTDIR32 and QTDIR64 is not set, please set these environment variables correclty before calling this script
+goto endofskript
:endofskript
diff --git a/windows/installer.nsi b/windows/installer.nsi
index 30b88845..8f04714e 100755
--- a/windows/installer.nsi
+++ b/windows/installer.nsi
@@ -1,4 +1,6 @@
; Jamulus NSIS installer script
+!include LogicLib.nsh
+!include x64.nsh
!define APP_NAME "Jamulus"
!define APP_EXE "Jamulus.exe"
@@ -42,27 +44,44 @@ Section
SetOutPath $INSTDIR
; main application
+ ${If} ${RunningX64}
File "${BINARY_PATH}${APP_EXE}"
+ ${Else}
+ File "${BINARY_PATH}x86\${APP_EXE}"
+ ${EndIf}
; QT dlls
- File "$%QTDIR%\bin\Qt5Core.dll"
- File "$%QTDIR%\bin\Qt5Gui.dll"
- File "$%QTDIR%\bin\Qt5Widgets.dll"
- File "$%QTDIR%\bin\Qt5Network.dll"
- File "$%QTDIR%\bin\Qt5Xml.dll"
- File "$%QTDIR%\bin\D3DCompiler_47.dll"
- ; File "$%QTDIR%\bin\icudt54.dll"
- ; File "$%QTDIR%\bin\icuin54.dll"
- ; File "$%QTDIR%\bin\icuuc54.dll"
- File "$%QTDIR%\bin\libEGL.dll"
- File "$%QTDIR%\bin\libGLESv2.dll"
+ ${If} ${RunningX64}
+ File "$%QTDIR64%\bin\Qt5Core.dll"
+ File "$%QTDIR64%\bin\Qt5Gui.dll"
+ File "$%QTDIR64%\bin\Qt5Widgets.dll"
+ File "$%QTDIR64%\bin\Qt5Network.dll"
+ File "$%QTDIR64%\bin\Qt5Xml.dll"
+ File "$%QTDIR64%\bin\D3DCompiler_47.dll"
+ File "$%QTDIR64%\bin\libEGL.dll"
+ File "$%QTDIR64%\bin\libGLESv2.dll"
+ ${Else}
+ File "$%QTDIR32%\bin\Qt5Core.dll"
+ File "$%QTDIR32%\bin\Qt5Gui.dll"
+ File "$%QTDIR32%\bin\Qt5Widgets.dll"
+ File "$%QTDIR32%\bin\Qt5Network.dll"
+ File "$%QTDIR32%\bin\Qt5Xml.dll"
+ File "$%QTDIR32%\bin\D3DCompiler_47.dll"
+ File "$%QTDIR32%\bin\libEGL.dll"
+ File "$%QTDIR32%\bin\libGLESv2.dll"
+ ${EndIf}
; other files
File "..\COPYING"
- ; temporarily create Microsoft Visual Studio redistributable,
- File "${VS_REDIST_EXE}"
- ExecWait '"$INSTDIR\${VS_REDIST_EXE}" /q /norestart'
+ ; temporarily create Microsoft Visual Studio redistributable
+ ${If} ${RunningX64}
+ File "$%VS_REDIST64_EXE%"
+ ExecWait '"$INSTDIR\$%VS_REDIST64_EXE%" /q /norestart'
+ ${Else}
+ File "$%VS_REDIST32_EXE%"
+ ExecWait '"$INSTDIR\$%VS_REDIST32_EXE%" /q /norestart'
+ ${EndIf}
; uninstaller
WriteUninstaller $INSTDIR\${UNINSTALL_EXE}
@@ -76,12 +95,21 @@ Section
CreateShortCut "$SMPROGRAMS\${APP_NAME}\${UNINSTALL_EXE}.lnk" "$INSTDIR\${UNINSTALL_EXE}"
; cleanup: remove temporary Microsoft Visual Studio redistributable executable
- Delete $INSTDIR\${VS_REDIST_EXE}
+ ${If} ${RunningX64}
+ Delete $INSTDIR\$%VS_REDIST64_EXE%
+ ${Else}
+ Delete $INSTDIR\$%VS_REDIST32_EXE%
+ ${EndIf}
; additional platform dlls
SetOutPath $INSTDIR\platforms
- File "$%QTDIR%\plugins\platforms\qwindows.dll"
- File "$%QTDIR%\plugins\platforms\qminimal.dll"
+ ${If} ${RunningX64}
+ File "$%QTDIR64%\plugins\platforms\qwindows.dll"
+ File "$%QTDIR64%\plugins\platforms\qminimal.dll"
+ ${Else}
+ File "$%QTDIR32%\plugins\platforms\qwindows.dll"
+ File "$%QTDIR32%\plugins\platforms\qminimal.dll"
+ ${EndIf}
SectionEnd
@@ -107,9 +135,6 @@ Delete $INSTDIR\Qt5Widgets.dll
Delete $INSTDIR\Qt5Network.dll
Delete $INSTDIR\Qt5Xml.dll
Delete $INSTDIR\D3DCompiler_47.dll
-; Delete $INSTDIR\icudt54.dll
-; Delete $INSTDIR\icuin54.dll
-; Delete $INSTDIR\icuuc54.dll
Delete $INSTDIR\libEGL.dll
Delete $INSTDIR\libGLESv2.dll
Delete $INSTDIR\COPYING