Commit Graph

225 Commits

Author SHA1 Message Date
Terry MacDonald
ddd48b577d Changed notification icon handling
Made the code more robust and able to work using the new threaded instances
2022-01-06 09:05:55 +13:00
Terry MacDonald
53df422944 Fixed UI issues and updated Shortcuts UI
Also updated EULA to 2022. And fixed the DisplayMagician Explorer update.
2021-12-27 09:58:29 +13:00
Terry MacDonald
146129a088 Updated to v2.1.4.1 2021-12-23 18:50:35 +13:00
Terry MacDonald
c87f55c4a9 Updated version to 2.1.3.0 for release 2021-12-21 09:30:49 +13:00
Terry MacDonald
648bbccaca Tweaked various UI features to support resizing
Improved the minimum form sizes for multiple forms to stop them looking bad.

Updated the DisplayMagician and DisplayMagicianShared assembly versions to v2.1.2.0 in preparation for release as the next version of DisplayMagician.
2021-12-18 21:55:39 +13:00
Terry MacDonald
97a4e5f170 Added resizable Shortcut Form 2021-12-18 14:38:00 +13:00
Terry MacDonald
da8d5de7c3 Fixed GUI display across multiple adapters
Found a bug in the NVIDIA screen generation logic. Fixed it, then replicated the fix in AMD and Windows functions.
2021-12-17 12:25:02 +13:00
Terry MacDonald
94e8ffe338 [WIP] Attempt to fix the GUI display for MST DisplayPort connections
Displays daisy-chained via DIsplayPort MST devices aren't shown in the GUI properly. First attempt at a fix.
2021-12-17 11:53:23 +13:00
Terry MacDonald
de1d93ee4d Updated WinLibrary to v1.3.8
This version adds USB device support, and SuperDisplay detection (it is a way to use an Android Tablet as another windows display).

Also fixes cloned displays so that it uses the path priority rather than relying on HDR settings for mapping the cloned display ID to the real Display ID. This corrects some errors which occurred when some earlier screens didn't support HDR or the advanced Windows colour settings. It will now work in those situations.
2021-12-16 12:25:11 +13:00
Terry MacDonald
22ae2bc178 Fixed multiple adapters and unsupported HDR parsing
Now supports multiple display adapters. Has been tested by @matthex with his 7 screens and 2 display adapters and works. Should fix #60 finally.

Also changed the way that cloned display configurations are patched. Was using the HDR structure previously as that contains a direct mapping, but of course it completely breaks if HDR information isn't supported by the monitor, or provided over the connection technology used. So the changes I made now use the display path priority order to figure out which cloned monitor belongs to which item.

Firstly, the UID's are pulled from the physical displays so that we have a list of them. We then go through the paths, and for each target we check if there is a matching physical UID. If there is NOT a matching physical ID, then it is a cloned display target. We store that for later.

Next, we go through the paths again, and we figure out which physical displays are NOT in use as display targets. When we have that list, we then map the left over physical displays to the cloned displays in path priority order.

Finally, we then go through each cloned display target in the paths array, and set it to the configuration that windows needs so it will make a cloned display. We also go through the modes array, and set the physical display id to the corresponding mapped physical UID we calculated earlier.

All of this results in Windows accepting the cloned display configuration as expected.
2021-12-12 09:23:24 +13:00
Terry MacDonald
9416ac3346 Updated WinLibrary to latest version
This corrects some errors with the WinLibrary and how it handles cloned displays.

Also removed the 0.5 second delay between the end of the NVIDIALibrary call, and the start of the WinLibrary one, because they do not appear to be needed based on the NVIDIALibrary testing we've been doing with NVIDIAInfo.

