Commit Graph

474 Commits

Author SHA1 Message Date
Terry MacDonald
9dc68ff506 Suppress CLS 2021-04-25 22:25:41 +12:00
Terry MacDonald
023a1a8862 [WIP] Shortcut and Profile hotkey UI
Completed the Shortcut and Display Profile
hotkey UI interface to a satisfactory level.
The hotkey settings are stored with the
profile JSON for profiles, and with the
shortcut JSON for shortcuts. This means
they load correctly and are remembered
between runs of DisplayMagician.

Next step is to actually register the Hotkeys
so they work, and then allow them to be
replaced or removed when they are changed.
2021-04-25 21:13:25 +12:00
Terry MacDonald
a5f74576ba Suppress CLS error 2021-04-25 17:06:02 +12:00
Terry MacDonald
e604b1a871 [WIP] Hotkey passing to form working
At this point, we now have a hotkey form
that can generate hotkeys, and we have a way
of passing it some text to make it obvious which
hotkey we are setting. Additonally we can get
the set hotkey back.

Next steps are to store the hotkeys with the
display profiles and the game shortcuts, and
to load them as we load the files in.
2021-04-25 16:54:17 +12:00
Terry MacDonald
0e7ee3acef [WIP] Testing passing hotkeys
Testing the best way to pass hotkeys through
to the Hotkey form in a way that I can reuse it
across the whole application.
2021-04-24 16:06:00 +12:00
Terry MacDonald
b360fc9f37 [WIP] Creating hotkey setting form
This form will show when the user wants
to set a hotkey for a display profile or for
a shortcut. This will not be used for the
setting the main window, or shortcut library
hotkey...those will be set in the settings
window.
2021-04-23 21:42:18 +12:00
Terry MacDonald
fd50594211 [WIP] Adding hotkey buttons to forms 2021-04-23 21:25:42 +12:00
Terry MacDonald
e5be7f65e0 Add HotKeyLibrary to setup
This adds the HotKeyLibrary to the
DisplayMagician setup so that the
HotKey stuff will work once I build
it in!
2021-04-23 20:51:22 +12:00
Terry MacDonald
65ccc6876a Merge branch 'main' of https://github.com/terrymacdonald/DisplayMagician into main 2021-04-23 17:53:01 +12:00
Terry MacDonald
001853b2c5 Merge branch 'release/1.0.5' into main 2021-04-23 17:52:39 +12:00
Terry MacDonald
f6255d5d3f Update the update JSON for 1.0.5 2021-04-23 17:52:04 +12:00
Terry MacDonald
4ef1100ec2 Updated version to v1.0.5.0 2021-04-23 17:47:18 +12:00
Terry MacDonald
719c7f3350 Updated minimise checkbox to also boot
Made the MainForm's minimise checkbox also
start DisplayMagician on boot.
2021-04-23 17:41:59 +12:00
Terry MacDonald
d7dad2e864 Added Wait for alt game exe option
Added new 'Wait until an alternative
game executable is closed before continuing"
option to the game library part of the
ShortcutForm. This will allow people to
only change display/audio if a different
exe is closed from the game itself.

Closes #9
2021-04-23 14:14:13 +12:00
Terry MacDonald
8356290c3f [WIP] Part way through alt game exe
Have updated the loading and storing of the
alternative game exe monitoring and created
the user interface for it.

Need to next:
- create a file selection dialog
- have the file selected result in the name
   being extracted into the text file
- actually set up the RunShortcut to use
   the alternative monitoring if set
2021-04-21 22:58:45 +12:00
Terry MacDonald
d57ad60121 Added robustness for video card errors
Added exception protection around the video
card identifier errors to at least allow
DisplayMagician to kind of keep working even
if there are errors in the NVIDIA drivers. This fix
was brought about to get around problems with
NVIDIA RTX 2080Ti cards when using NVIDIA
driver 466.11. This fix should allow users with
cards that report data incorrectly to recreate new
DisplayProfiles, and then change all their shortcuts
to use those new Display Profiles. DisplayMagician
should then start working again. Fixes #7.

