Commit Graph

730 Commits

Author SHA1 Message Date
Terry MacDonald
8216d307e7 Force TLS1.3 network connections for security reasons 2021-10-02 09:49:34 +13:00
Terry MacDonald
eae7de6ead Fixed upgrade and added helpful buttons 2021-10-01 22:42:00 +13:00
Terry MacDonald
bc1415f92a Tweaked Setup to better shutdown app
Trying to get the setup to shutdown a running DisplayMagician.exe but it's not working.
2021-10-01 21:49:17 +13:00
Terry MacDonald
efc5fc43c7 Finished messages and fixed upgrade logic
Have managed to fix the logic for the messages functionality and the upgrade logic for the MSI installer so that it can install same versions.
2021-10-01 21:39:20 +13:00
Terry MacDonald
e64e836525 Message display working
This is a first working message display, but doesn't ignore messages seen already. This needs fixing.
2021-10-01 18:04:22 +13:00
Terry MacDonald
28445c53a9 [WIP] Partially working Messages
Partially works downloading the messages, but doesn't quite handle displaying the downloaded RTF in the messages window.
2021-10-01 09:40:17 +13:00
Terry MacDonald
2d1e656ba1 [WIP] Partial MessageItem creation 2021-10-01 09:31:45 +13:00
Terry MacDonald
fdd8c97f66 Updated the assemblyinfo 2021-09-30 21:33:18 +13:00
Terry MacDonald
d298c00199 First upgrade warning logic entered into DM
This provides the steps to the users from the remote site so that I can update them if they are wrong. Seems to work correctly.
2021-09-30 21:30:06 +13:00
Terry MacDonald
09c1fcf452 Merge branch 'develop' of https://github.com/terrymacdonald/DisplayMagician into develop 2021-09-30 20:48:40 +13:00
Terry MacDonald
85f28ff9d5 [WIP] Partial startup message support
Adding ability to provide messages during bootup. This is specifically to allow update messages.
2021-09-30 20:48:26 +13:00
Terry MacDonald
f6177fe493 [WIP] Partial startup message support
Adding ability to provide messages during bootup. This is specifically to allow update messages.
2021-09-30 20:47:52 +13:00
Terry MacDonald
9eafe478fc Revised build versioning
Changed the build versioning to use an incrementing build version per build (and revision version per release build) as per https://stackoverflow.com/questions/826777/how-to-have-an-auto-incrementing-version-number-visual-studio. This uses an AssemblyInfo.tt T4 template to customise the versioning so that the application version can be set using the AssemblyVersion variable within the Visual Studio application properties. This makes it dead easy to change!

