frontend: Add OBSSourceView widget
Description
Creates a new widget for displaying an OBS source preview.
Motivation and Context
Creates a wrapper around the existing OBSQTDisplay which comes without batteries and some assembly required.
This widget bundles the necessary setup and callbacks for OBSQTDisplay in an easier to use widget.
How Has This Been Tested?
Replaced the preview of the Filters window with an OBSSourceView widget, as well as adding an additional one to the sidebar.
Types of changes
- New feature (non-breaking change which adds functionality)
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.
Removed the test code and debug logging, moving this PR out of Draft.
I have an unpushed local commit that uses this widget in the Filters window if we want this PR to include a functional usage of it.
This widget can be tested locally very easily by including the header and slapping a widget in any UI:
auto sourceWidget = new OBSSourceWidget(this, source);