frontend-tools: Rewrite output timer
Description
This completely rewrites the code for the output timer. This also does a minor redesign of the dialog.
Before:
After:
Motivation and Context
The output timer was one of the first things I wrote for OBS and a lot of the code was gross.
How Has This Been Tested?
Used output timers and made sure they worked as expected.
Types of changes
- Code cleanup (non-breaking change which makes code smaller or more readable)
Checklist:
- [x] My code has been run through clang-format.
- [x] I have read the contributing document.
- [x] My code is not on the master branch.
- [x] The code has been tested.
- [x] All commit messages are properly formatted and commits squashed where appropriate.
- [x] I have included updates to all appropriate documentation.
Just gonna copy my comment from Discord for when it's review time.
As someone who's not seen or used this dialogue ever:
Looking at the before and after... in the after it isn't entirely clear (or visible at all) what those timers do if you have never seen the Before dialogue.
If I only saw the After dialogue, I can see that I can set a timer, but… a timer for what? This only becomes clear when seeing the Before dialogue too, i.e. it stops the oitput after a given time.