The Wix Program.wxs was also changed to use that new 4 digit version number as the versioning, which should help immensely with beta testing updates. No more asking people to uninstall the previous version as the new build will automatically upgrade the earlier version!
2021-09-30 10:26:17 +13:00
Terry MacDonald
9531dc717a Fixed broken settings ui
Settings UI checkboxes weren't being set properly. This fixes that issue.
2021-09-24 22:18:12 +12:00
Terry MacDonald
26506392bb Squashed an Epic library bug
Found a bug where I was using the loading the Origin library twice instead of loading the EpicLibrary items :/. This would have been a bug for the last couple of versions of DisplayMagician, so it's gret that I managed to squash it!
2021-09-24 18:06:32 +12:00
Terry MacDonald
2643256790 Enabled upgrades even when DM is minimised
Finished move of update logic to Program.cs to ensure that update checks occur even if DisplayMagician is minimised. This was a problem I found in testing earlier this year.
2021-09-24 17:22:45 +12:00
Terry MacDonald
3f6afa333e Updated beta version upgrade settings UI
Changed the settings UI to incorporate the new beta feature upgrade. Will allow users to always get the latest version but under the expectation it will potentially be broken.
2021-09-24 16:59:12 +12:00
Terry MacDonald
8cdc8b7e9b Added upgrade to latest beta versions option.
Added the ability for users to opt into upgrades to beta versions of software.
2021-09-23 21:45:07 +12:00
Terry MacDonald
981d9566ae Removed github pages docs path
Moved the github pages to a unqiue branch to allow updates to the github pages without affecting the main branch tagging.
2021-09-23 20:46:01 +12:00
Terry MacDonald
85d4a04795 Added Video card mode image to Edit Shortcut form
Now it looks much prettier.
2021-09-23 20:32:29 +12:00
Terry MacDonald
63479cae82 Set the default to log TRACE level log messages
This is just while we're doing in-depth testing.
2021-09-22 21:17:21 +12:00
Terry MacDonald
5aa100802b Fixed AMDLibrary null default config
This would stop DisplayMagician from loading if left in there.
2021-09-22 21:11:09 +12:00
Terry MacDonald
8b73a51fe3 Added additional checks to library mode matching 2021-09-22 20:37:10 +12:00
Terry MacDonald
48e27d30f9 Slightly speed up audio device swapping 2021-09-22 09:05:33 +12:00
Terry MacDonald
54d98e53ce Nuget updates 2021-09-22 08:47:28 +12:00
Terry MacDonald
c820c9bac4 Fixed incorrect return value from ApplyProfile
Fixes #41. Silly error from previous return value.
2021-09-22 08:22:57 +12:00
Terry MacDonald
e0bb774fde First fully working AMD Eyefinity implementation.
AMD Eyefinity now works just as well as the NVIDIA implementation... probably even more robustly than the NVIDIA one. Fixes #37 and #21. I'll now start on some other bugfixing and features in preparation for DisplayMagician v2.0.0
2021-09-21 21:21:10 +12:00
Terry MacDonald
5a1960720a Updated AMDInfo to final working version
WIth @scowling incredible help I managed to get the AMDLibrary to work, even if the user removes the Eyefinity configuration. AMDLibrary is now clever enough to automatically recreate the SLSMap even if the user has deleted it! This is a great robustness improvement, and will help reduce my support calls greatly!
2021-09-21 20:13:39 +12:00
Terry MacDonald
cbdc810606 Updated AMDLibrary from AMDInfo
Made some improvements to SetActiveConfig from AMDInfo testing, so ported them back into DisplayMagician.
2021-09-20 18:41:25 +12:00
Terry MacDonald
21b121199b Fixed ProfileDisplayIdentifier double up
Now ProfileItem loads properly from JSON file, which means that the profile matching works, so DisplayMagician now matches the profile if it's current.
2021-09-19 21:00:47 +12:00
Terry MacDonald
cd71725617 [WIP] Fixed error loading JSON after save
There was a problem with the unused display config containing null values on save, which meant that the JSON would be invalid when loaded in the next time. The fix was to ensure that both NVIDIA and AMD both were filled with a default config when a new profiles was created. This means that the real config would overwrite whichever config was needed, and the JSON file would work as all objects were populated correctly!
2021-09-19 20:56:58 +12:00
Terry MacDonald
1591fd534e Upgraded AMDLibrary to v1.0.0
This is the first actual working version of the AMDLibrary from AMDInfo v1.0.0. This is the first time that all 3 different video libraries are in DisplayMagician and working (mostly). The AMD Screens structu creation logic in ProfileItem still needs to be updated to cope with the AMD Eyefinity configuration, but it at least defaults to the windows one at the moment so it doesn't crash (whew).

Also managed to bugfix the recent libraryfolder.vdf parsing change that a recent Steam Library change oforced on us. The logic wasn't working, and so the parsing didn't work, which in turn caused an exception when it came time to look up the game shortcut validity.
2021-09-18 21:55:43 +12:00
Terry MacDonald
9c0241c720 Corrected Uplay lgging text to Steam 2021-09-10 19:47:50 +12:00
Terry MacDonald
7b57087d3a Removed LogReporter and updated ShellExtension
Removed LogReporter as DisplayMagician now contains most of the required logging that I need to actually fix things.

Updated the ShellExtension as it was looking for the old v1 JSON file. This now works correctly with the new v2 JSON file

Also updated the DisplayMagicianSetup to remove unneeded files to make the overall package smaller. It's now slimmed down to 12MB now, and it was 14MB. So that's a good bit of space saving!
2021-09-09 21:23:34 +12:00
Terry MacDonald
914ee2cc06 Initial partial creation of cancel logic
This code eventually will be used to allow the user to cancel waiting for the game/app. This won't work at the moment though as we actually monitor for the game on the UI thread (a big no no). I'll have to fix this in an upcoming update, but for now we'll leave it here.
2021-09-09 20:53:41 +12:00
Terry MacDonald
67bb58ae57 Fixed exception during transition to Mosaic
Issue when creating screens structure while NVIDIA setup is still partway through its changeover as it causes an exception. Now capture that exception and ignore it, as the screens structure is updated correctly when the screen finally settles down.
2021-09-09 19:55:24 +12:00
Terry MacDonald
c10e000559 Add logger to DisplayProfileForm 2021-09-09 09:23:28 +12:00
Terry MacDonald
6bd9898ea8 Fixed inconsistent NVIDIA HDR display setting
THere was an unneeded check that prevented the NVIDIA HDR settings being applied when it should have been. This in turn meant that the display profile equality matching wasn't working as the applied display profile was sufficiently different to the one selected and applied that it wouldn't match, and would instead display the brand new profile interface. This has been corrected now.
2021-09-09 09:21:53 +12:00
Terry MacDonald
28a8f131b3 Workaround Windows changing display source order
Windows changes the display source order which mucks up the equality matching in DM. This change attempts to mitigate that fact.