Also corrected some log entries and comments.
2021-12-11 00:15:49 +13:00
Terry MacDonald
a7ef20677d Fixed some log entry names 2021-12-09 08:40:51 +13:00
Terry MacDonald
d546bf85fb Added a WinLibrary update config to refresh config
I *think* that NVIDIA Surround and AMD Eyefinity changes are so great that WinLibrary gets confused and gives up. NVIDIA Surround and AMD Eyefinity affects the windows display layout so much. This change adds a windows config refresh after the NVIDIA or AMD config is applied to make sure that the winLibrary calls are using the latest updated active config that results from the NVIDIALibrary and AMDLibrary config changes.
2021-12-08 21:43:22 +13:00
terrymacdonald
041bdfe74f
Merge pull request #62 from terrymacdonald/dependabot/nuget/develop/NLog-4.7.13
Bump NLog from 4.7.12 to 4.7.13
2021-12-07 18:33:44 +13:00
Terry MacDonald
b34cdcce6c Updated to latest WinLibrary version
This version of WinLibrary improves handling of multiple display adapters to cope with multiple displays across multiple display adapters. Hopefully fixes #60 (but no guarantees yet)
2021-12-07 18:33:16 +13:00
dependabot[bot]
b826cc05fc
Bump NLog from 4.7.12 to 4.7.13
Bumps [NLog](https://github.com/NLog/NLog) from 4.7.12 to 4.7.13.
- [Release notes](https://github.com/NLog/NLog/releases)
- [Changelog](https://github.com/NLog/NLog/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/NLog/NLog/compare/v4.7.12...v4.7.13)

---
updated-dependencies:
- dependency-name: NLog
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 08:24:45 +00:00
Terry MacDonald
20a7c85279 Updated toast notification to work from zip install
Used some amazing code from David Air at https://gist.github.com/davidair/c4ea207bf6eece4ef08b97ab29a3036f to enable toasts without install from a setup program. This allows me to debug toasts within VS2019.
2021-12-03 10:38:29 +13:00
Terry MacDonald
03d15fb8e9 Updated ValveKeyValue to latest version
Have had problems in the past uprading to the latest version but this one worked fine!
2021-11-27 14:07:00 +13:00
Terry MacDonald
24d5014441 Updated to v2.1.1.1 2021-11-23 21:34:15 +13:00
Terry MacDonald
63fdf646c7 Assembly version updates to align version numbers 2021-11-19 22:34:48 +13:00
Terry MacDonald
b8c71191bb Update all builds to x64
No 32bit builds as no OS we can support is 32bit any more.
2021-11-19 22:26:03 +13:00
Terry MacDonald
77ab0f20f1 Updated NVIDIA Library and WinLibrary based on testing
Did a HUGE amount of testing with the amazing help of @domenic as part of #41, and we finally got the right configuration sorted out! This update is a reflection of the changes required.
2021-11-19 22:20:43 +13:00
Terry MacDonald
24efd1a8d8 Changes required by recent NVIDIALibrary changes 2021-11-13 21:32:13 +13:00
Terry MacDonald
21d173b6ca Fixed mistake 2021-11-13 21:30:21 +13:00
Terry MacDonald
6f1721342f Updated NVIDIALibrary with the latest version
This version hopefully fixes the issues when returning from surround profiles to non-surround profiles.
2021-11-13 21:28:25 +13:00
Terry MacDonald
d4494aa699 Updated NVIDIA, AMD and Windows Video libraries
Updated with enhancements to make application of colour more robust, and to avoid a Windows CCD display validation issue.
2021-11-13 15:06:54 +13:00
Terry MacDonald
8cf85c5227 Added empty DisplayConfig and CustomDisplays to Display Profiles
Added empty DisplayConfig dictionary and CustomDisplays list to the Display Profiles JSON format, as I'm going to need it in a while when I add the integer scaling.
2021-11-07 20:49:21 +13:00
Terry MacDonald
f72fc6feea Attempted to reduce the number of video card library calls
Found some calls that were bypassing the video library state buffering I'd put in place earlier. This should generally make DisplayMagician faster and minimise the number of log entries written to DisplayMagician.log.
2021-10-31 12:50:57 +13:00
Terry MacDonald
1ef9e5b818 Made some changes to allow more statuses as ok
Added all of the OK ADL statuses to be considered as successful. Should minimise the chances of things going wrong if there is a little issue like the display driver being busy, or if the display is fine but needs to wait for the next modeset.
2021-10-30 20:43:47 +13:00
Terry MacDonald
b44bc3f269 Updated incorrect error message 2021-10-29 22:36:12 +13:00
Terry MacDonald
cc125b6601 Add an extra layer of library protection
Stopping unneeded AMD calls in NVIDIA mode, and NVIDIA calls in AMD mode.
2021-10-29 22:10:29 +13:00
Terry MacDonald
9c2c8bd257 Changing spacing 2021-10-28 21:15:06 +13:00
Terry MacDonald
3ea0ff479b Updated screen drawing so surround displays work with additional screens
The display logic now works when both NVIDIA surround and normal windows are both being used at the same time.
2021-10-28 20:57:16 +13:00
Terry MacDonald
0b759ce378 Updated WinLibrary to latest version 2021-10-28 09:26:44 +13:00
Terry MacDonald
643daeae49 Loosened GDI matching a bit more 2021-10-26 21:26:23 +13:00
Terry MacDonald
5743cd377b Fixed bug in ApplyingProfile caused by new profile buffering
As I'd changed the profile config to buffer it within the libraries themselves, ApplyProfile wasn't telling the libraries to update their config. Therefore they thought they were still on the original display config, and that meant that ApplyProfile didn't revert the profile after the application had closed. This is now fixed.
2021-10-26 21:19:48 +13:00
Terry MacDonald
0434113e4b [WIP] Partial support package creation button
Adding button to create support package ZIP file to make troubleshooting easier.
2021-10-25 21:36:33 +13:00
Terry MacDonald
d54328ceef Loosened GDI matching for updated GDI usage
As we now only copy across some of the GDI display settings, we aren't able to have really tight matching on the GDI part of the Windows display profiles. For this reason, I loosened off the Equals test so that it would match on the functions that we change within DisplayMagician. The profile matching now works correctly.
2021-10-25 19:18:46 +13:00
Terry MacDonald
c42b53843b Updated WinLibrary to use patched current Display Settings
This is needed to stop the GDI settings from overwriting the display layout. This appears to fix all display issues!
2021-10-25 16:01:33 +13:00
Terry MacDonald
1faa8ecc5b Updated AMDLibrary and WinLibrary to latest versions
AMDLibrary had an error that caused issues due to a missing call to get a valid default config. WinLibrary had an issue where it wasn't applying the GDIDisplaySettings correctly after a reboot. This has now been fixed.
2021-10-25 15:19:02 +13:00
Terry MacDonald
6e35825b10 Update ProfileRepository 2021-10-24 21:39:49 +13:00
Terry MacDonald
51b03c7c1c Fixed issue updating the current display profile
The profile updating logic wouldn't work with the new way of buffering the display config, which means that when swapping back to DisplayMagician after updating the display layout wouldn't automatically update the display profile. Now, it forces this.
2021-10-24 21:34:43 +13:00
Terry MacDonald
419969ad5f Changed profile detection
Changed Profiles to use new methods for profiles detection provided by the new video card library updates for NVIDIALibrary, AMDLibrary and WinLibrary. This should make DisplayMagician faster as there is less repetition.
2021-10-24 21:29:53 +13:00
Terry MacDonald
e321893876 Updated WinLibrary, AMDLibrary and NVIDIALibrary to v1.2.1
This integrates all the library enhancements that I've been working on for the last 2 weeks into DisplayMagician. This fixes $47, #46 and possibly others.
2021-10-24 21:06:59 +13:00
Terry MacDonald
707c43375d Changed DisplayProfile file location to DisplayProfiles_2.1.json
There have been such large changes with v2.1.0 that I've had to move to a new file display profile format again :(. I'm really hopeful this will be the last time, as it seems to cope with all the different display layouts, colour settings, hdr etc.
2021-10-23 15:30:20 +13:00
Terry MacDonald
76fba0d2ef Updated WinLibrary to support cloned displays 2021-10-23 15:24:32 +13:00
Terry MacDonald
816e1a701f Updated WinLibrary to latest version
Now supports cloned displays. Also modified a log entry from error to trace.
2021-10-20 18:06:02 +13:00
Terry MacDonald
9b4090fc34 Partially update the files in setup
Still missing some I think? Also now have a problem with the application hanging on startup.
2021-10-17 21:54:58 +13:00
Terry MacDonald
2ee4c90c3c Small improvement in video library access speed 2021-10-17 20:55:59 +13:00
Terry MacDonald
81f2d08fe0 Fixed profile matching for cloned displays
Weird error where having a clone causes an extra 'zeroed out' entry in the Windows Display Modes sequence. This change modifies the Windows mode info checks to allow for this situation.
2021-10-17 10:44:03 +13:00