Commit Graph

95 Commits

Author SHA1 Message Date
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
0926aa723d Moved game bitmap parsing to GameLibrary
'Tis a better place for it to live.
2021-11-03 08:34:16 +13:00
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
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
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
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
913cf34d72 Made splashscreen settable
Partially fixes #49
2021-10-30 19:21:25 +13:00
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
6d25635846 Added ability to generate Support ZIP from settings screen 2021-10-26 20:56:28 +13:00
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
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
a9527ffd6e Better logging for Loading Games Action exceptions 2021-10-11 21:13:58 +13:00
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
8bd3d07fa4 Fixed some UI status messages 2021-10-02 16:22:36 +13:00
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
8216d307e7 Force TLS1.3 network connections for security reasons 2021-10-02 09:49:34 +13:00
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
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
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
2d1e656ba1 [WIP] Partial MessageItem creation 2021-10-01 09:31:45 +13:00
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
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
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
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
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
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
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
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
708acd3c12 Fixed CompareTo and some Profile Repository loading order 2021-09-04 20:58:08 +12:00
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
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
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
b374850bfe Merged develop branch to simplify development 2021-08-30 12:35:52 +12:00
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
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
cf0a15acdd Add initial wallpaper changing code 2021-08-27 21:15:53 +12:00
293ca14730 Moved RunProfile to ProfileRepository
It makes WAY more sense here.
2021-08-27 17:53:32 +12:00
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
998293621e [WIP] Almost ready to test new libs 2021-08-22 16:49:38 +12:00
01ffda8428 [WIP] Graphic library integration part 1 2021-08-22 12:54:39 +12:00
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
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
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
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
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
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
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
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
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
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