Commit Graph

732 Commits

Author SHA1 Message Date
Terry MacDonald
6af0603d8f Fixed OriginLibrary issue
OriginLibrary wasn't added to the validity
checking, so no Origin games would work.
Also added a LOAD more trace logging with the
Origin library so I can see from the logs what's
happening. Also updated the version to 1.0.5.1.
And finally, removed unneeded validityrefresh
from the base ShortcutItem constructor as it
is refreshed later anyway. Should speed up
object creation a little.
2021-04-30 17:28:01 +12:00
terrymacdonald
a2eb285d19
Merge pull request #14 from ngoetje/bugfix/work-around-uplay-unhandled-exception
Bugfix/work around uplay unhandled exception
2021-04-30 09:58:20 +12:00
Nils Goetje
2bffdbc098 Prevent exception when scanning origin lib 2021-04-29 16:48:24 +02:00
Nils Goetje
0b8117d39b checks matches of regex search before accessing it 2021-04-29 15:21:24 +02:00
Terry MacDonald
0b9f6e7e6f [Wip] Partially working hotkey
Managed to get the hotkeys for
the DisplayProfiles and the Game
Shortccuts to work ok. Still needs
polish for the HotKeyForm, and I
need a way to set the MainWindow,
DisplayProfileWindow and
ShortcutWindow Hotkeys
2021-04-29 22:45:13 +12:00
Terry MacDonald
e9f401960e [WIP] Still moving to NHotkey 2021-04-28 22:14:54 +12:00
Terry MacDonald
209e3f0338 [WIP] Partway through swap to NHotkey
Also trying to port Willy-Kimura's HKL
HotkeySelector code over as well cause
it is ace!
2021-04-27 22:19:44 +12:00
Terry MacDonald
92c0678e79 WIP] commit where I'm up to
This is a stopgap place to commit
while I test out another hotkey lib.
2021-04-27 21:57:27 +12:00
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