This moves all hotkeys that were accessible in the audio/publish
settings panes to a new hotkeys settings pane
Also makes the push to talk hotkeys behave like all other (settings)
hotkeys, i.e. as long as a hotkey is configured the hotkey is active
This allows better backward compatibility with older versions. This
will keep the current scene collection set to default if the user ever
decides to downgrade OBS versions for whatever reason.
If a scene collection wasn't found at startup, it would create a
'(null)' scene due to a null pointer.
Also, moved scene collections to the scene collections folder rather
than the base folder to prevent conflicts with the older scenes.xconfig
file.
This hopefully resolves some conflicting opinions about how scene
collections should be handled, and removes it from the general settings
panel, where it felt a bit cluttered.
Actually, I would kind of like it if profiles were handled this way too.
This feels a lot cleaner than how profiles are handled in the general
settings. The profiles thing in the general settings definitely feels
clunky.
In the main menu, the scene collections menu now has the following menu
items:
- New
- Duplicate
- Rename
- Remove
- Import
- Export
Duplicate was something I personally added - I felt like it might be a
nice thing to have for the sake of convenience. Import/Export was
requested by dodgepong, and is also definitely nice to have. Due to how
easy new scene collections are to set up it didn't take very long to put
in.
We've decided not to release scene collections. It caused some backward
compatibility issues, as well as some ease-of-use concerns. We just
don't feel comfortable with it so we're just going to go with the
import/export style that will be implemented in OBS2.
ConfigFile doesn't distinguish between non-existent keys and keys with
an empty (string) value; therefore we default to treating an empty
SavePath as default save path (and warn the user when setting an empty
SavePath)
Recording is now always enabled (unless previewing)
This changes the semantics of SaveToFile from "disable all file output
when disabled" to "automatically save stream to file when enabled",
which allows the "Start Recording" button to be enabled even when
SaveToFile is disabled.
Having the "Start Recording" button enabled now depends on having a
non-empty SavePath
Now able to Switch between different Scene collections.
All Scene ".Xconfig" files now stored in the "sceneCollection" folder.
Changed "GetApplicationName()" added "Profile: SceneCollection: " to the beginning of the app name.
Added "Scene Collection" Combo Box in Settings General
Can add/rename/remove new scenes collections in settings general.
Can add/rename/remove new scene collections while streaming.
Can change scenes Collections while streaming.
If a volume control was muted, the hidden 'unmute volume' value was not
saved to the configuration, meaning that if you exit while muted then
restart, it would unmute to 100% each time, causing annoyance for some
users.
It was possible to bind an unlimited number of push to talk hotkeys via the first
push to talk hotkey edit box, and it was impossible to unbind those hotkeys
without restarting OBS
This will automatically update profiles to the new encoder selection
according to the old setting resolution, i.e. UseQSV && UseNVENC results
in QSV being selected.
This should free up some space to allow more encoder troubleshooting and
diagnostics in the settings window (relevant QSV changes coming soon ...)
Also hopefully made supported encoder settings a bit more clear by
disabling more settings if the selected encoder doesn't support them
This should allow plugins to implement their own version of a log window
without having to worry about providing lightweight-ish and non-blocking
callback functions for OBSApi.
@jp9000
Implement log window
Also made it so that the log window position/size is saved. Defaults to
600x500, centered to the main monitor if no configuration found.
@palana
Log system integration and callback behavior
No new log files will be added to prevent the current log file from
becoming the topmost entry, which would render the "Upload last Log File"
entry useless
Also includes UI for opening specific log files directly from the OBS UI
On successful upload the resulting (non-API) URL is copied into the
clipboard and a message box signalling successful upload is displayed.
This should probably be expanded into a dialog with buttons to retry
copying the URL to the clipboard and maybe a text box with the URL
preselected.
Whether or not the upload URL should be cached (per log file) and reused
in case of duplicate upload (attempts) is still open for debate.
These complement the new start/stop recording events as they are called
as soon as a network connection is initiated/severed regardless of
previous encoder state