Skip to content

Commit

Permalink
Build 0.22.0.0 (with .NET 9) (Valkirie#371)
Browse files Browse the repository at this point in the history
* build 0.2.0.0 (with .NET 9)

* improve ControllerManager watchdogThreadLoop in the rare scenario where the physical controller was unplugged while device was sleeping and virtual controller was on slot 2
  • Loading branch information
Valkirie authored Nov 15, 2024
1 parent ab0d4f5 commit 7e8b257
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 45 deletions.
39 changes: 6 additions & 33 deletions HandheldCompanion.iss
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
; requires netcorecheck.exe and netcorecheck_x64.exe (see download link below)
#define UseNetCoreCheck
#ifdef UseNetCoreCheck
#define UseDotNet80
;#define UseDotNet90
#define UseDotNet90
#endif

;#define UseVC2005
Expand All @@ -27,7 +26,7 @@
#define InstallerVersion '0.2'
#define MyAppSetupName 'Handheld Companion'
#define MyBuildId 'HandheldCompanion'
#define MyAppVersion '0.21.8.3'
#define MyAppVersion '0.22.0.0'
#define MyAppPublisher 'BenjaminLSR'
#define MyAppCopyright 'Copyright @ BenjaminLSR'
#define MyAppURL 'https://github.com/Valkirie/HandheldCompanion'
Expand All @@ -46,7 +45,7 @@
#define HidHideName "HidHide Drivers"
#define RtssName "RTSS Setup"

#define NewDotNetVersion "8.0.1"
#define NewDotNetVersion "9.0.0"
#define NewDirectXVersion "9.29.1974"
#define NewViGemVersion "1.22.0.0"
#define NewHidHideVersion "1.5.230"
Expand All @@ -62,16 +61,10 @@
#define RegAppsPath "SOFTWARE\" +MyAppSetupName+ "\"
#define SoftwareUninstallKey "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"

#ifdef UseDotNet80
#define MyConfigurationExt "net8.0"
#define DotNetX64DownloadLink "https://download.visualstudio.microsoft.com/download/pr/f18288f6-1732-415b-b577-7fb46510479a/a98239f751a7aed31bc4aa12f348a9bf/windowsdesktop-runtime-8.0.1-win-x64.exe"
#define DotNetX86DownloadLink "https://download.visualstudio.microsoft.com/download/pr/ca725693-6de7-4a4d-b8a4-4390b0387c66/ce13f2f016152d9b5f2d3c6537cc415b/windowsdesktop-runtime-8.0.1-win-x86.exe"
#endif

#ifdef UseDotNet90
#define MyConfigurationExt "net9.0"
#define DotNetX64DownloadLink "https://download.visualstudio.microsoft.com/download/pr/30d1fcdb-8bf1-4b6e-ad06-f66ed68017bf/20abf38df849587b0a2de99a31f5c1c8/windowsdesktop-runtime-9.0.0-rc.2.24474.4-win-x64.exe"
#define DotNetX86DownloadLink "https://download.visualstudio.microsoft.com/download/pr/f6a4c462-a2a6-4488-9448-574b659c31e5/7eb8840cb5e42e0fd41a57964fe3472c/windowsdesktop-runtime-9.0.0-rc.2.24474.4-win-x86.exe"
#define DotNetX64DownloadLink "https://download.visualstudio.microsoft.com/download/pr/685792b6-4827-4dca-a971-bce5d7905170/1bf61b02151bc56e763dc711e45f0e1e/windowsdesktop-runtime-9.0.0-win-x64.exe"
#define DotNetX86DownloadLink "https://download.visualstudio.microsoft.com/download/pr/8dfbde7b-c316-418d-934a-d3246253f342/69c6a35b77a4f01b95588e1df2bddf9a/windowsdesktop-runtime-9.0.0-win-x86.exe"
#endif

#define WindowsVersion "10.0.19041"
Expand All @@ -82,7 +75,7 @@ AppVersion={#MyAppVersion}
AppVerName={#MyAppSetupName}
AppCopyright={#MyAppCopyright}
// remove next line if you only deploy 32-bit binaries and dependencies
ArchitecturesInstallIn64BitMode=x64
ArchitecturesInstallIn64BitMode=x64compatible
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
Expand Down Expand Up @@ -171,7 +164,6 @@ procedure Dependency_Add(const Filename, Parameters, Title, URL, Checksum: Strin
procedure Dependency_Add_With_Version(const Filename, NewVersion, InstalledVersion, Parameters, Title, URL, Checksum: String; const ForceSuccess, RestartNeeded: Boolean); forward;
function Dependency_PrepareToInstall(var NeedsRestart: Boolean): String; forward;
function Dependency_UpdateReadyMemo(const Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String; forward;
procedure Dependency_AddDotNet80Desktop; forward;
procedure Dependency_AddDotNet90Desktop; forward;
procedure Dependency_AddDirectX; forward;
procedure Dependency_AddHideHide; forward;
Expand Down Expand Up @@ -301,15 +293,6 @@ var
installedVersion:string;
begin

#ifdef UseDotNet80
installedVersion:= regGetInstalledVersion('{#DotNetName}');
if(compareVersions('{#NewDotNetVersion}', installedVersion, '.', '-') > 0) then
begin
log('{#DotNetName} {#NewDotNetVersion} needs update.');
Dependency_AddDotNet80Desktop;
end;
#endif

#ifdef UseDotNet90
installedVersion:= regGetInstalledVersion('{#DotNetName}');
if(compareVersions('{#NewDotNetVersion}', installedVersion, '.', '-') > 0) then
Expand Down Expand Up @@ -626,16 +609,6 @@ begin
Result := ShellExec('', ExpandConstant('{tmp}{\}') + 'netcorecheck' + Dependency_ArchSuffix + '.exe', Version, '', SW_HIDE, ewWaitUntilTerminated, ResultCode) and (ResultCode = 0);
end;

procedure Dependency_AddDotNet80Desktop;
begin
// https://dotnet.microsoft.com/en-us/download/dotnet/8.0
if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App 8.0.0') then begin
Dependency_Add_With_Version('dotNet80desktop' + Dependency_ArchSuffix + '.exe', '{#NewDotNetVersion}', regGetInstalledVersion('{#DotNetName}'),
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
'{#DotNetName}', Dependency_String('{#DotNetX86DownloadLink}', '{#DotNetX64DownloadLink}'), '', False, False);
end;
end;

procedure Dependency_AddDotNet90Desktop;
begin
// https://dotnet.microsoft.com/fr-fr/download/dotnet/9.0
Expand Down
20 changes: 10 additions & 10 deletions HandheldCompanion/HandheldCompanion.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFrameworks>net8.0-windows10.0.19041.0;net9.0-windows10.0.19041.0</TargetFrameworks>
<TargetFrameworks>net9.0-windows10.0.19041.0</TargetFrameworks>
<GenerateRuntimeConfigDevFile>true</GenerateRuntimeConfigDevFile>
<AppendTargetFrameworkToOutputPath>true</AppendTargetFrameworkToOutputPath>
<PlatformTarget>x64</PlatformTarget>
Expand All @@ -12,7 +12,7 @@
<StartupObject>HandheldCompanion.App</StartupObject>
<OutputPath>$(SolutionDir)bin\$(Configuration)</OutputPath>
<ApplicationIcon>Resources\icon.ico</ApplicationIcon>
<Version>0.21.8.3</Version>
<Version>0.22.0.0</Version>
<ApplicationManifest>app.manifest</ApplicationManifest>
<Platforms>AnyCPU;x64;x86</Platforms>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
Expand Down Expand Up @@ -207,9 +207,9 @@
<PackageReference Include="LibreHardwareMonitorLib" Version="0.9.4-pre353" />
<PackageReference Include="LiveCharts.Wpf.Core" Version="0.9.8" />
<PackageReference Include="MathConverter" Version="2.2.1" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.0" />
<PackageReference Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.3" />
<PackageReference Include="NAudio" Version="2.2.1" />
<PackageReference Include="NAudio.Vorbis" Version="1.5.0" />
Expand All @@ -230,11 +230,11 @@
<PackageReference Include="SharpDX.Direct3D9" Version="4.2.0" />
<PackageReference Include="SharpDX.DirectInput" Version="4.2.0" />
<PackageReference Include="SharpDX.XInput" Version="4.2.0" />
<PackageReference Include="System.Drawing.Common" Version="8.0.10" />
<PackageReference Include="System.IO.Ports" Version="8.0.0" />
<PackageReference Include="System.Management" Version="8.0.0" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="8.0.1" />
<PackageReference Include="System.Text.Json" Version="8.0.5" />
<PackageReference Include="System.Drawing.Common" Version="9.0.0" />
<PackageReference Include="System.IO.Ports" Version="9.0.0" />
<PackageReference Include="System.Management" Version="9.0.0" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="9.0.0" />
<PackageReference Include="System.Text.Json" Version="9.0.0" />
<PackageReference Include="WindowsAPICodePack" Version="8.0.6" />
<PackageReference Include="WindowsDisplayAPI" Version="1.3.0.13" />
<PackageReference Include="WindowsInput" Version="6.4.1" />
Expand Down
10 changes: 8 additions & 2 deletions HandheldCompanion/Managers/ControllerManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -750,7 +750,7 @@ private static void watchdogThreadLoop(object? obj)
// update busy flag
HasBusyWireless = true;

// is the controller power cyclinc ?
// is the controller power cycling ?
PowerCyclers.TryGetValue(wirelessController.Details.baseContainerDeviceInstanceId, out HasCyclingController);
if (HasBusyWireless && !HasCyclingController && ControllerManagementAttempts != 0)
goto Exit;
Expand All @@ -760,12 +760,18 @@ private static void watchdogThreadLoop(object? obj)
VirtualManager.Suspend(false);

// suspend all physical controllers
bool suspendedControllers = false;
foreach (XInputController xInputController in GetPhysicalControllers().OfType<XInputController>())
{
// set flag(s)
xInputController.IsBusy = true;
SuspendController(xInputController.Details.baseContainerDeviceInstanceId);
suspendedControllers |= SuspendController(xInputController.Details.baseContainerDeviceInstanceId);
}

// wait a bit if none were suspended
if (!suspendedControllers)
Thread.Sleep(2000);

// resume virtual controller
VirtualManager.Resume(false);

Expand Down
Binary file removed redist/windowsdesktop-runtime-8.0.0-win-x64.exe
Binary file not shown.
Binary file not shown.

0 comments on commit 7e8b257

Please sign in to comment.