Commit Graph

199 Commits

Author SHA1 Message Date
Terry MacDonald
415ff0eed0 Rename HeliosPlus to DisplayMagician
Decided to rename the application to DisplayMagician
to make it way more discoverable. Turns out there are
a LOT of applications named HeliosPlus!
2020-12-02 21:11:23 +13:00
Terry MacDonald
e80fe0f1bb Added new audio tab to ShortcutForm
Next step is to add some controls that get
populated by the library I'm using:
AudioSwitcher.AudioApi.CoreAudio
2020-12-01 23:00:16 +13:00
Terry MacDonald
beea0b825c Missed another LogReporter reference 2020-12-01 22:42:09 +13:00
Terry MacDonald
9a2a8453b2 Fix for late dir rename 2020-12-01 22:41:02 +13:00
Terry MacDonald
1903956b85 Fixed LogReporter
Fixed LogReporter error introduced by my earlier
modifications of HeliosPlus due to ProfileItem
object changes. This messed up the LogReporter
writing logic which in turn made log files balloon
to multiple GB in size! Also added capture of the
various JSON files that are used to store settings
so that we can help fix JSON errors.
2020-12-01 22:34:25 +13:00
Terry MacDonald
eb38e88dc5 [WIP] Renaming HeliosPlus.Reporter 2020-11-30 22:39:04 +13:00
Terry MacDonald
5cc2ce65fa Added Shell Extension to setup package
Managed to get the Shell Extension incorporated
into the HeliosPlus.Setup project so that it correctly
installs the shell extension (and uninstalls it too!).

