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.
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.
Changed the process stopping logic
to make it more relable, and also make it
much more likely to actually stop the
programs even if they do things like
launch other programs and stop themselves
Added more helpful instructions
Added a link to the Example Start Programs
settings on the wiki by clicking on a button
in the ShortcutForm itself.
Added helpful MessageBox telling people
they need to select a Game Shortcut in order
to run, edit, delete or save it. Also included
text about the mouse right-click menu.
Clarified text on the StartProgramControl.
Any start program that is started then
tries to doubly make sure that the program
is also closed. Now checks for something to
close in the following order:
- tries to close the process it opened
- if that was closed it tries to find any child
processes started by the original process in
case it was a 'launcher' process
- If there are no children with the same parent
process then it just tries to close all processes
with the same name as the one it opened.
That final close also is a forced kill, as I've found
programs like SimHub resist closing....
This fixes an edge case where a start program
is already running and DM would skip starting
any additional start programs. Fixes#18.
Also fixed an issue with it trying to stop start
programs processes that were already stopped
by the user or by some other process. It now
logs the fact this wasn't done as it was already
closed.
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.
The startPrograms UI would error when someone tried
to remove an unsaved startprogram from the FLP.
This has now been resolved.
Also managed to update a warning in the logs when
a program starts and the original exe is a loader that
loads another exe then closes itself. I've provided that
warning in the log file now.
DisplayMagician wasn't working when
installed due to missing files in the setup
build file list. This has been corrected and
an installation works fine now.
Also changed the Audio exceptions during
RunShortcut to Error level rather than Warn.
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.
Added a help button that opens the
DisplayMagician Wiki. I feel like there
are so many functions and features
available in DisplayMagician that I need
to write some help and guidance on how
to use it.
This changes the start program to default
to closing the start program when the main
application closes. I believe this will be the
most common way to do things.
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.
Managed to break some logic when trying to
add robustness.... effectively doing the
opposite of what I was trying to do :/. Now
*should* be fixed, but we shall see with more
testing.
This code now will cope with incorrectly
formatted icons, and will simply ignore
them and move on to the next one.
This also fixes a game ILV adaptor error
which was causing argumentnullexceptions
Changed to use a single bitmap generator
to try and simplify and standardise the way
that images are extracted from the games.
Have tried to use every method to extract
icons from icon files and from exes, but it's
still not quite right :(
Currently struggling with the fact that
the smaller game icons don't get extracted
properly, and that they end up tucked into
the top left of the 256x256 bitmap at
32x32 size... so really tiny. Need to find a
fix for this so it always returns a 256x256,
and attempts to grow the 32x32 icons into
256x256 icons.
This is almost working. I'm struggling with
the icons loaded from various icon files which
are coming in really small rather than the large
size they should be. The .Net Icon constructor
isn't making an Icon the size I requested, so I may
need to change something else.