I am so happy with this. Thank you!
I joined your Patreon also (Jim Abdullah Duggan), to show my appreciation for your work.
I really like the little touches you added, specifically the display showing the time remaining to the next play. And I noticed that you added keyboard shortcuts for the options!
I noticed one bug, which I've described below. I'm also using this as a space to record a wishlist for possible future features. Those features are not necessary, because the program will work fine without them. But I just want to have all my thoughts recorded in one place anyway.
1) There seems to be a bug introduced in this latest version. I have it set to play a sound every 5 minutes. Every 5 minutes, it sometimes plays a sound for only one second, then cuts that off, and starts another sound instead. It doesn't happen every single time, but it happens quite often. The previous version didn't have this problem as far as I could tell.
1) The maximize button is redundant. Do you think it should be hidden? That way, we only have the minimise and close button on the window titlebar.
2) I start the program, switch it to ON, set my preferred time interval (let's say 5 minutes), and set it to start when Windows starts. Now, when I reboot windows, the program does start automatically, but it is set as OFF, and my preferred time interval is forgotten (it is set back as 15 minutes). So I need to go into the settings to set everything up the way I like after every reboot.
It would be nice if these settings were saved somewhere. Preferably in a .ini file in the same directory (so that the app is kept portable). In that file, you could record:
-- on_state: 1 or 0.
This is 0 in a fresh install, but if the user turns the app ON, the on_state becomes 1. When the user exits the app, the on_state stays at 1. That means that when the user starts the app again, it already starts on the ON state. If the user turns the app to OFF, it does the reverse: the next time the app is started, it starts in the OFF state also (since on_state in the .in file is 0).
The benefit of this scheme is that is means the app is already ON and running when it starts up with Windows, without having to go into the settings again and manually turning it on.
-- option_state: 1, 2, or 3.
This is based on the user's last selected option (1=play after the hour, 2=play from now, 3=play at random).
-- time_interval_option_1: 15
-- time_interval_option_2: 15
-- time_interval_option_3: 15
For example, these will record the time interval that the user last chose for each of the options. By default they are 15 minutes.
How this would all work together: When the app is launched, it looks in the .ini file. The .ini file shows that the user last chose option 1 (play after the hour) and that his selected time interval for option 1 was 5 minutes. Since on_state = 1, the app starts in the ON state. It gets the settings from the .ini file and starts working as last chosen by the user with no further intervention.
3) I'm a teacher and I use my laptop in class. During class, I need to have the program silenced, but during office hours, I want to keep it running. During class, it would be nice if there was a quick way to keep the app running, but just mute it, instead of closing the app completely, and then restarting it again later on. My idea was that there could be a little check box when you right click the tray icon that lets you mute any sounds from the app. Currently, the systray icon says 'Show' and 'Exit'. My idea is that it could be 'Show', 'Mute' and 'Exit'.
4) I'm just putting this out there for my future wishlist. I don't know how feasible it would be, or if it would take too much effort to make it worth while though. I think it would be nice if the app could detect if the windows sound system was already in use, and if so, then skip playing for that time. So for example, if I'm watching a video, then it should not play the random sound over that.
C# code here: https://stackoverflo...rently-playing-sound
Once again I sincerely thank you for your wonderful work in programming this app. I love it!