Also updated the README.md so that it shows the
new Shell Extensino in action so people knows what
it does.
2020-11-30 22:25:58 +13:00
Terry MacDonald
fe852a6248 [WIP] Attempting to register Shell Extension
Trying to register the shell extension using the
built in COM registration function.
2020-11-29 15:31:06 +13:00
Terry MacDonald
b9d7a12ff1 [WIP] included InstallDir registry key
Added the InstallDir Regsitry key so that
the application works ok.
2020-11-29 15:23:37 +13:00
Terry MacDonald
4fabb275ca Upgraded ValveKeyValue slightly 2020-11-28 23:16:58 +13:00
Terry MacDonald
959a1a6dda Added Tooltips to shortcuts and profiles
Added a tooltip to the shortcuts list, and
the profiles list, so that the user just needs
to hover over the items and the full name
of the item will be displayed. Needed to do
this as some of the shortcut names get really
long! This fixes that conundrum.
2020-11-28 23:02:24 +13:00
Terry MacDonald
5e544628e9 Remove unused imagelist 2020-11-28 22:01:23 +13:00
Terry MacDonald
19a8ccfe5a Fixed problem with icons after rename
There was an issue where changing a profile broke
the link between the shortcuts and the shortcut icon
file. This meant that the runshortcut would be pointing
to an icon file that didn't exist. This has been fixed.
2020-11-28 17:55:34 +13:00
Terry MacDonald
c05a2a0f0b Added IsActive check to ChangeProfile
ChangeProfile was always trying to apply the
profile even if it was already on it. So changed
that so it only does it when it's needed.
2020-11-22 21:45:04 +13:00
Terry MacDonald
34eab029d1 ChangeProfile contextmenu runs HeliosPlus
The CHangeProfile contextmenu didn't create
a process properly. Now it does :).
2020-11-22 21:40:10 +13:00
Terry MacDonald
c52950c9b5 Fixed ChangeProfile command line
ChangeProfile command wasn't working, but
now that you can use the Desktop Background
context menu to change profiles I needed to
fix this so that the menu runs this command.
2020-11-22 21:27:29 +13:00
Terry MacDonald
63df55fa79 Merge branch 'feature-shell-extension' of https://github.com/terrymacdonald/HeliosPlus into feature-shell-extension 2020-11-22 20:57:09 +13:00
Terry MacDonald
25cf0265fd First working ShellContextMenu extension
Can now apply saved display profiles by
right-clicking on the Desktop Background and
selecting the display profile that you want to
use. It will run <HeliosPlus> ChangeProfile <uuid>
where <HeliosPlus> is the HeliosPlus binary and
<uuid> is the UUID of the relevant display profile.
2020-11-22 20:53:30 +13:00
Terry MacDonald
38fa982c91 First working ShellXontextMenu extension
Can now apply saved display profiles by
right-clicking on the Desktop Background and
selecting the display profile that you want to
use. It will run <HeliosPlus> ChangeProfile <uuid>
where <HeliosPlus> is the HeliosPlus binary and
<uuid> is the UUID of the relevant display profile.
2020-11-22 20:49:37 +13:00
Terry MacDonald
7ab732b11c [WIP] Fixing HP ShellExtension 2020-11-22 09:52:32 +13:00
Terry MacDonald
dce0ed8252 Fixed application process monitoring
Stopped the application threat monitoring halting
the UI completely, which fixed some UI updating
issues. Now UI thread continues to poll waiting for
appl/game to exit, but does it in a loop rather than
blocking using WaitForExit(). Means that the
notification icon gets updated and the UI gets a
MaskedForm over it.
2020-11-22 09:26:17 +13:00
Terry MacDonald
ccefa80642 Added overlay to inform user UI is locked
This informs the user that the user UI is locked
until they close the game/application that is
started.
2020-11-21 14:48:32 +13:00
Terry MacDonald
e9a821e594 [WIP] Working notifyIcon during run
notifyIcon works if run from Shortcutlibrary,
or from clicked shortcut. Next step is to make
the main window show some sort of indication
that the UI is locked until the game exits....
2020-11-19 22:40:08 +13:00
Terry MacDonald
699d7ec209 Added a Setup project
Added a Visual Studio Installer Project setup project.
2020-11-16 21:23:05 +13:00
Terry MacDonald
73284c03f8 Fixed open application window menu
The Open Application Window notification icon
popup menu item wouldn't restore the window
if it was minimised before running the Open
Application Window command. Added some cool
code from https://stackoverflow.com/questions/
354445/restore-windowstate-from-minimized and
then tweaked it to work in this situation. I could have
added this a much better place in the application but
I am planning on rewriting the app in WPF
eventually so I don't really need to do so.
2020-11-15 21:28:15 +13:00
Terry MacDonald
a56e68d94e Added Uplay to RunShortcut
HeliosPlus now runs Uplay Games and
correctly waits until they have exited before
changing back. It won't wait for Uplay updates
however, as I really don't know how Uplay
marks things as being updated. So I don't
know how to look for the updates occurring!
2020-11-15 21:06:38 +13:00
Terry MacDonald
c7444e379c Fixed Uplay configuration file processing
Accidentally broke the Uplay configuration
file processing but now fixed it again.
2020-11-15 20:28:55 +13:00
Terry MacDonald
401e76c6e4 Can create Uplay shortcuts now
Added support to read Uplay games and
to load them into the interface. Also added
the ability to save the Uplay shortcuts.
Now need to test and then add the ability
to run Uplay Games!
2020-11-14 18:00:57 +13:00
Terry MacDonald
e7af4ac252 Reads Uplay game info correctly
Added the functionality to read the Uplay library
correctly, but at present nothing is done with that
information. Next step is to add it to the Shortcut
Game selector logic.
2020-11-14 17:42:53 +13:00
Terry MacDonald
b1e49aad11 [WIP] Partial development of uplay support
Have reverse engineered the uplay launcher a
little bit, and managed to extract some of the
useful file structures to be able to parse the
useful bits of teh uplay game library. Need to
properly extract the games info from it though.
2020-11-10 22:26:02 +13:00
Terry MacDonald
dd85aeb0f1 Fixed notification icon menu
Also fixed console messages as well. The programme
is just about working properly! I'm going to start
creating branches now as it is nearly at ready for a
v1.0!
2020-11-04 18:47:41 +13:00
Terry MacDonald
d952059e08 Fixes resizing of MainForm
Some elements weren't resizing properly.
2020-10-26 17:13:23 +13:00
Terry MacDonald
5e9135ed30 Completed adding "minimise on start" ability
Am able to minimise on start, or run normally
using a simple checkbox on the main form.
Maintains the setting over different runs using
a settings json file stored in the AppData directory.
2020-10-26 17:08:55 +13:00
Terry MacDonald
23930a2a15 Added initial ability to minimise to notification area
Used some awesome help from Hans Passant to build
logic to allow minimise to notification area as well as
be able to change profiles etc from the notification area.

