From 7b7a5acf897b88bb99c3f6e0cd61c299aeffd000 Mon Sep 17 00:00:00 2001 From: Carlo Vanini Date: Tue, 4 Oct 2022 23:03:58 +0200 Subject: [PATCH 1/9] build(win): update project file version --- creavision/CreaVision_eviacam.vcxproj | 4 ++-- simplelog/simplelog.vcxproj | 4 ++-- src/eviacam.vcxproj | 6 +++--- wxcamwindow/wxcamwindow.vcxproj | 4 ++-- wxutil/wxutil.vcxproj | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/creavision/CreaVision_eviacam.vcxproj b/creavision/CreaVision_eviacam.vcxproj index 58ed267..af47145 100644 --- a/creavision/CreaVision_eviacam.vcxproj +++ b/creavision/CreaVision_eviacam.vcxproj @@ -17,13 +17,13 @@ StaticLibrary - v120 + v143 false Unicode StaticLibrary - v120 + v143 false Unicode diff --git a/simplelog/simplelog.vcxproj b/simplelog/simplelog.vcxproj index b62359b..26a8da9 100644 --- a/simplelog/simplelog.vcxproj +++ b/simplelog/simplelog.vcxproj @@ -18,13 +18,13 @@ StaticLibrary - v120 + v143 false Unicode StaticLibrary - v120 + v143 false Unicode diff --git a/src/eviacam.vcxproj b/src/eviacam.vcxproj index d448eb1..507dfc2 100644 --- a/src/eviacam.vcxproj +++ b/src/eviacam.vcxproj @@ -18,12 +18,12 @@ Application - v120 + v143 Unicode Application - v120 + v143 false false Unicode @@ -551,4 +551,4 @@ if not exist $(TargetDir)haarcascade_frontalface_default.xml copy "$(CVPATH)\sou - + \ No newline at end of file diff --git a/wxcamwindow/wxcamwindow.vcxproj b/wxcamwindow/wxcamwindow.vcxproj index 2ff71d9..e3b7d71 100644 --- a/wxcamwindow/wxcamwindow.vcxproj +++ b/wxcamwindow/wxcamwindow.vcxproj @@ -17,13 +17,13 @@ StaticLibrary - v120 + v143 false Unicode StaticLibrary - v120 + v143 false Unicode diff --git a/wxutil/wxutil.vcxproj b/wxutil/wxutil.vcxproj index 43f6713..db5c3a6 100644 --- a/wxutil/wxutil.vcxproj +++ b/wxutil/wxutil.vcxproj @@ -18,13 +18,13 @@ StaticLibrary - v120 + v143 false Unicode StaticLibrary - v120 + v143 false Unicode From 9e77dd99651a39ab0e48afb4aff59c42d32cf3cd Mon Sep 17 00:00:00 2001 From: Carlo Vanini Date: Tue, 4 Oct 2022 23:03:59 +0200 Subject: [PATCH 2/9] build(win): add platform x64 --- creavision/CreaVision_eviacam.vcxproj | 29 ++++++ simplelog/simplelog.vcxproj | 94 ++++++++++++++++++ src/eviacam.vcxproj | 136 ++++++++++++++++++++++++++ win32/eviacam.sln | 29 +++++- wxcamwindow/wxcamwindow.vcxproj | 29 ++++++ wxutil/wxutil.vcxproj | 29 ++++++ 6 files changed, 344 insertions(+), 2 deletions(-) diff --git a/creavision/CreaVision_eviacam.vcxproj b/creavision/CreaVision_eviacam.vcxproj index af47145..8c7eb5e 100644 --- a/creavision/CreaVision_eviacam.vcxproj +++ b/creavision/CreaVision_eviacam.vcxproj @@ -5,10 +5,18 @@ Debug Win32 + + Debug + x64 + Release Win32 + + Release + x64 + creavision @@ -21,12 +29,24 @@ false Unicode + + StaticLibrary + v143 + false + Unicode + StaticLibrary v143 false Unicode + + StaticLibrary + v143 + false + Unicode + @@ -34,10 +54,18 @@ + + + + + + + + <_ProjectFileVersion>12.0.30501.0 @@ -46,6 +74,7 @@ $(SolutionDir)$(Configuration)\ $(SolutionDir)$(Configuration)\creavision\ + $(SolutionDir)$(Configuration)\ $(SolutionDir)$(Configuration)\creavision\ diff --git a/simplelog/simplelog.vcxproj b/simplelog/simplelog.vcxproj index 26a8da9..44e7913 100644 --- a/simplelog/simplelog.vcxproj +++ b/simplelog/simplelog.vcxproj @@ -5,10 +5,18 @@ Debug Win32 + + Debug + x64 + Release Win32 + + Release + x64 + {5FF96C8F-40F9-46CD-980C-0AFBB932AC2E} @@ -22,12 +30,24 @@ false Unicode + + StaticLibrary + v143 + false + Unicode + StaticLibrary v143 false Unicode + + StaticLibrary + v143 + false + Unicode + @@ -35,10 +55,18 @@ + + + + + + + + <_ProjectFileVersion>12.0.30501.0 @@ -47,6 +75,7 @@ $(SolutionDir)$(Configuration)\ $(SolutionDir)$(Configuration)\simplelog\ + $(SolutionDir)$(Configuration)\ $(SolutionDir)$(Configuration)\simplelog\ @@ -83,6 +112,38 @@ $(SolutionDir)$(Configuration)\$(ProjectName).lib + + + NOPCH;WIN32;_WINDOWS;_DEBUG;_UNICODE;%(PreprocessorDefinitions) + true + true + $(SolutionDir)$(Configuration)\simplelog.tlb + + + + + /EHsc %(AdditionalOptions) + Disabled + NOPCH;WIN32;_WINDOWS;_DEBUG;_UNICODE;%(PreprocessorDefinitions) + Sync + MultiThreadedDebugDLL + true + $(SolutionDir)$(Configuration)\simplelog\ + $(SolutionDir)$(Configuration)\simplelog\ + $(SolutionDir)$(Configuration)\simplelog.pdb + Level4 + true + ProgramDatabase + CompileAsCpp + + + NOPCH;WIN32;_WINDOWS;_DEBUG;_UNICODE;%(PreprocessorDefinitions) + 0x0405 + + + $(SolutionDir)$(Configuration)\$(ProjectName).lib + + NOPCH;WIN32;_WINDOWS;_UNICODE;%(PreprocessorDefinitions) @@ -116,6 +177,39 @@ $(SolutionDir)$(Configuration)\$(ProjectName).lib + + + NOPCH;WIN32;_WINDOWS;_UNICODE;%(PreprocessorDefinitions) + true + true + $(SolutionDir)$(Configuration)\simplelog.tlb + + + + + /EHsc %(AdditionalOptions) + MaxSpeed + OnlyExplicitInline + NOPCH;WIN32;_WINDOWS;_UNICODE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + true + $(SolutionDir)$(Configuration)\simplelog\ + $(SolutionDir)$(Configuration)\simplelog\ + $(SolutionDir)$(Configuration)\simplelog.pdb + Level4 + true + CompileAsCpp + + + NOPCH;WIN32;__WXMSW__;_WINDOWS;_UNICODE;%(PreprocessorDefinitions) + 0x0405 + + + $(SolutionDir)$(Configuration)\$(ProjectName).lib + + diff --git a/src/eviacam.vcxproj b/src/eviacam.vcxproj index 507dfc2..8bbce96 100644 --- a/src/eviacam.vcxproj +++ b/src/eviacam.vcxproj @@ -5,10 +5,18 @@ Debug Win32 + + Debug + x64 + Release Win32 + + Release + x64 + {4C7EE63E-9BCD-4DBA-A0D3-075D3DBB2597} @@ -21,6 +29,11 @@ v143 Unicode + + Application + v143 + Unicode + Application v143 @@ -28,6 +41,13 @@ false Unicode + + Application + v143 + false + false + Unicode + @@ -35,10 +55,18 @@ + + + + + + + + <_ProjectFileVersion>12.0.30501.0 @@ -49,12 +77,20 @@ *.dll%3b*.obj%3b*.ilk%3b*.pdb%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.bat%3b$(TargetPath) false + + *.dll%3b*.obj%3b*.ilk%3b*.pdb%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.bat%3b$(TargetPath) + false + $(SolutionDir)$(Configuration)\bin\ $(SolutionDir)$(Configuration)\evicam\ *.dll%3b*.obj%3b*.ilk%3b*.pdb%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.bat%3b$(TargetPath) false + + *.dll%3b*.obj%3b*.ilk%3b*.pdb%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.bat%3b$(TargetPath) + false + Disabled @@ -460,6 +496,106 @@ if %ERRORLEVEL% LEQ 1 exit 0 if not exist $(TargetDir)haarcascade_frontalface_default.xml copy "$(CVPATH)\sources\data\haarcascades\haarcascade_frontalface_default.xml" $(TargetDir) + + + + + + ..\;..\simplelog;..\creavision;..\wxcamwindow;..\wxutil;$(WXWIN)\lib\vc_lib\mswu;$(WXWIN)\include;$(CVPATH)\build\include;$(CVPATH)\build\include\opencv + WIN32;NDEBUG;_WINDOWS;NOPCH;__WXMSW__;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + true + + + Level4 + ProgramDatabase + + + $(WXWIN)\include;%(AdditionalIncludeDirectories) + + + mkdir $(TargetDir)ca +mkdir $(TargetDir)es +mkdir $(TargetDir)gl +mkdir $(TargetDir)it +mkdir $(TargetDir)tr +mkdir $(TargetDir)de +mkdir $(TargetDir)oc +mkdir $(TargetDir)fr +mkdir $(TargetDir)ar +mkdir $(TargetDir)he +mkdir $(TargetDir)ru +mkdir $(TargetDir)pt_BR +mkdir $(TargetDir)ja +mkdir $(TargetDir)el +mkdir $(TargetDir)lt +mkdir $(TargetDir)zh_TW +mkdir $(TargetDir)zh_CN + +echo F | xcopy "$(SolutionDir)..\po\ca.gmo" $(TargetDir)ca\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\es.gmo" $(TargetDir)es\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\gl.gmo" $(TargetDir)gl\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\it.gmo" $(TargetDir)it\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\tr.gmo" $(TargetDir)tr\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\de.gmo" $(TargetDir)de\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\oc.gmo" $(TargetDir)oc\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\fr.gmo" $(TargetDir)fr\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\ar.gmo" $(TargetDir)ar\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\he.gmo" $(TargetDir)he\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\ru.gmo" $(TargetDir)ru\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\pt_BR.gmo" $(TargetDir)pt_BR\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\ja.gmo" $(TargetDir)ja\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\el.gmo" $(TargetDir)el\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\lt.gmo" $(TargetDir)lt\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\zh_TW.gmo" $(TargetDir)zh_TW\eviacam.mo /D +echo F | xcopy "$(SolutionDir)..\po\zh_CN.gmo" $(TargetDir)zh_CN\eviacam.mo /D + +if not exist $(TargetDir)ca\wxstd.mo copy "%25WXWIN%25\locale\ca.mo" $(TargetDir)ca\wxstd.mo +if not exist $(TargetDir)es\wxstd.mo copy "%25WXWIN%25\locale\es.mo" $(TargetDir)es\wxstd.mo +if not exist $(TargetDir)gl\wxstd.mo copy "%25WXWIN%25\locale\gl_ES.mo" $(TargetDir)gl\wxstd.mo +if not exist $(TargetDir)it\wxstd.mo copy "%25WXWIN%25\locale\it.mo" $(TargetDir)it\wxstd.mo +if not exist $(TargetDir)tr\wxstd.mo copy "%25WXWIN%25\locale\tr.mo" $(TargetDir)tr\wxstd.mo +if not exist $(TargetDir)de\wxstd.mo copy "%25WXWIN%25\locale\de.mo" $(TargetDir)de\wxstd.mo +rem if not exist $(TargetDir)oc\wxstd.mo copy "%25WXWIN%25\locale\oc.mo" $(TargetDir)oc\wxstd.mo +if not exist $(TargetDir)fr\wxstd.mo copy "%25WXWIN%25\locale\fr.mo" $(TargetDir)fr\wxstd.mo +rem if not exist $(TargetDir)ar\wxstd.mo copy "%25WXWIN%25\locale\ar.mo" $(TargetDir)ar\wxstd.mo +rem if not exist $(TargetDir)he\wxstd.mo copy "%25WXWIN%25\locale\he.mo" $(TargetDir)he\wxstd.mo +if not exist $(TargetDir)ru\wxstd.mo copy "%25WXWIN%25\locale\ru.mo" $(TargetDir)ru\wxstd.mo +if not exist $(TargetDir)pt_BR\wxstd.mo copy "%25WXWIN%25\locale\pt_BR.mo" $(TargetDir)pt_BR\wxstd.mo +if not exist $(TargetDir)ja\wxstd.mo copy "%25WXWIN%25\locale\ja.mo" $(TargetDir)ja\wxstd.mo +if not exist $(TargetDir)el\wxstd.mo copy "%25WXWIN%25\locale\el.mo" $(TargetDir)el\wxstd.mo +if not exist $(TargetDir)zh_TW\wxstd.mo copy "%25WXWIN%25\locale\zh_TW.mo" $(TargetDir)zh_TW\wxstd.mo +if not exist $(TargetDir)zh_CN\wxstd.mo copy "%25WXWIN%25\locale\zh_CN.mo" $(TargetDir)zh_CN\wxstd.mo + +mkdir $(TargetDir)\resources +robocopy "$(SolutionDir)..\src\resources" "$(TargetDir)\resources" /E /Xo +if %ERRORLEVEL% LEQ 1 exit 0 + + + + %(AdditionalDependencies) + $(OutDir)eviacam.exe + $(CVPATH)\build\x64\vc15\lib;$(WXWIN)\lib\vc_x64_lib;$(DSHOW_SAMPLES)\baseclasses\$(Configuration);$(SolutionDir)$(Configuration);%(AdditionalLibraryDirectories) + RequireAdministrator + false + false + Windows + true + true + false + + + + + for %%x in ( + opencv_world460.dll +) do ( + if not exist $(TargetDir)%%x copy $(CVPATH)\build\x64\vc15\bin\%%x $(TargetDir) +) + +if not exist $(TargetDir)haarcascade_frontalface_default.xml copy "$(CVPATH)\sources\data\haarcascades\haarcascade_frontalface_default.xml" $(TargetDir) diff --git a/win32/eviacam.sln b/win32/eviacam.sln index 58cd08f..87a6575 100755 --- a/win32/eviacam.sln +++ b/win32/eviacam.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30501.0 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32819.101 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eviacam", "..\src\eviacam.vcxproj", "{4C7EE63E-9BCD-4DBA-A0D3-075D3DBB2597}" EndProject @@ -15,31 +15,56 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {4C7EE63E-9BCD-4DBA-A0D3-075D3DBB2597}.Debug|Win32.ActiveCfg = Debug|Win32 {4C7EE63E-9BCD-4DBA-A0D3-075D3DBB2597}.Debug|Win32.Build.0 = Debug|Win32 + {4C7EE63E-9BCD-4DBA-A0D3-075D3DBB2597}.Debug|x64.ActiveCfg = Debug|x64 + {4C7EE63E-9BCD-4DBA-A0D3-075D3DBB2597}.Debug|x64.Build.0 = Debug|x64 {4C7EE63E-9BCD-4DBA-A0D3-075D3DBB2597}.Release|Win32.ActiveCfg = Release|Win32 {4C7EE63E-9BCD-4DBA-A0D3-075D3DBB2597}.Release|Win32.Build.0 = Release|Win32 + {4C7EE63E-9BCD-4DBA-A0D3-075D3DBB2597}.Release|x64.ActiveCfg = Release|x64 + {4C7EE63E-9BCD-4DBA-A0D3-075D3DBB2597}.Release|x64.Build.0 = Release|x64 {05F37C83-F423-4022-BAB6-8FEC1972A219}.Debug|Win32.ActiveCfg = Debug|Win32 {05F37C83-F423-4022-BAB6-8FEC1972A219}.Debug|Win32.Build.0 = Debug|Win32 + {05F37C83-F423-4022-BAB6-8FEC1972A219}.Debug|x64.ActiveCfg = Debug|x64 + {05F37C83-F423-4022-BAB6-8FEC1972A219}.Debug|x64.Build.0 = Debug|x64 {05F37C83-F423-4022-BAB6-8FEC1972A219}.Release|Win32.ActiveCfg = Release|Win32 {05F37C83-F423-4022-BAB6-8FEC1972A219}.Release|Win32.Build.0 = Release|Win32 + {05F37C83-F423-4022-BAB6-8FEC1972A219}.Release|x64.ActiveCfg = Release|x64 + {05F37C83-F423-4022-BAB6-8FEC1972A219}.Release|x64.Build.0 = Release|x64 {FF220E89-E196-48A7-8FD6-6382A32502E7}.Debug|Win32.ActiveCfg = Debug|Win32 {FF220E89-E196-48A7-8FD6-6382A32502E7}.Debug|Win32.Build.0 = Debug|Win32 + {FF220E89-E196-48A7-8FD6-6382A32502E7}.Debug|x64.ActiveCfg = Debug|x64 + {FF220E89-E196-48A7-8FD6-6382A32502E7}.Debug|x64.Build.0 = Debug|x64 {FF220E89-E196-48A7-8FD6-6382A32502E7}.Release|Win32.ActiveCfg = Release|Win32 {FF220E89-E196-48A7-8FD6-6382A32502E7}.Release|Win32.Build.0 = Release|Win32 + {FF220E89-E196-48A7-8FD6-6382A32502E7}.Release|x64.ActiveCfg = Release|x64 + {FF220E89-E196-48A7-8FD6-6382A32502E7}.Release|x64.Build.0 = Release|x64 {EF4CBA03-871C-48CE-998D-66F326B8A99A}.Debug|Win32.ActiveCfg = Debug|Win32 {EF4CBA03-871C-48CE-998D-66F326B8A99A}.Debug|Win32.Build.0 = Debug|Win32 + {EF4CBA03-871C-48CE-998D-66F326B8A99A}.Debug|x64.ActiveCfg = Debug|x64 + {EF4CBA03-871C-48CE-998D-66F326B8A99A}.Debug|x64.Build.0 = Debug|x64 {EF4CBA03-871C-48CE-998D-66F326B8A99A}.Release|Win32.ActiveCfg = Release|Win32 {EF4CBA03-871C-48CE-998D-66F326B8A99A}.Release|Win32.Build.0 = Release|Win32 + {EF4CBA03-871C-48CE-998D-66F326B8A99A}.Release|x64.ActiveCfg = Release|x64 + {EF4CBA03-871C-48CE-998D-66F326B8A99A}.Release|x64.Build.0 = Release|x64 {5FF96C8F-40F9-46CD-980C-0AFBB932AC2E}.Debug|Win32.ActiveCfg = Debug|Win32 {5FF96C8F-40F9-46CD-980C-0AFBB932AC2E}.Debug|Win32.Build.0 = Debug|Win32 + {5FF96C8F-40F9-46CD-980C-0AFBB932AC2E}.Debug|x64.ActiveCfg = Debug|x64 + {5FF96C8F-40F9-46CD-980C-0AFBB932AC2E}.Debug|x64.Build.0 = Debug|x64 {5FF96C8F-40F9-46CD-980C-0AFBB932AC2E}.Release|Win32.ActiveCfg = Release|Win32 {5FF96C8F-40F9-46CD-980C-0AFBB932AC2E}.Release|Win32.Build.0 = Release|Win32 + {5FF96C8F-40F9-46CD-980C-0AFBB932AC2E}.Release|x64.ActiveCfg = Release|x64 + {5FF96C8F-40F9-46CD-980C-0AFBB932AC2E}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {77C52EDE-5B5F-49F2-8C0D-E06A81DE5596} + EndGlobalSection EndGlobal diff --git a/wxcamwindow/wxcamwindow.vcxproj b/wxcamwindow/wxcamwindow.vcxproj index e3b7d71..85066ca 100644 --- a/wxcamwindow/wxcamwindow.vcxproj +++ b/wxcamwindow/wxcamwindow.vcxproj @@ -5,10 +5,18 @@ Debug Win32 + + Debug + x64 + Release Win32 + + Release + x64 + {05F37C83-F423-4022-BAB6-8FEC1972A219} @@ -21,12 +29,24 @@ false Unicode + + StaticLibrary + v143 + false + Unicode + StaticLibrary v143 false Unicode + + StaticLibrary + v143 + false + Unicode + @@ -34,10 +54,18 @@ + + + + + + + + <_ProjectFileVersion>12.0.30501.0 @@ -46,6 +74,7 @@ $(SolutionDir)$(Configuration)\ $(SolutionDir)$(Configuration)\wxcamwindow\ + $(SolutionDir)$(Configuration)\ $(SolutionDir)$(Configuration)\wxcamwindow\ diff --git a/wxutil/wxutil.vcxproj b/wxutil/wxutil.vcxproj index db5c3a6..4b948c8 100644 --- a/wxutil/wxutil.vcxproj +++ b/wxutil/wxutil.vcxproj @@ -5,10 +5,18 @@ Debug Win32 + + Debug + x64 + Release Win32 + + Release + x64 + {EF4CBA03-871C-48CE-998D-66F326B8A99A} @@ -22,12 +30,24 @@ false Unicode + + StaticLibrary + v143 + false + Unicode + StaticLibrary v143 false Unicode + + StaticLibrary + v143 + false + Unicode + @@ -35,10 +55,18 @@ + + + + + + + + <_ProjectFileVersion>12.0.30501.0 @@ -47,6 +75,7 @@ $(SolutionDir)$(Configuration)\ $(SolutionDir)$(Configuration)\wxutil\ + $(SolutionDir)$(Configuration)\ $(SolutionDir)$(Configuration)\wxutil\ From 8ae46d8b6b243cc4eb5e4f1163bf340d3558530f Mon Sep 17 00:00:00 2001 From: Carlo Vanini Date: Tue, 4 Oct 2022 23:03:59 +0200 Subject: [PATCH 3/9] build(win): remove missing files from solution --- creavision/CreaVision_eviacam.vcxproj | 10 ------- creavision/CreaVision_eviacam.vcxproj.filters | 30 ------------------- 2 files changed, 40 deletions(-) diff --git a/creavision/CreaVision_eviacam.vcxproj b/creavision/CreaVision_eviacam.vcxproj index 8c7eb5e..c3ca340 100644 --- a/creavision/CreaVision_eviacam.vcxproj +++ b/creavision/CreaVision_eviacam.vcxproj @@ -188,13 +188,8 @@ - - - - - @@ -202,13 +197,8 @@ - - - - - diff --git a/creavision/CreaVision_eviacam.vcxproj.filters b/creavision/CreaVision_eviacam.vcxproj.filters index bcf27f4..48ca529 100644 --- a/creavision/CreaVision_eviacam.vcxproj.filters +++ b/creavision/CreaVision_eviacam.vcxproj.filters @@ -23,27 +23,12 @@ Source Files - - Source Files - - - Source Files - - - Source Files - Source Files - - Source Files - Source Files - - Source Files - Source Files @@ -61,27 +46,12 @@ Header Files - - Header Files - - - Header Files - - - Header Files - Header Files - - Header Files - Header Files - - Header Files - Header Files From 323aa09aabc48392e132ddfc1f383c914eb304a4 Mon Sep 17 00:00:00 2001 From: Carlo Vanini Date: Tue, 4 Oct 2022 23:04:01 +0200 Subject: [PATCH 4/9] chore: ignore VS files --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index 72ca377..772d700 100644 --- a/.gitignore +++ b/.gitignore @@ -61,9 +61,15 @@ src/gui-autosave.pjd *~ *.vcproj.*.user +*.vcxproj.user *.opensdf *.sdf *.suo # Eclipse CDT .settings/ + +# Visual Studio +.vs +*/x64/Debug +*/x64/Release From 108f9099dc1455586d9629b814669f2b88cf4c93 Mon Sep 17 00:00:00 2001 From: Carlo Vanini Date: Sun, 9 Oct 2022 23:22:35 +0200 Subject: [PATCH 5/9] fix: duplicate value in switch statement wxLANGUAGE_SPANISH_MODERN is a synonym for wxLANGUAGE_SPANISH. --- src/wviacam.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/wviacam.cpp b/src/wviacam.cpp index f6e45bf..b3afd30 100644 --- a/src/wviacam.cpp +++ b/src/wviacam.cpp @@ -598,7 +598,6 @@ void WViacam::OnToolHelpClick( wxCommandEvent& event ) case (wxLANGUAGE_SPANISH_GUATEMALA): case (wxLANGUAGE_SPANISH_HONDURAS): case (wxLANGUAGE_SPANISH_MEXICAN): - case (wxLANGUAGE_SPANISH_MODERN): case (wxLANGUAGE_SPANISH_NICARAGUA): case (wxLANGUAGE_SPANISH_PANAMA): case (wxLANGUAGE_SPANISH_PARAGUAY): From 18099c00f0415e6a9b1c48514ee9df31aceee73b Mon Sep 17 00:00:00 2001 From: Carlo Vanini Date: Sun, 9 Oct 2022 23:22:36 +0200 Subject: [PATCH 6/9] fix: match cast type with declaration Use the same target type as the declaration of the overload we call. This compiles both with gcc and VS. --- src/viacamcontroller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/viacamcontroller.cpp b/src/viacamcontroller.cpp index 27c80a3..e6ee497 100755 --- a/src/viacamcontroller.cpp +++ b/src/viacamcontroller.cpp @@ -229,7 +229,7 @@ CCamera* CViacamController::SetUpCamera() wxSingleChoiceDialog choiceDlg( NULL, _("Choose the camera to use"), _T("Enable Viacam"), strArray, - (char**)NULL, wxDEFAULT_DIALOG_STYLE | wxOK | wxCANCEL | wxCENTRE); + (void**)NULL, wxDEFAULT_DIALOG_STYLE | wxOK | wxCANCEL | wxCENTRE); if (choiceDlg.ShowModal ()!= wxID_OK) return NULL; From e041c6ef28001ec824b28fca9d2fb149a6844133 Mon Sep 17 00:00:00 2001 From: Carlo Vanini Date: Wed, 23 Nov 2022 01:06:53 +0100 Subject: [PATCH 7/9] fix(win): flip image vertically Regression introduced by port to newer OpenCV. Before we did set the images' "origin" attribute. --- creavision/crvcamera_wdm.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/creavision/crvcamera_wdm.cpp b/creavision/crvcamera_wdm.cpp index d0be9ab..d453a52 100755 --- a/creavision/crvcamera_wdm.cpp +++ b/creavision/crvcamera_wdm.cpp @@ -88,6 +88,7 @@ bool CCameraWDM::DoQueryFrame(cv::Mat &frame) frame.create(height, width, CV_8UC3); m_VI->getPixels(m_Id, frame.data, false, false); + cv::flip(frame, frame, 0); return true; } From d135aa455dcad35a4eb955fd4659b6af0c3a32f8 Mon Sep 17 00:00:00 2001 From: Carlo Vanini Date: Fri, 28 Oct 2022 23:30:18 +0200 Subject: [PATCH 8/9] feat: device choice list includes devices for each driver Let the user choose explicitly both the device and the driver. --- creavision/crvcamera_cv.cpp | 2 +- creavision/crvcamera_v4l2.cpp | 2 +- creavision/crvcamera_wdm.cpp | 2 +- src/viacamcontroller.cpp | 37 ++++++++++++++++++++++------------- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/creavision/crvcamera_cv.cpp b/creavision/crvcamera_cv.cpp index 1800123..747dfc5 100755 --- a/creavision/crvcamera_cv.cpp +++ b/creavision/crvcamera_cv.cpp @@ -178,7 +178,7 @@ int CCameraCV::GetNumDevices() tmpCapture.release(); // Generate device name - sprintf (g_deviceNames[i], "Camera (Id:%d)", i); + sprintf (g_deviceNames[i], "Camera (Dr:ocv,Id:%d)", i); } g_numDevices= i; } diff --git a/creavision/crvcamera_v4l2.cpp b/creavision/crvcamera_v4l2.cpp index 90bbcc1..8b2186e 100644 --- a/creavision/crvcamera_v4l2.cpp +++ b/creavision/crvcamera_v4l2.cpp @@ -1702,7 +1702,7 @@ int CCameraV4L2::GetNumDevices() // Prepend device number and append device name unsigned int j= count - 1 - i; - snprintf (g_deviceNames[j], CAM_DEVICE_NAME_LENGTH, " (Id:%d) %s", j, device->name); + snprintf (g_deviceNames[j], CAM_DEVICE_NAME_LENGTH, " (Dr:v4l,Id:%d) %s", j, device->name); snprintf (g_deviceShortNames[j], CAM_DEVICE_SHORT_NAME_LENGTH, "%s", device->shortName); snprintf (g_deviceDriverNames[j], CAM_DEVICE_DRIVER_NAME_LENGTH, "%s", device->driver); diff --git a/creavision/crvcamera_wdm.cpp b/creavision/crvcamera_wdm.cpp index d453a52..57e69d7 100755 --- a/creavision/crvcamera_wdm.cpp +++ b/creavision/crvcamera_wdm.cpp @@ -110,7 +110,7 @@ int CCameraWDM::GetNumDevices() if (g_numDevices> MAX_CAM_DEVICES) g_numDevices= MAX_CAM_DEVICES; for (int i= 0; i< g_numDevices; ++i) { // Prepend device number and append device name - _snprintf (g_deviceNames[i], CAM_DEVICE_NAME_LENGTH, " (Id:%d) %s\0", i, videoInput::getDeviceName(i)); + _snprintf (g_deviceNames[i], CAM_DEVICE_NAME_LENGTH, " (Dr:wdm,Id:%d) %s\0", i, videoInput::getDeviceName(i)); } } diff --git a/src/viacamcontroller.cpp b/src/viacamcontroller.cpp index e6ee497..2665e10 100755 --- a/src/viacamcontroller.cpp +++ b/src/viacamcontroller.cpp @@ -197,36 +197,38 @@ CCamera* CViacamController::SetUpCamera() Try to find previously used camera with the same name (only check native driver) */ + driverId = 0; int camId = -1; const char * camName= NULL; if (m_cameraName.Length()> 0) { SLOG_INFO("Previous used camera: %s... ", (const char *) m_cameraName.mb_str()); - for (camId = 0; camId < CCameraEnum::getNumDevices(0); camId++) { - camName = CCameraEnum::getDeviceName(0, camId); + for (camId = 0; camId < CCameraEnum::getNumDevices(driverId); camId++) { + camName = CCameraEnum::getDeviceName(driverId, camId); if (wxString(camName, wxConvLibc) == m_cameraName) { SLOG_INFO("FOUND"); break; } } - if (camId == CCameraEnum::getNumDevices(0)) { + if (camId == CCameraEnum::getNumDevices(driverId)) { SLOG_INFO("NOT FOUND"); camId = -1; } } /* - Show selection dialog when needed (use native driver names) + Show selection dialog when needed */ - SLOG_INFO("Detected %d camera(s)", CCameraEnum::getNumDevices(0)); if (camId == -1) { - if (CCameraEnum::getNumDevices(0) > 1) { - wxArrayString strArray; - - for (int i = 0; i < CCameraEnum::getNumDevices(0); i++) { - strArray.Add(wxString(CCameraEnum::getDeviceName(0, i), wxConvLibc)); + wxArrayString strArray; + for (driverId = 0; driverId < 2; driverId++) { + SLOG_INFO("Driver %d detected %d camera(s)", driverId, CCameraEnum::getNumDevices(driverId)); + for (int i = 0; i < CCameraEnum::getNumDevices(driverId); i++) { + strArray.Add(wxString(CCameraEnum::getDeviceName(driverId, i), wxConvLibc)); } + } + if (strArray.GetCount() > 1) { wxSingleChoiceDialog choiceDlg( NULL, _("Choose the camera to use"), _T("Enable Viacam"), strArray, (void**)NULL, wxDEFAULT_DIALOG_STYLE | wxOK | wxCANCEL | wxCENTRE); @@ -238,17 +240,24 @@ CCamera* CViacamController::SetUpCamera() } else { camId= 0; - m_cameraName = wxString(CCameraEnum::getDeviceName(0, camId), wxConvLibc); + m_cameraName = strArray[0]; + } + + if (camId >= CCameraEnum::getNumDevices(0)) { + camId -= CCameraEnum::getNumDevices(0); + driverId = 1; + } + else { + driverId = 0; } } /* Try to open the camera to make sure it works */ - SLOG_INFO("Selected camera: %d", camId); + SLOG_INFO("Selected camera: Driver:%d Id:%d", driverId, camId); SLOG_INFO("Try to open the camera to make sure it works..."); - // native driver first - CCamera* cam = CCameraEnum::getCamera(1, camId); + CCamera* cam = CCameraEnum::getCamera(driverId, camId); /* SLOG_INFO("Testing with WDM driver..."); if (!testCamera(cam)) { From cedccb0addb41cce1c51c1d7d7d4123a90e04ff9 Mon Sep 17 00:00:00 2001 From: Carlo Vanini Date: Wed, 22 Feb 2023 22:11:23 +0100 Subject: [PATCH 9/9] fix: find previously used camera --- src/viacamcontroller.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/viacamcontroller.cpp b/src/viacamcontroller.cpp index 2665e10..03e304e 100755 --- a/src/viacamcontroller.cpp +++ b/src/viacamcontroller.cpp @@ -195,22 +195,25 @@ CCamera* CViacamController::SetUpCamera() /* Try to find previously used camera with the same name - (only check native driver) */ - driverId = 0; int camId = -1; const char * camName= NULL; if (m_cameraName.Length()> 0) { SLOG_INFO("Previous used camera: %s... ", (const char *) m_cameraName.mb_str()); - for (camId = 0; camId < CCameraEnum::getNumDevices(driverId); camId++) { - camName = CCameraEnum::getDeviceName(driverId, camId); - if (wxString(camName, wxConvLibc) == m_cameraName) { - SLOG_INFO("FOUND"); + for (driverId = 0; driverId < CCameraEnum::NUM_DRIVERS; driverId++) { + for (camId = 0; camId < CCameraEnum::getNumDevices(driverId); camId++) { + camName = CCameraEnum::getDeviceName(driverId, camId); + if (wxString(camName, wxConvLibc) == m_cameraName) { + SLOG_INFO("FOUND"); + break; + } + } + if (camId < CCameraEnum::getNumDevices(driverId)) { break; } } - if (camId == CCameraEnum::getNumDevices(driverId)) { + if (driverId == CCameraEnum::NUM_DRIVERS) { SLOG_INFO("NOT FOUND"); camId = -1; } @@ -221,7 +224,7 @@ CCamera* CViacamController::SetUpCamera() */ if (camId == -1) { wxArrayString strArray; - for (driverId = 0; driverId < 2; driverId++) { + for (driverId = 0; driverId < CCameraEnum::NUM_DRIVERS; driverId++) { SLOG_INFO("Driver %d detected %d camera(s)", driverId, CCameraEnum::getNumDevices(driverId)); for (int i = 0; i < CCameraEnum::getNumDevices(driverId); i++) { strArray.Add(wxString(CCameraEnum::getDeviceName(driverId, i), wxConvLibc));