Commit Graph

95 Commits

Author SHA1 Message Date
Terry MacDonald
9e91e0fd45 Now can import images as icons
As an extension to what was requested, you can now import any images and use those as the shortcut image (including the desktop image!). This amazing new functionality now makes it possible to make your shortcuts look exactly as you want them!
2021-11-05 16:28:58 +13:00
Terry MacDonald
0926aa723d Moved game bitmap parsing to GameLibrary
'Tis a better place for it to live.
2021-11-03 08:34:16 +13:00
Terry MacDonald
634b17c7f2 Partially implemented user selecting bitmap icon
Based on an idea from @erbkaiser, I'm implementing a process to allow the user to select the best image in the list of images extracted from icons, and allowing the user to choose the best one if they want. The idea is that DisplayMagician will try to pick the best image to use, but in the case that it gets's it wrong, theuser will be able to override it so that the nicest images/icons are used for their games!
2021-11-02 22:23:49 +13:00
Terry MacDonald
275adbeda6 Found longstanding dual game load issue
Should stop the double loading of games once and for all.
2021-10-31 20:47:46 +13:00
Terry MacDonald
613283da41 Temporarily force DisplayMagician to wait for games to load
This is a test to see if this fixes the missing Steam games in large Steam libraries issue (#49).
2021-10-31 10:00:57 +13:00
Terry MacDonald
5f266aacbb Improved loading speed by skipping game loading in certain instances
No longer attempt to load games in profile reload, and in create profile. Need it for all other modes, but at least those two load quicker now!
2021-10-30 20:05:44 +13:00
Terry MacDonald
913cf34d72 Made splashscreen settable
Partially fixes #49
2021-10-30 19:21:25 +13:00
Terry MacDonald
0d6536e7fe Splash screen to inform user when program starting
This is designed to inform the user that DisplayMagician is starting. Partially fixes #49.
2021-10-30 19:01:03 +13:00
Terry MacDonald
6d25635846 Added ability to generate Support ZIP from settings screen 2021-10-26 20:56:28 +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
ab7eb4687c Update warning message to include 2.0 to 2.1 upgrade
Unfortunately with the number of DisplayProfile changes I've had to make I am going to have to force people to recreate their DisplayProfiles again :(. This is neeed so that I can support cloned displays and HDR and basic colour settings. This has all taken a lot of working out, but I can't convert the old DisplayProfiles format to the new one as there is just too much missing data in there.
2021-10-23 15:39:12 +13:00
Terry MacDonald
a9527ffd6e Better logging for Loading Games Action exceptions 2021-10-11 21:13:58 +13:00
Terry MacDonald
6445140924 Forced TRACE level logging while dev happening
I've set this as it was too onerous continuously teaching people how to turn on TRACE logging. While there are a large number of big changes taking place with DisplayMagician, this will minimise the backwards and forwards it takes to get the right level of log information for me to troubleshoot each issue.
2021-10-09 19:45:53 +13:00
Terry MacDonald
8bd3d07fa4 Fixed some UI status messages 2021-10-02 16:22:36 +13:00
Terry MacDonald
02ce747d3c Switch back to user spec debugging
During development I'd purposely set the debug log to TRACE. This chages it back to a user setting.
2021-10-02 09:53:34 +13:00
Terry MacDonald
8216d307e7 Force TLS1.3 network connections for security reasons 2021-10-02 09:49:34 +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
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
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
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
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
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
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
Terry MacDonald
65bbd1ab66 Added --force-video-library command line option
This feature will allow users to bypass the automatic driver detection functionality so that they can at least force  the use of the built-in Windows driver if NVIDIA or AMD ever have an issue with their drivers.
2021-09-02 13:47:28 +12:00
Terry MacDonald
b374850bfe Merged develop branch to simplify development 2021-08-30 12:35:52 +12:00
Terry MacDonald
1a6282df1a Initial Windows desktop wallpaper functionality
This is the initial windows desktop functionality, and may work. I've added it to the earlier version of DisplayMagician, but I'm not sure I'll release it. This will instead probably be part of v2.0.0.
2021-08-30 12:26:43 +12:00
Terry MacDonald
a0646c2b8a Initial picturebox configuration
Can now select a new wallpaper and have it appear in the wallpaper picturebox. Also can reopen the profilesettings and the wallpaper will be loaded back into the picturebox. Just need to sort out the clear button and the use current buttons.
2021-08-29 22:54:11 +12:00
Terry MacDonald
cf0a15acdd Add initial wallpaper changing code 2021-08-27 21:15:53 +12:00
Terry MacDonald
293ca14730 Moved RunProfile to ProfileRepository
It makes WAY more sense here.
2021-08-27 17:53:32 +12:00
Terry MacDonald
e2ca69e404 First working new NVIDIA library build!
Amazing! This is the first working version of DisplayMagician using the new NVIDIA and Windows CCD library. It works properly, and now I can start to tidy up some of the additioanl functionality I need to sort out before a release. I also then need to work on the AMD library as well!
2021-08-24 22:46:32 +12:00
Terry MacDonald
998293621e [WIP] Almost ready to test new libs 2021-08-22 16:49:38 +12:00
Terry MacDonald
01ffda8428 [WIP] Graphic library integration part 1 2021-08-22 12:54:39 +12:00
Terry MacDonald
0123e061e0 [WIP] initial library integration into DM
Have almost integrated the new CCD, AMD and NVIDIA
libraries into DIsplayMagician. The CCD library is working
fine. The AMD library is partially completed, but is awaiting
some help from AMD, as it appears one of their driver functions
is broken (or at least incorrectly documented). The NVIDIA
library is currently still under development, but I've still copied
it across so that I could work on the additional profile objects
that need to be prepared in order for this to work.

As I am waiting on a response from AMD, the plan is now that
I will swap over to an NVIDIA based video card in my test machines
and I will start work on the NVIDIA library. The NVIDIA library seems
straight forward compared to AMD, so that hopefully won't take too
long to do. Once that library is compete, I'll test it within NVIDIAInfo
application until its working, and then I'll port it back over to
DisplayMagician. That will then let me complete the last bits of the
integration so that I can complete the last of the NVIDIA tests.
Hopefully by the time all this happens I will have heard back from
AMD and I will be able to continue work with that section of code.
2021-07-24 16:05:38 +12:00
Terry MacDonald
c1d22970f6 [WIP] Fixing incorrect profile test
AMD Profile applying task now correctly reports
a true result when the AMDLibrary reports the
profile has been successfully applied.

Now all the scaffolding is complete, and an AMD
profile can be created, saved, loaded from a JSON file
and then an application of that AMD profile can be
tried.

Now comes the difficult part. I need to test out which
bits of the AMD ADL SDK I need to grab/store/load in
order to actually make the screen layouts change. And
then once that works with separate screens, I need to
add code to undertstand and recognise AMD Eyefinity
screen setups, and to make them able to be used.

This is going to take some time :/.
2021-06-27 15:17:07 +12:00
Terry MacDonald
2285da1844 [WIP] Initial apply AMD profile scaffolding
Have now got it so that an AMD DisplayProfile
now results in the profile attempting to be applied.
2021-06-27 15:10:59 +12:00
Terry MacDonald
6a3068fb32 [WIP] Connecting AMDProfile to screens
Trying to figure out a video card agnostic way
of generating the display icons fo both standard
and spanned displays. Still trying to figure out
exactly which AMD ADL calls I need to make to
get all the information I need. It is NOT very well
documented. It's actually really annoying! AMD
need to do better.
2021-06-25 21:52:02 +12:00
Terry MacDonald
bfb164fd41 Added GOG Game Library Support
Added initial GOG library support.

Also refactored the GameLibraries so that
they also start the game themselves, as
each library is different in how it starts the
game. This is the simplest way to handle that.
2021-06-05 22:41:29 +12:00
Terry MacDonald
84871ba14c Added Epic Game Library support
Added Epic game library support based
on the awesome work by Josef Nemec in
his software Playnite. I just transposed his
hard work into DisplayMagician and made
it all work! Thanks to Josef!

Also fixed up some little bugs in the way the
derived Game classes work with the base class
for some of the propoerties. Now fixed.
2021-06-05 16:58:00 +12:00
Terry MacDonald
9ec7b58f89 Fixed Game Shortcut Hotkeys
Fixed the Game Shortcut hotkeys so that
they work properly. Some late code changes
yesterday broke them :(. Sorry for the
inconvenience!

Also stopped the annoying 'bing' everytime
the notification toasts were created by
DisplayMagician when it did things. They are
now silent except for the ones that actually
require your attention, which should stop it
all being quite so jarring.
2021-05-23 10:17:45 +12:00
Terry MacDonald
8d5528a35d Made AutoUpdater more robust
AutoUpdater now works more reliably
as it now propoerly maps the JSON to
the objects that AutoUpdater expects
when retrieving the JSON from the
download server.
2021-05-21 10:55:23 +12:00
Terry MacDonald
58c41cf5f7 Added Hotkey Already Registered checks
Added to alert the user and record when a
hotkey is unable to be registered due to it
already being used.
2021-05-21 09:37:45 +12:00
Terry MacDonald
77fbec545b Added debug and trace options
Can now add a '--debug' or a
'--trace' option to the DisplayMagician
to force it to generate a TRACE log for that
session only. Once you close the application
it will go back to the normal logging level
set within the Settings Window.
2021-05-20 17:41:38 +12:00