https://stackoverflow.com/questions/1730731/how-to-start-winform-app-minimized-to-tray
2020-10-26 14:30:00 +13:00
Terry MacDonald
ed0ccede4c Added initial notify icon shortcut
Added initial notify icon shortcut menu. Have yet
to hook it up to programme start so that it gets
populated.

Also tried to do some tiy up of the Main procedure
of the Program.cs.
2020-10-26 12:39:14 +13:00
Terry MacDonald
eaf14afa0c Changing icons for projects 2020-10-23 21:39:09 +13:00
Terry MacDonald
dd223c851d Complete changing icons 2020-10-23 18:32:21 +13:00
Terry MacDonald
de445bc601 Change to new icon
Changed to new icon. Removed icons from the
various forms.
2020-10-23 18:11:34 +13:00
Terry MacDonald
7355b419e8 Added ChangeProfile startup action
Added the ChangeProfile startup action so that
the Notification Icon in the Notification Tray will
be able to change the display profile easily.
2020-10-22 22:05:15 +13:00
Terry MacDonald
964853ff34 Changed the HeliosPlus Icon
Still not really happy with this one, but it's better
than the last one at least...
2020-10-22 21:46:36 +13:00
Terry MacDonald
ca1b760d9e Fixed Profile reverting after game execution
The ApplyProfile had some logic that would stop
reverting the profile after the game/exe was exited.
This should now be fixed.

Also attempted a fix to centralise the timer circle
in the middle window while applying a profile.
2020-10-22 20:08:26 +13:00
Terry MacDonald
a5d581fec8 Fixed shortcut editing and icon updates
The shortcut editing window was broken and was
not copying the information across properly to the
new shortcuts when the shortcut was edited. I have
now moved to actually replacing the shortcut when
the form updates it. So basically the ShortcutForm
loads the shortcut info from the ShortcutItem, then
when you save the form, it returns a new ShortcutItem.
The shortcut library then removes the old shortcut
(which removes the icons, and updates the file), then
it saves the new shortcut we just created (which saves
the icons and updates the save file). This was the easiest
way to make the shortcut modification process work.
2020-10-20 21:22:07 +13:00
Terry MacDonald
464545fbc7 Made Icons as reliable as possible
Icon logic works well now except for a single issue.
It will not change the shortcut image if the profile
or the game has been changed, and it needs to.
2020-10-19 22:58:23 +13:00
Terry MacDonald
e34d59c1f7 Cleaned up Icon creation (mostly)
Managed to fix large icon creation thanks to
work from Maurizio. Fied an issue with file
selection for Icon generation. Also found a
new issue with ShortcutList that needs
fixing shortly.

https://tabbles.net/how-to-have-large-file-icons-with-shgetfileinfo-in-c/
2020-10-19 21:50:42 +13:00
Terry MacDonald
683bf3d936 Fixed Bitmap processing for Shortcuts
The Bitmap processing wasm't working in the
listitemview. Traced it to a problem with a missing
GenerateThumbnailView call.

Also adjusted when the save to icon cache happens
so that it is part of the ShortcutItem and is called
when a new shortcut is created. This saves times.
2020-10-18 23:04:08 +13:00
Terry MacDonald
3b63953648 Revert "Revert "Refactored Common Base Games""
This reverts commit a71b866545.
2020-10-18 21:17:21 +13:00
Terry MacDonald
a71b866545 Revert "Refactored Common Base Games"
This reverts commit c2c11bd722.
2020-10-18 21:15:19 +13:00
Terry MacDonald
c2c11bd722 Refactored Common Base Games
Created a Common Base Game object in order
to support multiple additional libraries and games
in the future.
2020-10-18 21:02:00 +13:00
Terry MacDonald
ba54c9b99b [WIP] Fixing application runshortcut
Dies in ToBitmapOverlay because originalBitmap
isn't set.
2020-10-13 22:32:41 +13:00
Terry MacDonald
3992157793 Correctly close programs that we start
The StartPrograms processes now all correctly are added
to a list of processes to stop only if the user requested they
are stopped.

Additionally, a 300ms delay was added after SteamGame is
launched to give it time to actually run the darn game! It was
erroring due to testing for the launch too quickly. Steam
takes a wee bit of time to start the game, and we need to
account for that.
2020-10-13 22:02:46 +13:00