There were also errors in the HDR settings captured, which indicate that the HDR changes weren't finishing before they were being recorded. This change attempts to take care of that too.

All tests so far seem to work, so lets see how things go!
2021-09-08 20:04:37 +12:00
Terry MacDonald
1966412162 Mostly working Equality part 3
Equality works until we return from a surround profile to a non-surround profile. At this point the displays are reordered by windows, and the windows display configus don't match any more. Addtionally, it looks as though we need a 0.5 second pause between applying the configuration, and reading the new config. There appears to be a difference between HDR before we changed to the surround proile and after we've returned, and that's not a good thing!
2021-09-08 11:00:00 +12:00
Terry MacDonald
fef3dbf1e0 Part 2 of the move to a single ProfileItem
Mostly works now! Only bit still needing work is the Avtive profile detection to detect the non-surround profile when we return from surround. I think it's to do with the windows display number changing :(. I need to check that.
2021-09-07 22:08:54 +12:00
Terry MacDonald
f8e9eecf81 Removed derived ProfileItem classes
The derived ProfilteItem classes were an unnecessary distraction and wasted time I could be spending on other things. This set of changes are the first part of removing those derived classes and moving to a single ProfilItem class again, but with different configuration slots within it. Makes equality comparison SO MUCH EASIER!
2021-09-07 21:26:42 +12:00
Terry MacDonald
c59f236524 Still vainly trying to get Equals to work
I am a lot closer at the moment, but there is some bit of logic matching that is escaping me. I think I'm just too tired at the moment, and I need a sleep. I bet this will seem simple in the morning.
2021-09-06 22:08:22 +12:00
Terry MacDonald
0c32b206c0 Potential fix for libraryfolders.vdf change
This (hopefully) should fix #38. Big thanks to @DragRedSim for their help. This will attempt to use the new library file liocation if it's available, and will fall back to the older config.vdf discovery mechanism if it doesn't find the new file.
2021-09-05 22:16:16 +12:00
Terry MacDonald
7c21c19056 Fixed Profile Matching
Found an underlying problem of using the OutputID for displayIdentifier matching as the outputID changes after each reboot. CHanged the DisplayIdentifier to record the type of the connection to the display, which stays the same even if the OututID changes. Also made the ProfileItem.Equals look for DisplayIdentifier ids and match them even if they are in a different order. This seems to happen some times, and I'm not sure why the NVIDIA driver does it!
2021-09-05 21:00:36 +12:00
Terry MacDonald
a07e4ad3f5 Corrected an incorrect logging message clarification
It was set to Error instead of Trace! Corrected now.

Also corrected some incorrect log message descriptions that will mean I look at the right code when I see the errors. There were all the same (as I copied a lot of the code).
2021-09-04 21:27:40 +12:00
Terry MacDonald
13cc7a96c4 Basic working NVIDIA and Windows DisplayMagician
Tested ok so far! Manages to cope with surround dual screen with another standaalone screen fine, and copes with individual screens as well as just surround screens. Tested playing a game shortcut, and it sworks with that too.  It also changes the display background as per the profile settings as was intended! So pretty much everything seems to work fine so far.

I will do a bit more testing, then will probably provide a test version to a couple of testers to try and find errors. I need to try and make this a bit more robust.
2021-09-04 21:16:49 +12:00
Terry MacDonald
708acd3c12 Fixed CompareTo and some Profile Repository loading order 2021-09-04 20:58:08 +12:00
Terry MacDonald
a112326e50 Implemented new derived class equality logic
Used new derived class equality class from https://codinghelmet.com/articles/equals-override which helped me understand the logic for deriving equality between base classes and derived classes. It has now exposed another error in the way FORCED_VIDEO_MODE is being applied and that is now something else I need to fix!
2021-09-04 16:32:42 +12:00
Terry MacDonald
964d982bd1 Fixed Video mode detection without forced parameter
Accidentally broke the auto detection when no forced video command line option given. Now works again.
2021-09-03 22:15:23 +12:00