diff --git a/plugins/win-dshow/virtualcam-module/virtualcam-install.bat.in b/plugins/win-dshow/virtualcam-module/virtualcam-install.bat.in index f28696e8b41902..865e740a24bbf7 100644 --- a/plugins/win-dshow/virtualcam-module/virtualcam-install.bat.in +++ b/plugins/win-dshow/virtualcam-module/virtualcam-install.bat.in @@ -17,12 +17,25 @@ goto checkAdmin if %errorLevel% == 0 ( echo 32-bit Virtual Cam found, skipping install... echo. + goto CheckDLLContinue ) else ( echo 32-bit Virtual Cam not found, installing... goto install32DLL ) :CheckDLLContinue + if /i "%PROCESSOR_ARCHITECTURE%"=="ARM64" ( + echo Checking for ARM64 Virtual Cam registration... + reg query "HKLM\SOFTWARE\Classes\CLSID\{@VIRTUALCAM_GUID@}" >nul 2>&1 + if %errorLevel% == 0 ( + echo ARM64 Virtual Cam found, skipping install... + echo. + goto endSuccess + ) else ( + echo ARM64 Virtual Cam not found, installing... + goto installARM64DLL + ) + ) echo Checking for 64-bit Virtual Cam registration... reg query "HKLM\SOFTWARE\Classes\CLSID\{@VIRTUALCAM_GUID@}" >nul 2>&1 if %errorLevel% == 0 ( @@ -45,12 +58,12 @@ goto checkAdmin if %errorLevel% == 0 ( echo 32-bit Virtual Cam successfully installed echo. + goto checkDLLContinue ) else ( echo 32-bit Virtual Cam installation failed echo. goto end ) - goto checkDLLContinue :install64DLL echo Installing 64-bit Virtual Cam... @@ -70,6 +83,24 @@ goto checkAdmin goto end ) +:installARM64DLL + echo Installing ARM64 Virtual Cam... + if exist "%~dp0\data\obs-plugins\win-dshow\obs-virtualcam-module-arm64.dll" ( + "%SystemRoot%\System32\regsvr32.exe" /i /s "%~dp0\data\obs-plugins\win-dshow\obs-virtualcam-module-arm64.dll" + ) else ( + "%SystemRoot%\System32\regsvr32.exe" /i /s obs-virtualcam-module-arm64.dll + ) + reg query "HKLM\SOFTWARE\Classes\CLSID\{@VIRTUALCAM_GUID@}" >nul 2>&1 + if %errorLevel% == 0 ( + echo ARM64 Virtual Cam successfully installed + echo. + goto endSuccess + ) else ( + echo ARM64 Virtual Cam installation failed + echo. + goto end + ) + :endSuccess echo Virtual Cam installed! echo. diff --git a/plugins/win-dshow/virtualcam-module/virtualcam-uninstall.bat.in b/plugins/win-dshow/virtualcam-module/virtualcam-uninstall.bat.in index aefebf1b852b28..e71f7bc27225bb 100644 --- a/plugins/win-dshow/virtualcam-module/virtualcam-uninstall.bat.in +++ b/plugins/win-dshow/virtualcam-module/virtualcam-uninstall.bat.in @@ -22,6 +22,11 @@ goto checkAdmin ) else ( regsvr32.exe /u /s obs-virtualcam-module64.dll ) + if exist "%~dp0\data\obs-plugins\win-dshow\obs-virtualcam-module-arm64.dll" ( + "%SystemRoot%\System32\regsvr32.exe" /u /s "%~dp0\data\obs-plugins\win-dshow\obs-virtualcam-module-arm64.dll" + ) else ( + "%SystemRoot%\System32\regsvr32.exe" /u /s obs-virtualcam-module-arm64.dll + ) :endSuccess echo Virtual Cam uninstalled!