This is done to avoid build issues in future.
For example previously the class "Duration" class caused build issues on
the MacOS platform due to a name conflict.
The network tab allows you to open a web-socket or connect to web-socket to synchronize the active scene between two or more instances of OBS.
The functionality is mostly based on https://github.com/Palakis/obs-websocket.
An OBS instance running a server will send its currently active scene to all connected clients on scene change.
By default all scene switches will trigger a message to be sent to all clients, but you also have the option to limit sending these messages only when an automated scene change is triggered by the advanced scene switcher.
* use GetWeakSourceName() where possible
* add getCurrentScene() to scene group
* silence OBS warning log and fix typo in audio switch
* extract showing initial status of widgets to function in generic switch
* move definitions of switcher structs to separate files
* remove useless comment
* cleanup and silence warnings
* add generic switch
* removed delay on main thread startup as it served no purpose
* clean up ultility.hpp
* do not save switchStr to file as it could cause issues when scenes are renamed
* rename sceneRoundTrip to sceneSequence
* add option to switch if window is maximized to title tab
isInFocus() can utilize the platform-dependent GetCurrentWindowTitle() instead of re-implementing the same functionality.
Tested on Linux and macOS without issues