The commit to migrate data from global.ini to the plugin_config folder
accidentally broke plugin startup for fresh configurations. Instead of
returning early if no configuration is found, simply generate a new one
from defaults.
Closes#1225
This commit moves the Config value storage from `global.ini` to a new
`config.json` file in the `plugin_config/obs-websocket` directory. This
comes after some internal discussion about plugins not using the
`plugin_config` directory, and that obs-websocket was offending.
Settings are currently stored as a JSON object, and field names have
been changed from using PascalCase to snake_case, to better align
with how JSON is stored elsewhere in OBS.
Updates:
obs_sceneitem_get_info to obs_sceneitem_get_info2
obs_sceneitem_set_info to obs_sceneitem_set_info2
Ensures that we're using the latest versions of these functions in order
to prevent future deprecation
New Features:
- Added `GetSourceFilterKindList` request
- Added `GetSceneItemSource` request
- Added `InputSettingsChanged` event
- Added `SourceFilterSettingsChanged` event
- Added UUID support to Sources (Inputs/Scenes), Inputs, Scenes,
Transitions
- The `Source` requests/events use `sourceUuid`
- The `Input` requests/events use `inputUuid`
- The `Scene` requests/events use `sceneUuid`
- The `Transition` requests/events use `transitionUuid`
- Filters do not have support for UUIDs at this time.
Enhancements:
- Added `contextName` field to `TriggerHotkeyByName` (exeldro)
Bug Fixes:
- Fixed a crash on shutdown with notifications enabled (r1ch)
- Added safety check to prevent `null` `outputCongestion` values in
`GetStreamStatus`
- Fixed a memory leak when switching service kinds via
`SetStreamServiceSettings`
Other Notes:
- Documented missing `outputActive` `ToggleRecord` response field
- Added a few new client softwares to the README list
- Removed a mis-documented `imageData` field
- Added a note to the hotkey requests that they are as-is and we
will not provide support for them
Transition UUID support is partial due to the current state of the OBS
frontend API.
Most requests which accepted things like `sourceName` now allow
`sourceUuid` (or equivalent) to be specified instead. While both fields
on the various requests may be marked as optional, at least one field
will still be required.