NOTE: This problem is a workaround for a broken
NVIDIA driver. Once NVIDIA find out and fix it, then
you will need to recreate your Display Profile again
and change all your shortcuts to the new Display
Prrofile in order for your shortcuts to work again.
2021-04-21 22:14:30 +12:00
Terry MacDonald
c0b70cb41c Fixing audio and capture permanence 2021-04-21 21:41:36 +12:00
Terry MacDonald
d9d84cc66a Fixed DisplayProfile permanance
Fixed issue that DisplayPermanance was not
working during RunShortcut. Fixes #8

Additionally fixed some issues errors running
a shortcut.
2021-04-20 21:31:59 +12:00
Terry MacDonald
395d4fa5d9 First working version after refactor
Have fixed the mistake I made with the
Parallel.Invoke actions where I accidentally
kept adding the SteamLibrary 3 times!

This now works well, and as a bonus the
game libraries are now thread safe!
2021-04-19 22:32:58 +12:00
Terry MacDonald
4c54e72dc2 [WIP] Moving IsRunning to library
Moving the IsRunning code for the game
libraries to the library itself, rather than having
it within the ShortcutRepository.RunShortcut
function. This should make it easier to modify
each game library detection code to understand
when it is running.
2021-04-19 21:05:57 +12:00
Terry MacDonald
81edd1df2b [WIP] 1st working refactor
The program compiles and pulls
origin game data into the application.
The steam refactor didnt work as there
are 3x entries for each game being loaded
and I need to see why!

Need to also test that the new Origin
shortcuts are being loaded and saved correctly
and that the RunShortcut works now it's had
a massive refactor.
2021-04-19 20:50:29 +12:00
Terry MacDonald
4c46c6315d [WIP] Refactor Gamelibraries singleton pattern
Moved from basic static class to proper thread
safe singleton pattern for the GameLibrary to
simplify the code in ShortcutRepository.

Still only halfway through that ShortcutRepository
code refactor :(
2021-04-18 21:44:52 +12:00
Terry MacDonald
1e4ed0c546 [WIP] initial game library URI refactor 2021-04-18 15:42:00 +12:00
Terry MacDonald
44b620851a [WIP] Origin Games are detected
The Task finds the origin games and
returns them. Just need to add the logic
to actually use the returned data to
populate the game library, as well as
use the game library in the shortcuts
as well as actually run the new library too!
2021-04-16 22:40:58 +12:00
Terry MacDonald
21288b4224 Fixed funding yml 2021-04-11 19:57:50 +12:00
terrymacdonald
6d127c4961
Update FUNDING.yml
Fixed Buy Me A Coffee
2021-04-11 19:55:23 +12:00
Terry MacDonald
0ec70e42c0 Updated develop changes to match
Updated the develop branch changes from
v1.0.4 to the new string based GameIDs that
we've moved to in order to support the
Origin game ids.
2021-04-10 23:13:05 +12:00
Terry MacDonald
f7d3a04f28 Updating branch with v1.0.4 release code 2021-04-10 23:04:16 +12:00
Terry MacDonald
15bcb0801b Remove uneeded class
No longer require the class
ProcessCommandLines as it's not needed
any longer.
2021-04-10 22:59:17 +12:00
Terry MacDonald
867d218c3e Merge branch 'release/1.0.4' into main 2021-04-10 22:23:37 +12:00
Terry MacDonald
0c4023fa64 Update to v1.0.4 2021-04-10 22:21:56 +12:00
Terry MacDonald
4c58920e61 Attempt to fix shortcut library drawing
This is the first attempt at fixing the shortcut
library drawing issue. When the app is frozen
waiting for some games/apps to finish, the
ImageListView refreshes, but doesn't refresh
with any icons, so it all looks a bit pants.

This is my first attempt at fixing that.
2021-04-10 21:51:51 +12:00
Terry MacDonald
325a15bf6d Fixed game process detection
Reworked the Uplay and Steam game
detection to make them more reliable.
Found a couple of logic errors that were
causing issues with process detection.
Also moved away from accessing
process.MainModule as it was causing
exceptions. Now just using process name
as it is simple and fast.
2021-04-10 21:36:03 +12:00
Terry MacDonald
066a0e30f5 Fixed Steam Update detection (probably)
Have likely fixed the steam update detection
but I'm not able to test at the moment as nothing
needs updating!
2021-04-10 20:08:46 +12:00
Terry MacDonald
b8f1007cd1 Fixed UplayLibrary reading again
This time I know it works as I have checked
games are found even if saved in different
folders on different drives, and even when
Ubiconnect is installed in a non-default
location. It even copes when games are
uninstalled and their remnants are left in
registry.
2021-04-10 19:49:32 +12:00
Terry MacDonald
8c132a79f5 [WIP] Partially working uplay scanning
Updated Uplay library scanning to work
properly, but it requires access to
the HKEY_LOCAL_MACHINE reg key,
which only works with adrministrative
rights. I really don't want to need that,
so I'll be trying to find an alternative way
to get the information I need from the file
system.
2021-04-10 19:19:42 +12:00
Terry MacDonald
b83478a031 Fixed audio volume setting
Modified some logic so that the audio device
volume and capture device volume will still
be applied even if the current device is selected.
Previous logic incorrectly would only change the
volume if the audio device was also changed.
Volume is always evaluated even if the audio
device doesn't have to change (unless don't
change audio device or don't change capture
device are selected).
2021-04-10 16:28:31 +12:00
Terry MacDonald
96749e8ba8 Fixed Desktop link without icon
Logic for determining the shortcut icon
name was flawed, and wouldn't work. Moved
to a new icon naming scheme using shortcut
UUID to make it simpler to update. Icon is written
every time that the shortcut is saved.
2021-04-10 12:25:48 +12:00
Terry MacDonald
26d2e42723 Added some extra exception handling
Added extra exception handling for the
imagelistview in the shortcut form just
in case there is an issue at some point.
2021-04-10 12:03:51 +12:00
Terry MacDonald
07f328b890 Fixing ShortcutForm audio config
Added more robustness and error checks
to handle AudioSwitcher not being able to
detect chipsets, and to cope with situations
with no active audio or capture devices.
Should be much more robust as it also
handles exceptions better, and has better
error logging.
2021-04-10 10:51:20 +12:00
Terry MacDonald
c799121a77 Testing WINAPI device recognition
Tests to make sure the WINAP display
detection and recognition are working
as expected. They tested fine.
2021-04-09 20:21:02 +12:00
Terry MacDonald
15a80ff0ac Fixed Steam library passing
Steam library processing was missing the
default steam library. This meant that only
people with additional steam libraries were
detecting games. This has been fixed now.

