Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EA merge #870

Merged
merged 369 commits into from
Dec 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
369 commits
Select commit Hold shift + click to select a range
492635e
improve XInputPlus behavior
Valkirie Aug 20, 2023
5814538
update power cycling logic a bit, making it compatible with Generic c…
Valkirie Aug 20, 2023
c4b4494
fix hid hiding during powercyle
Valkirie Aug 20, 2023
7fb6f50
do not prevent user from setting UMC while game is whitelisted
Valkirie Aug 20, 2023
555b6d9
add missing xinput check on hid arrived
Valkirie Aug 21, 2023
dbf5c85
Fix logs missing date postfix, missing Serilog dependency (#29)
CasperH2O Aug 21, 2023
2b8d6ea
UI.WPF.Modern v0.9.17
Valkirie Aug 22, 2023
9cbb6e2
remove unused dependencies
Valkirie Aug 22, 2023
9bc9d7e
Clean up system tray menu. (#30)
CasperH2O Aug 24, 2023
0fac714
Migrate gyroscope out of Profile (Phase 1) (#31)
Valkirie Aug 24, 2023
6303341
add support for AYANEO Air 1S (#32)
Valkirie Aug 24, 2023
b3ea0a8
add a few more glyphs to DS4/DualSense
Valkirie Aug 24, 2023
1309685
fix DualSense glyphs (Options, Share, Touchpad)
Valkirie Aug 24, 2023
bcd54ba
fix issues with motion trigger UI update when switching profiles
Valkirie Aug 25, 2023
9539c76
change MotionControlAdditional visibility based on currentProfile layout
Valkirie Aug 25, 2023
4aa1756
make QT larger
Valkirie Aug 25, 2023
bdc5f9d
Merge German Translation from Bagboii (#35)
Valkirie Aug 25, 2023
009fdb9
Localization update, service removal cleanup, enums added (#33)
CasperH2O Aug 25, 2023
ed16e04
Improve Apply Layout Warning. (#34)
CasperH2O Aug 25, 2023
11ed2d1
fix missing </data>
Valkirie Aug 25, 2023
434b00d
Initial russian translation from Geckon01 (#36)
Valkirie Aug 25, 2023
b66fd7d
Added Custom overlay mode from Contributor micdah
Valkirie Aug 25, 2023
53a60ef
Localization update (#37)
CasperH2O Aug 25, 2023
10c42b4
fixed known issues with QT layout management
Valkirie Aug 26, 2023
e82da77
update QT UI (Profiles page)
Valkirie Aug 26, 2023
e43ef8a
update QT
Valkirie Aug 26, 2023
c1f8bd4
update installer script
Valkirie Aug 26, 2023
ddc2b00
fix AYANEO 1S OEM buttons
Valkirie Aug 27, 2023
b8429f3
remove unused using(s)
Valkirie Aug 27, 2023
8a709ae
enable/disable QT UI when no process is detected
Valkirie Aug 27, 2023
34c3f33
apply default profile on startup
Valkirie Aug 27, 2023
4eaaf9e
Aldx update (#38)
Valkirie Aug 27, 2023
aeb40d6
oups
Valkirie Aug 27, 2023
6fe8b94
build 0.18.0.1
Valkirie Aug 27, 2023
da45217
fix an issue with layout manager
Valkirie Aug 27, 2023
ee0b56d
fix typo, we should Close() device not Open() it when going to sleep
Valkirie Aug 28, 2023
0ca87f9
(re)implementation of XInput UserIndex's half-baked guessing logic (#39)
Valkirie Aug 28, 2023
db40546
improve layout page update logic
Valkirie Aug 28, 2023
58a7903
simplify SteamDeck controller management logic, make it just work...
Valkirie Aug 28, 2023
9e998fa
implement CustomSettingsProvider
Valkirie Aug 28, 2023
3753dad
Update from mainline (#40)
Valkirie Aug 29, 2023
9b3dee3
Improve HidHide (#41)
Valkirie Aug 30, 2023
baa59b3
Implement Vangogh support (Steam Deck) (#42)
Valkirie Aug 30, 2023
4b833f5
prevent HC from messing with RTSS OSD value
Valkirie Aug 31, 2023
5057715
implement Steam Xbox Controller Enhanced Features Driver detection (#43)
Valkirie Aug 31, 2023
4967aad
implement SteamNeptuneDesktopWarning
Valkirie Aug 31, 2023
bb1fc65
stop using Process.MainModule whenever we can
Valkirie Sep 1, 2023
0c62939
Use Manaul TDP slider for max AutoTDP range (#44)
CasperH2O Sep 1, 2023
262b1d8
stop using slow GetPathToApp
Valkirie Sep 1, 2023
13c0b88
fix an issue freezing the UI thread
Valkirie Sep 1, 2023
06e0f2e
proof of concept: implement gyro/joystick weight logic (#45)
Valkirie Sep 2, 2023
bbde0fd
set a few vars to string.Empty
Valkirie Sep 2, 2023
a482763
Gyro weight, update default, use improved circular length for joystic…
CasperH2O Sep 3, 2023
e42d15f
XUsbDevice_DeviceArrived improvement (#47)
Valkirie Sep 3, 2023
628bcef
copy previous user.config to expected path
Valkirie Sep 3, 2023
ae289f0
use const string UserConfigFileName
Valkirie Sep 3, 2023
346bf87
display Indeterminate ProgressBar while controller visibility is bein…
Valkirie Sep 3, 2023
abab047
build 0.18.0.2
Valkirie Sep 3, 2023
831fe58
while this was a good idea, the format is now different and it just d…
Valkirie Sep 4, 2023
c809b7d
prevent crash when power cycling SteamController(s)
Valkirie Sep 4, 2023
b6bbf4a
fix an issue with steam platform stopping/stopped detection
Valkirie Sep 6, 2023
a2b9bfb
add missing SettingsPath check/creation
Valkirie Sep 16, 2023
ae7ec5d
add support for preview net8.0
Valkirie Sep 16, 2023
0a055c7
improve file management
Valkirie Sep 16, 2023
cfb7513
fix IsFileWritable()
Valkirie Sep 16, 2023
44e8bc8
further improve XInputPlus logic
Valkirie Sep 16, 2023
6f876a6
build 0.18.0.3
Valkirie Sep 17, 2023
ab872c5
add support for ONEXPLAYER 2 PRO ARP23P (non eva)
Valkirie Sep 17, 2023
52358cd
Add support for Rog Ally ACPI/HidLibrary (#48)
Valkirie Sep 21, 2023
20fdae3
Addition of GPD Win 4 2023 (#49)
CasperH2O Sep 21, 2023
a3cadb4
Setup dotnet 8 SDK
Valkirie Sep 21, 2023
3f1fc61
more work on bluetooth controller support
Valkirie Sep 21, 2023
ebfdb99
oups
Valkirie Sep 21, 2023
be74f9b
improve logic on Bluetooth XInput controllers
Valkirie Sep 23, 2023
4218b2e
fix missing FirstStart check
Valkirie Sep 23, 2023
95b6903
go home ben, you're drunk
Valkirie Sep 23, 2023
f2c8b44
add controller SetLightColor() logic (wip)
Valkirie Sep 23, 2023
cad7995
add SetLightColor() to DualSense
Valkirie Sep 23, 2023
97a8dfa
GPD Win 4 2023 Add fan control (#50)
CasperH2O Sep 30, 2023
ecb8f30
fix issues with Rog Ally buttons
Valkirie Oct 26, 2023
622eac7
Icon updates (#52)
CasperH2O Oct 27, 2023
dab6417
Implement power profile, fan control and new UI (#53)
Valkirie Oct 27, 2023
aa0197e
Functional Bias Lighting. (#51)
CasperH2O Oct 31, 2023
dd97e0b
fix merge errors and remvoe unused imports/usings
Valkirie Oct 31, 2023
9a3e78e
improve gamepad navigation experience with tooltip display on sliders
Valkirie Oct 31, 2023
2ef7c44
Improve ROGAlly OEM buttons support (#54)
Valkirie Nov 1, 2023
affc341
improve DynamicLighting
Valkirie Nov 1, 2023
be1fc60
set OSPowerMode on default PowerProfiles
Valkirie Nov 1, 2023
006929d
restore net8
Valkirie Nov 1, 2023
d914815
build 0.19.0.1
Valkirie Nov 3, 2023
a83d2b5
Hotfixes based on Patreons feedbacks (#55)
Valkirie Nov 5, 2023
fc8d1b1
implement backup method to detect and resume stalled controllers
Valkirie Nov 5, 2023
0f1c6c1
implement Gamepad Toggle action on RadioButton and CheckBox
Valkirie Nov 5, 2023
9482989
further improve QT UI
Valkirie Nov 5, 2023
a22777f
fix PowerProfileSettingsDialog
Valkirie Nov 5, 2023
f7b67b3
Add support for Lenovo Legion Go (#56)
Valkirie Nov 9, 2023
3f2a8bc
GPD Win 4, clean up code duplication and fix OEM icons. (#57)
CasperH2O Nov 10, 2023
dd8b1ae
a bit of work on platforms
Valkirie Nov 10, 2023
24d0bea
OneXFly Support (Basic) (#58)
CasperH2O Nov 13, 2023
2b8a2ad
Improve compatibility (#59)
Valkirie Nov 13, 2023
99c12a2
update uninstaller GUID for HidHide and Vigem
Valkirie Nov 13, 2023
dbffbf6
Merge additions from Mainline (#60)
Valkirie Nov 13, 2023
748bf95
That's better
Valkirie Nov 13, 2023
1bf297f
the smaller the delay, the better
Valkirie Nov 13, 2023
28b67f0
Improve detection
Valkirie Nov 13, 2023
c856e97
prevent crash on ResumeDevices
Valkirie Nov 15, 2023
1a4c0bd
Implement SapientiaUsb
Valkirie Nov 15, 2023
8906160
prevent issues with Sapient and controller on LegionGo wakeup from hi…
Valkirie Nov 15, 2023
333fae2
improve DynamicLightingManager robustness
Valkirie Nov 15, 2023
fbd4e27
try and improve controller manager robustness
Valkirie Nov 15, 2023
db3cad9
fix IsReady on LegionGo
Valkirie Nov 15, 2023
883fc9d
should be better
Valkirie Nov 15, 2023
21e8212
add a progress ring on controller page when busy
Valkirie Nov 15, 2023
ae63dea
use Gamepad: {Slot} rather than DICE icon on IController
Valkirie Nov 15, 2023
fac5ba5
only bother if targeted controller is Xbox360
Valkirie Nov 16, 2023
d71f034
misc qol
Valkirie Nov 16, 2023
65b1323
net8.0 (#61)
Valkirie Nov 16, 2023
8f0715c
add IController SetHaptic()
Valkirie Nov 16, 2023
fc47dc2
there might be capricious devices...
Valkirie Nov 16, 2023
158fe46
OneXFly LED and fan control (#62)
CasperH2O Nov 16, 2023
791adf3
Rog Ally: Implement proper M1/M2 support (#63)
Valkirie Nov 16, 2023
2db9e9f
add check on DeviceCapabilities.FanControl on Performance and QuickPe…
Valkirie Nov 16, 2023
2210833
tentative to implement simplified inputs manager for F13...F24 (#64)
Valkirie Nov 16, 2023
afb90fa
Update InputsManager.cs (#65)
Valkirie Nov 16, 2023
0378132
force gamepad target to view
Valkirie Nov 16, 2023
297d604
prevent LegionGo strange controller behavior from messing with contro…
Valkirie Nov 17, 2023
b166af5
improve controller logic
Valkirie Nov 17, 2023
00f34ab
fixed LegionGo accelerometer axis
Valkirie Nov 17, 2023
1b9da0c
improve controller manager
Valkirie Nov 17, 2023
4610b77
prevent hang on GetPnPUtilResult
Valkirie Nov 17, 2023
6962353
force restore all Mouse/HIDClass devices when HC is closed on LegionG…
Valkirie Nov 17, 2023
ca0fdb9
0.19.0.3
Valkirie Nov 17, 2023
390d23b
feature - default layout option on profiles (#827)
MSeys Nov 17, 2023
8aaaba2
add missing LayoutPage_SetAsDefault
Valkirie Nov 17, 2023
b3cc564
oups
Valkirie Nov 17, 2023
28727f2
fix merge errors
Valkirie Nov 17, 2023
032890f
bugfix - hotkey output erase (#826)
MSeys Nov 17, 2023
e272b45
Controller manager (#68)
Valkirie Nov 20, 2023
80d7337
bugfix - Legion Go - QT spam fix (#66)
MSeys Nov 20, 2023
96c30ed
feature - OSD Frametime (#67)
MSeys Nov 20, 2023
7a53d93
improve controller manager logic
Valkirie Nov 21, 2023
9de699c
Improve LegionGo touchpad support
Valkirie Nov 21, 2023
3dad37e
implement proper LegionGo touchpad passthrough option
Valkirie Nov 21, 2023
367b907
prevent Rog Ally HID device from getting slow after sleep/resume
Valkirie Nov 21, 2023
9832cda
add haptic feedback to LegionGo default profile on touchpad click/hold
Valkirie Nov 21, 2023
4da296a
make ambilight square size 10% of screen width
Valkirie Nov 21, 2023
c053230
prevent crash when changing resolution and ambilight is runing
Valkirie Nov 22, 2023
e998f93
allow dynamic lighting speed slider to affect ambilight refresh rate
Valkirie Nov 22, 2023
547b1f0
this can cause infinite loop
Valkirie Nov 22, 2023
1187ca5
LegionGo: add all three default power profiles
Valkirie Nov 22, 2023
ba1e2c1
Update libraries and (un)installer scripts (#71)
Valkirie Nov 22, 2023
b7ba76b
Controller manager will have three attempts before giving up.
Valkirie Nov 22, 2023
c194029
prevent ambilight from being started if it was off on screen res changes
Valkirie Nov 23, 2023
28f212f
improve controller manager and exception dialog
Valkirie Nov 23, 2023
8d1ec42
Feature: Motion Toggle (#842) (#73)
Valkirie Nov 23, 2023
2b13caa
use HashSet instead of Dictionary
Valkirie Nov 23, 2023
a7aeb6d
improve IController userIndex display
Valkirie Nov 23, 2023
9999946
display virtual controller userIndex on controller page
Valkirie Nov 23, 2023
b0395d1
fix an issue preventing controllers from being displayed on HC start
Valkirie Nov 23, 2023
276067c
don't try to create a virtual controller first if it's deliberately d…
Valkirie Nov 23, 2023
f7c0971
Improve LegionGo behavior when controller are wireless (#75)
Valkirie Nov 24, 2023
0992962
bugfix - installer (#74)
MSeys Nov 24, 2023
73819df
Fixed an issue with the initialization order of managers that affecte…
Valkirie Nov 24, 2023
3ce5095
Merge branch 'main' of https://github.com/Valkirie/HandheldCompanion-EA
Valkirie Nov 24, 2023
1ec0ef2
fix an issue that causes the controller manager from stacking virtual…
Valkirie Nov 24, 2023
1d1df02
this should help keeping track of latest virtual controller userindex
Valkirie Nov 24, 2023
45357f0
improve controller management
Valkirie Nov 24, 2023
5aae475
don't hook keyboard on devices where OEMChords doesn't contain any Ke…
Valkirie Nov 25, 2023
be1a7f5
Prevent crash on null udpSock
Valkirie Nov 25, 2023
3633cbe
#752 Fix restore of total CPU Core count after adjustment by profile …
CasperH2O Nov 25, 2023
bf1948f
Add support for OLED SteamDeck (Galileo) (#77)
Valkirie Nov 25, 2023
97d2b3d
update ryzenadj to support Galileo
Valkirie Nov 25, 2023
7b2c560
fix an issue preventing a power profile from being applied if fan mod…
Valkirie Nov 25, 2023
583a0b2
update non XInput controllers to new controller logic
Valkirie Nov 25, 2023
9da6acd
add missing IsPowerCycling = true
Valkirie Nov 25, 2023
fdb16e8
change SteamControllerMute default value back to False
Valkirie Nov 27, 2023
92d0c1f
greatly simplify Long press IAction
Valkirie Nov 27, 2023
3f03903
prevent Guide button (Special) from being locked when QT is summoned
Valkirie Nov 27, 2023
3cf652f
dirty fix for stalled DSUServer on client disconnect
Valkirie Nov 27, 2023
c34901e
PromptFont Update, OneXPlayer and Legion Go OEM icon update (#78)
CasperH2O Nov 27, 2023
29e3194
update Nefarius.Drivers.HidHide
Valkirie Nov 27, 2023
b20c47f
Start implementing IHint class
Valkirie Nov 27, 2023
a787fd9
Merge branch 'main' of https://github.com/Valkirie/HandheldCompanion-EA
Valkirie Nov 27, 2023
016d761
add new hint: Hint_LegionGoDaemon
Valkirie Nov 27, 2023
4233299
fix Hint_LegionGoDaemon
Valkirie Nov 27, 2023
55f9994
fix a crash when pulling ProductName from multiple threads
Valkirie Nov 27, 2023
53f7f50
improve Hint_RogAllyServiceCheck logic
Valkirie Nov 27, 2023
70989e0
Add missing resources for new hints
Valkirie Nov 28, 2023
20f7003
Add notifications (#79)
Valkirie Nov 28, 2023
c4674a6
raised Stalled event when HWiNFO 12H limit is reached
Valkirie Nov 28, 2023
fbb689c
implement CpuClock
Valkirie Nov 28, 2023
5a22610
halt hint(s) on notifications page close
Valkirie Nov 28, 2023
4c66091
Profile page, update warning icon to new standard. (#83)
CasperH2O Dec 1, 2023
06b1a28
#773 Fix HC always defaulting RTSS framerate limit to 0. (#81)
CasperH2O Dec 1, 2023
0265746
Fix Notification bell incorrectly showing new message on application …
CasperH2O Dec 1, 2023
2e33ca2
HWiNFO Add hint 12 hour limit check needs to be set by user. (#84)
CasperH2O Dec 3, 2023
3c2bc76
fix an issue while reading Hint_SteamNeptuneDesktop
Valkirie Dec 3, 2023
7c8e61a
Per-Profile and hotkey emulated controller switching (#80)
cerahmed Dec 3, 2023
107ae23
change ColumnDefinitions on ProfilesPage for emulated controller
Valkirie Dec 3, 2023
7e0e242
update dependencies
Valkirie Dec 3, 2023
36f9f2e
add support for Steam Deck OLED firmware 0x1030
Valkirie Dec 3, 2023
6ebc020
fix an issue preventing Hide/Unhide button from being updated
Valkirie Dec 3, 2023
63828c8
might prevent random UI issues with target controller userindex display
Valkirie Dec 3, 2023
71c2bdf
always pass RightPadTouch value on LegionGo
Valkirie Dec 3, 2023
83063d2
Merge branch 'main' of https://github.com/Valkirie/HandheldCompanion-EA
Valkirie Dec 3, 2023
24405c1
fix infinite error loop on DSUServer when client has disconnected (st…
Valkirie Dec 3, 2023
c2d6f54
build 0.19.1.0
Valkirie Dec 3, 2023
b145128
modify both installer and HC so that installation is for current user…
Valkirie Dec 4, 2023
18d11b4
prevent infinite rumble on AOKZOE or ONE-NETBOOK devices
Valkirie Dec 4, 2023
d56ea31
make VirtualManager Resume/Suspend optional (#86)
Valkirie Dec 4, 2023
7e5a06b
fix an issue preventing hotkeys to capture keyboard on devices with n…
Valkirie Dec 5, 2023
48afed1
Improve Lenovo Legion Go support (#87)
Valkirie Dec 6, 2023
be13898
Improve Steam Deck controller (Neptune) support (#88)
Valkirie Dec 6, 2023
0e8ecdf
Revert "make VirtualManager Resume/Suspend optional (#86)"
Valkirie Dec 6, 2023
7026119
fix wrong (...) glyph on SteamDeck
Valkirie Dec 6, 2023
24057dd
fix Rog Ally M1/M2 support
Valkirie Dec 6, 2023
96666de
Merge branch 'main' of https://github.com/Valkirie/HandheldCompanion-EA
Valkirie Dec 6, 2023
64c9a75
fix a crash on screen rotation
Valkirie Dec 6, 2023
11576cf
implement new hint: Core Isolation check
Valkirie Dec 6, 2023
fbea610
oups
Valkirie Dec 6, 2023
21ae703
fix crash on null keys
Valkirie Dec 6, 2023
7d18a82
prevent crash on controller manager when looking for plugged XInput c…
Valkirie Dec 6, 2023
1cdfcc6
quick cleanup
Valkirie Dec 6, 2023
0edd38c
should fix the controller management "try again" button
Valkirie Dec 7, 2023
e23830f
LegionGO crash fix on init
Valkirie Dec 7, 2023
163ee27
prevent crash on failed ManagementScope call
Valkirie Dec 7, 2023
43789e3
prevent device manager from hanging UI
Valkirie Dec 7, 2023
3a13d16
(Legion Go) prevent crash on null dataThread
Valkirie Dec 7, 2023
e276ae4
(Legion Go) prevent crash on GetSmartFanMode
Valkirie Dec 7, 2023
e1a9b1a
prevent crash when applying profile HIDmode while controller manageme…
Valkirie Dec 7, 2023
1a8811c
QoL edits on controller management
Valkirie Dec 7, 2023
684d49c
misc work on controller management
Valkirie Dec 7, 2023
b6571b3
Merge branch 'main' of https://github.com/Valkirie/HandheldCompanion-EA
Valkirie Dec 7, 2023
9bfa140
misc: make controller manager and device manager a bit more robust
Valkirie Dec 7, 2023
2fc0c6c
stop mapping OEM1 to Xbox GUIDE
Valkirie Dec 7, 2023
2bcfb34
fix GetResolution() and therefore QT resolutions combobox and ambilight
Valkirie Dec 7, 2023
4e7f4e8
build 0.19.1.2
Valkirie Dec 7, 2023
c40e205
prevent crash on multithreaded access to MotherboardInfo.Manufacturer
Valkirie Dec 7, 2023
db9f942
fix name on few Joyshock controllers
Valkirie Dec 8, 2023
e040f06
prevent crash if JslConnectDevices() fails and try 3 more times
Valkirie Dec 8, 2023
716e577
silence TDP changes when using immediate commands (AutoTDP mostly)
Valkirie Dec 8, 2023
cf0dae2
build 0.19.1.3
Valkirie Dec 8, 2023
5e5d5d9
Ayaneo 2021 device cleanup. (#90)
CasperH2O Dec 9, 2023
b88c03b
Fixed HID mode not changing when a profile is dismissed (#91)
cerahmed Dec 9, 2023
9fc7ab2
bugfix - rtss + hwinfo overlay issues fixes (#92)
MSeys Dec 9, 2023
71e4cdb
Initial CNCDan NUC Deck support. (#89)
CasperH2O Dec 10, 2023
13793a8
Build 0.19.1.4
CasperH2O Dec 10, 2023
19fef4a
fix merge conflicts ?
Valkirie Dec 11, 2023
ff319dd
fixme
Valkirie Dec 11, 2023
a6d034c
Update README.md
Valkirie Dec 11, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/publish-hc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,4 +103,4 @@ jobs:
draft: true
fail_on_unmatched_files: true
files: |
./install/HandheldCompanion-${{ inputs.releaseVersion }}.exe
./install/HandheldCompanion-${{ inputs.releaseVersion }}.exe
64 changes: 24 additions & 40 deletions HandheldCompanion.iss
Original file line number Diff line number Diff line change
Expand Up @@ -215,28 +215,15 @@ begin
Result := ShellExec('', ExpandConstant('{tmp}{\}') + 'netcorecheck' + Dependency_ArchSuffix + '.exe', Version, '', SW_HIDE, ewWaitUntilTerminated, ResultCode) and (ResultCode = 0);
end;

procedure Dependency_AddDotNet70;
procedure Dependency_AddDotNet80Desktop;
begin
// https://dotnet.microsoft.com/download/dotnet/7.0
if not Dependency_IsNetCoreInstalled('Microsoft.NETCore.App 7.0.0') then begin
Dependency_Add('dotnet70' + Dependency_ArchSuffix + '.exe',
// https://dotnet.microsoft.com/en-us/download/dotnet/8.0
if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App 8.0.0') then begin
Dependency_Add('dotNet80desktop' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
'.NET Runtime 7.0.0' + Dependency_ArchTitle,
Dependency_String('https://download.visualstudio.microsoft.com/download/pr/75c0d7c7-9f30-46fd-9675-a301f0e051f4/ec04d5cc40aa6537a4af21fad6bf8ba9/dotnet-runtime-7.0.0-win-x86.exe',
'https://download.visualstudio.microsoft.com/download/pr/87bc5966-97cc-498c-8381-bff4c43aafc6/baca88b989e7d2871e989d33a667d8e9/dotnet-runtime-7.0.0-win-x64.exe'),
'', False, False);
end;
end;

procedure Dependency_AddDotNet70Desktop;
begin
// https://dotnet.microsoft.com/download/dotnet/7.0
if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App 7.0.10') then begin
Dependency_Add('dotnet70desktop' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
'.NET Desktop Runtime 7.0.0' + Dependency_ArchTitle,
Dependency_String('https://download.visualstudio.microsoft.com/download/pr/9812249d-fc42-41ab-bd2e-6e858d5dd5a7/95fa5a1a77eace4482bcb98ede190003/windowsdesktop-runtime-7.0.10-win-x86.exe',
'https://download.visualstudio.microsoft.com/download/pr/747f4a98-2586-4bc6-b828-34f35e384a7d/44225cfd9d365855ec77d00c4812133c/windowsdesktop-runtime-7.0.10-win-x64.exe'),
'.NET Desktop Runtime 8.0.0' + Dependency_ArchTitle,
Dependency_String('https://download.visualstudio.microsoft.com/download/pr/b280d97f-25a9-4ab7-8a12-8291aa3af117/a37ed0e68f51fcd973e9f6cb4f40b1a7/windowsdesktop-runtime-8.0.0-win-x64.exe',
'https://download.visualstudio.microsoft.com/download/pr/f9e3b581-059d-429f-9f0d-1d1167ff7e32/bd7661030cd5d66cd3eee0fd20b24540/windowsdesktop-runtime-8.0.0-win-x86.exe'),
'', False, False);
end;
end;
Expand Down Expand Up @@ -325,21 +312,19 @@ end;

procedure Dependency_AddHideHide;
begin
// https://www.microsoft.com/en-US/download/details.aspx?id=35
Dependency_Add('HidHide_1.4.192_x64.exe',
'/quiet /norestart',
'HidHide Drivers v1.4.192',
'HidHide Drivers',
'https://github.com/nefarius/HidHide/releases/download/v1.4.192.0/HidHide_1.4.192_x64.exe',
'', True, False);
end;

procedure Dependency_AddViGem;
begin
// https://www.microsoft.com/en-US/download/details.aspx?id=35
Dependency_Add('ViGEmBus_1.22.0_x64_x86_arm64.exe',
'/quiet /norestart',
'ViGEmBus Setup 1.22.0',
'https://github.com/Valkirie/HandheldCompanion/raw/main/redist/ViGEmBus_1.22.0_x64_x86_arm64.exe',
'ViGEmBus Setup',
'https://github.com/nefarius/ViGEmBus/releases/download/v1.22.0/ViGEmBus_1.22.0_x64_x86_arm64.exe',
'', True, False);
end;

Expand Down Expand Up @@ -370,7 +355,7 @@ end;
; requires netcorecheck.exe and netcorecheck_x64.exe (see download link below)
#define UseNetCoreCheck
#ifdef UseNetCoreCheck
#define UseDotNet70
#define UseDotNet80
#endif

;#define UseVC2005
Expand All @@ -389,15 +374,15 @@ end;

#define MyAppSetupName 'Handheld Companion'
#define MyBuildId 'HandheldCompanion'
#define MyAppVersion '0.18.0.6'
#define MyAppVersion '0.19.1.3'
#define MyAppPublisher 'BenjaminLSR'
#define MyAppCopyright 'Copyright @ BenjaminLSR'
#define MyAppURL 'https://github.com/Valkirie/HandheldCompanion'
#define MyAppExeName "HandheldCompanion.exe"
#define MyConfiguration "Release"

#ifdef UseDotNet70
#define MyConfigurationExt "net7.0"
#ifdef UseDotNet80
#define MyConfigurationExt "net8.0"
#endif

AppName={#MyAppSetupName}
Expand All @@ -419,7 +404,10 @@ SourceDir=redist
OutputDir={#SourcePath}\install
AllowNoIcons=yes
MinVersion=6.0
PrivilegesRequired=admin
;PrivilegesRequired=admin
PrivilegesRequiredOverridesAllowed=dialog
Compression=lzma
SolidCompression=yes

// remove next line if you only deploy 32-bit binaries and dependencies
ArchitecturesInstallIn64BitMode=x64
Expand Down Expand Up @@ -454,12 +442,8 @@ Name: "{commondesktop}\{#MyAppSetupName}"; Filename: "{app}\{#MyAppExeName}"; Ta
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"

[Run]
Filename: "{sys}\sc.exe"; Parameters: "stop ControllerService" ; Flags: runascurrentuser runhidden
Filename: "{sys}\sc.exe"; Parameters: "delete ControllerService" ; Flags: runascurrentuser runhidden

[UninstallRun]
Filename: "C:\Program Files\Nefarius Software Solutions e.U\HidHideCLI\HidHideCLI.exe"; Parameters: "--cloak-off" ; RunOnceId: "CloakOff"; Flags: runascurrentuser runhidden
Filename: "C:\Program Files\Nefarius Software Solutions\HidHide\x64\HidHideCLI.exe"; Parameters: "--cloak-off" ; RunOnceId: "CloakOff"; Flags: runascurrentuser runhidden

[UninstallDelete]
Type: filesandordirs; Name: "{app}"
Expand Down Expand Up @@ -508,7 +492,7 @@ begin

if not(keepHidhideCheckbox.Checked) then
begin
if(ShellExec('', 'msiexec.exe', '/X{50D7EB6D-6A4A-4A38-B09C-CC28F75F082E} /qn /norestart', '', SW_SHOW, ewWaitUntilTerminated, resultCode)) then
if(ShellExec('', 'msiexec.exe', '/X{BE49B9DE-F8EB-4F54-B312-DD4B601985FC}', '', SW_SHOW, ewWaitUntilTerminated, resultCode)) then
begin
log('Successfully executed Hidhide uninstaller');
if(resultCode = 0) then
Expand All @@ -524,7 +508,7 @@ begin

if not(keepVigemCheckbox.Checked) then
begin
if(ShellExec('', 'msiexec.exe', '/X{9C581C76-2D68-40F8-AA6F-94D3C5215C05} /qn /norestart', '', SW_SHOW, ewWaitUntilTerminated, resultCode)) then
if(ShellExec('', 'msiexec.exe', '/X{966606F3-2745-49E9-BF15-5C3EAA4E9077}', '', SW_SHOW, ewWaitUntilTerminated, resultCode)) then
begin
log('Successfully executed Vigem uninstaller');
if(resultCode = 0) then
Expand Down Expand Up @@ -564,8 +548,8 @@ end;
function InitializeSetup: Boolean;
begin

#ifdef UseDotNet70
Dependency_AddDotNet70Desktop;
#ifdef UseDotNet80
Dependency_AddDotNet80Desktop;
#endif

#ifdef UseVC2005
Expand Down Expand Up @@ -610,4 +594,4 @@ begin
Result := True;
end;

#endif
#endif
4 changes: 2 additions & 2 deletions HandheldCompanion/Actions/ButtonActions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ public ButtonActions(ButtonFlags button) : this()
this.Button = button;
}

public override void Execute(ButtonFlags button, bool value, int longTime)
public override void Execute(ButtonFlags button, bool value)
{
base.Execute(button, value, longTime);
base.Execute(button, value);

switch (this.Value)
{
Expand Down
56 changes: 16 additions & 40 deletions HandheldCompanion/Actions/IActions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,6 @@ public abstract class IActions : ICloneable
protected object Value;
protected object prevValue;

// values below are common for button type actions

protected int Period;

// TODO: multiple delay, delay ranges
public PressType PressType = PressType.Short;
public int LongPressTime = 450; // default value for steam
Expand All @@ -101,7 +97,6 @@ public abstract class IActions : ICloneable

public IActions()
{
Period = TimerManager.GetPeriod();
}

public virtual void SetHaptic(ButtonFlags button, bool up)
Expand All @@ -113,42 +108,23 @@ public virtual void SetHaptic(ButtonFlags button, bool up)
ControllerManager.GetTargetController()?.SetHaptic(this.HapticStrength, button);
}

// if longDelay == 0 no new logic will be executed
public virtual void Execute(ButtonFlags button, bool value, int longTime)
public virtual void Execute(ButtonFlags button, bool value)
{
// reset failed attempts on button release
if (pressTimer >= 0 && !value &&
((PressType == PressType.Short && pressTimer >= longTime) ||
(PressType == PressType.Long && pressTimer < longTime)))
{
pressTimer = -1;
prevValue = false;
return;
}

// some long presses exist and button was just pressed, start the timer and quit
if (longTime > 0 && value && !(bool)prevValue)
{
pressTimer = 0;
prevValue = true;
return;
}

if (pressTimer >= 0)
switch(PressType)
{
pressTimer += Period;

// conditions were met to trigger either short or long, reset state, press buttons
if ((!value && PressType == PressType.Short && pressTimer < longTime) ||
(value && PressType == PressType.Long && pressTimer >= longTime))
{
pressTimer = -1;
prevValue = false; // simulate a situation where the button was just pressed
value = true; // prev = false, current = true, this way toggle works
}
// timer active, conditions not met, carry on, maybe smth happens, maybe failed attempt
else
return;
case PressType.Long:
{
if (value || (pressTimer <= LongPressTime && pressTimer >= 0))
{
pressTimer += TimerManager.GetPeriod();
value = true;
}
else if(pressTimer >= LongPressTime)
{
pressTimer = -1;
}
}
break;
}

if (Toggle)
Expand All @@ -166,7 +142,7 @@ public virtual void Execute(ButtonFlags button, bool value, int longTime)
if (TurboIdx % TurboDelay == 0)
IsTurboed = !IsTurboed;

TurboIdx += Period;
TurboIdx += TimerManager.GetPeriod();
}
else
{
Expand Down
4 changes: 2 additions & 2 deletions HandheldCompanion/Actions/KeyboardActions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ public KeyboardActions(VirtualKeyCode key) : this()
this.Key = key;
}

public override void Execute(ButtonFlags button, bool value, int longTime)
public override void Execute(ButtonFlags button, bool value)
{
base.Execute(button, value, longTime);
base.Execute(button, value);

switch (this.Value)
{
Expand Down
4 changes: 2 additions & 2 deletions HandheldCompanion/Actions/MouseActions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,9 @@ public MouseActions(MouseActionsType type) : this()
this.MouseType = type;
}

public override void Execute(ButtonFlags button, bool value, int longTime)
public override void Execute(ButtonFlags button, bool value)
{
base.Execute(button, value, longTime);
base.Execute(button, value);

switch (this.Value)
{
Expand Down
33 changes: 30 additions & 3 deletions HandheldCompanion/App.config
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@
<value>True</value>
</setting>
<setting name="SteamControllerMute" serializeAs="String">
<value>True</value>
<value>False</value>
</setting>
<setting name="HIDcloakonconnect" serializeAs="String">
<value>True</value>
Expand Down Expand Up @@ -197,8 +197,8 @@
<setting name="QuickToolsAutoHide" serializeAs="String">
<value>False</value>
</setting>
<setting name="VirtualControllerForceOrder" serializeAs="String">
<value>False</value>
<setting name="ControllerManagement" serializeAs="String">
<value>True</value>
</setting>
<setting name="HidModeDoNotShowAgain" serializeAs="String">
<value>False</value>
Expand All @@ -218,6 +218,33 @@
<setting name="DSUip" serializeAs="String">
<value>127.0.0.1</value>
</setting>
<setting name="LEDBrightness" serializeAs="String">
<value>50</value>
</setting>
<setting name="LEDMainColor" serializeAs="String">
<value>#FFFFFF00</value>
</setting>
<setting name="LEDAmbilightVerticalBlackBarDetection" serializeAs="String">
<value>False</value>
</setting>
<setting name="LEDSettingsLevel" serializeAs="String">
<value>0</value>
</setting>
<setting name="LEDSettingsEnabled" serializeAs="String">
<value>True</value>
</setting>
<setting name="LEDSecondColor" serializeAs="String">
<value>#FFFFFF00</value>
</setting>
<setting name="LEDSettingsUseAccentColor" serializeAs="String">
<value>False</value>
</setting>
<setting name="LEDSpeed" serializeAs="String">
<value>50</value>
</setting>
<setting name="LegionControllerPassthrough" serializeAs="String">
<value>False</value>
</setting>
</HandheldCompanion.Properties.Settings>
</userSettings>
</configuration>
8 changes: 4 additions & 4 deletions HandheldCompanion/Controllers/DInputController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public DInputController(Joystick joystick, PnPDetails details)
return;

this.joystick = joystick;
UserIndex = joystick.Properties.JoystickId;
UserIndex = (byte)joystick.Properties.JoystickId;

if (details is null)
return;
Expand All @@ -28,9 +28,9 @@ public DInputController(Joystick joystick, PnPDetails details)
// Set BufferSize in order to use buffered data.
joystick.Properties.BufferSize = 128;

// ui
DrawControls();
RefreshControls();
// UI
DrawUI();
UpdateUI();
}

public override string ToString()
Expand Down
6 changes: 5 additions & 1 deletion HandheldCompanion/Controllers/DS4Controller.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
using HandheldCompanion.Inputs;
using HandheldCompanion.Managers;
using HandheldCompanion.Utils;
using Inkore.UI.WPF.Modern;
using System.Windows;
using System.Windows.Media;
using static JSL;
Expand Down Expand Up @@ -87,6 +86,11 @@ public override void UpdateInputs(long ticks)
base.UpdateInputs(ticks);
}

public override string ToString()
{
return "DUALSHOCK®4 Wireless Controller";
}

public override void Plug()
{
TimerManager.Tick += UpdateInputs;
Expand Down
5 changes: 5 additions & 0 deletions HandheldCompanion/Controllers/DualSenseController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@ public override void UpdateInputs(long ticks)
base.UpdateInputs(ticks);
}

public override string ToString()
{
return "DualSense® Wireless Controller";
}

public override void Plug()
{
TimerManager.Tick += UpdateInputs;
Expand Down
Loading
Loading