Added in some more TRACE logging for
Steam and for Uplay libraries.
2021-04-09 18:52:05 +12:00
Terry MacDonald
a377f3477f Fixing library with no installed games error
Both Steam and Uplay library logic would error
when the library was installed, but didn't have
any installed games. Thanks to @joeymanson23
for the report. Fixes #4.

Adds a LOT more logging to the Steam and Uplay
libraries to allow for remote troubleshooting via
the log file, especially if the logging settings are
set to TRACE.

Also fixed the long standing issue for being able
to install two copies of DisplayMagician of the
same version. Now the installer will prevent that
from happening!
2021-04-07 23:37:05 +12:00
Terry MacDonald
3fcd90a542 Create app dirs on first boot
Also improve logging detail when
loglevel is set to trace.
2021-04-04 21:49:37 +12:00
Terry MacDonald
40dd147388 Fixed Display Driver change impacts
NVIDIA just updated their device driver, and
as part of those changes, it changed the name
that was reported by the NVIDIA driver. This
impacts our profile matching, as we previously
used the name that it returned in the fingerprint
we store about connected displays. This change
removes that name so that it will correctly match
on the old driver or the new driver.

NOTE: This requires recreating the profiles though!
2021-04-04 18:59:38 +12:00
Terry MacDonald
ac48efe19d [WIP] Correction of game search 2021-04-02 22:25:38 +13:00
Terry MacDonald
87fcc3e8d0 [WIP] Adding Origin Library 2021-03-31 21:43:34 +13:00
Terry MacDonald
81ade82f76 Merge branch 'develop' into main 2021-03-28 22:50:26 +13:00
Terry MacDonald
d410da935b Update update.json 2021-03-28 22:49:41 +13:00
Terry MacDonald
ed9e17b610 Update update json 2021-03-28 22:48:45 +13:00