Commit Graph

860 Commits

Author SHA1 Message Date
tt2468
5b4aa9dabd WebSocketApi: Implement backend for obs-websocket event listening 2024-04-23 01:50:51 -07:00
tt2468
ee283c7141 lib: Implement obs-websocket event callback access
This allows plugins to listen directly for obs-websocket events.
2024-04-23 01:50:11 -07:00
tt2468
179e197bd5 base: Many random fixups preparing for WebSocketApi event callbacks 2024-04-23 00:28:00 -07:00
tt2468
5fc39ef054 base: Apply latest clang-format changes from upstream
Minus, some customizations, of course
2024-04-22 23:44:04 -07:00
tt2468
74719ce502 base: Move some direct crosstalk to callback system 2024-04-22 23:35:16 -07:00
tt2468
9123879c76 Config: Use std::string for ServerPassword instead of QString
Less Qt leeching into things is better.
2024-04-22 22:50:10 -07:00
tt2468
9db7464faa base: Use std::make_shared when allocating classes
Follows c++ recommendations.
2024-04-22 22:42:55 -07:00
tt2468
e2b8a06d94 requesthandler: Use new global realm path in persistent data requests
The `MigratePersistentData()` function handles migrating persistent
data on module load, and will fail if the data cannot be migrated.
2024-04-22 22:36:12 -07:00
tt2468
af31f1adca Config: Migrate config/persistent data to plugin_config directory
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.
2024-04-22 22:30:44 -07:00
tt2468
4410e30684 utils: Pass fileName by value in GetModuleConfigPath()
Lots of `const char *` values, preventing usage of passing by reference
2024-04-22 22:29:21 -07:00
tt2468
2c884ca690 utils: Make SetJsonFileContent() create directories by default 2024-04-22 22:28:45 -07:00
tt2468
f72f23a9d7 utils: Minor code fixups 2024-04-22 18:40:50 -07:00
tt2468
a589e80bdb utils: Implement helper to get current module config path 2024-04-22 18:38:19 -07:00
tt2468
305afd763d utils: Remove old *AutoRelease definitions
Now that OBS has been out with the upstream AutoRelease definitions,
and obs-websocket is also in-tree-only, these are no longer necessary.
2024-04-22 18:32:51 -07:00
tt2468
42e7eb6c34 utils: Remove text file Get/Set methods from Platform
No longer needed, and using Qt isn't good anyway
2024-04-22 18:23:39 -07:00
tt2468
bdf812dc09 utils: Reimplement Get/SetJsonFileContent helpers
Uses <fstream> instead of the text helpers
2024-04-22 18:22:27 -07:00
tytan652
c8cf2d94ac cmake,lib,base: Export obs-websocket-api as a target
This enables the installation of the header in the include directory
2024-03-30 17:04:37 -07:00
Translation Updater
d2d4bfb3e7 Update translations from Crowdin 2024-03-12 18:11:05 +00:00
Lain
d5077fca03 base: Update to version 5.4.2
Bug Fixes:
- Fixes version update to use both legacy and main CMake files
2024-02-21 11:21:17 -06:00
Lain
4a647c5262 base: Update to version 5.4.1
Bug Fixes:
- Updated scene item transform API to latest version to prevent
  deprecation warnings (obs_sceneitem_set_info2 and
  obs_sceneitem_get_info2)
2024-02-20 21:44:33 -06:00
Exeldro
3ea3d3228b requesthandler: Update scene item transform API
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
2024-02-20 21:44:33 -06:00
Ryan Foster
e94f9194a2 CI: Update first-party GitHub Actions to v4
GitHub Actions has deprecated actions based on node16. The v4 actions
are based on node20. Replace first-party v2/v3 actions with their v4
counterparts.

GitHub Actions has deprecated actions based on node12 and forces them to
run on node16, which is also deprecated. Update to v4 actions to avoid
warnings on CI.

See:
https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/
2024-01-30 16:25:38 -08:00
Translation Updater
9ee6e2ff2a Update translations from Crowdin 2024-01-29 20:47:37 +00:00
tt2468
b61a5c2431 base: Update version to 5.4.0
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
2024-01-24 15:51:27 -08:00
Github Actions
fbd4cfb4af docs(ci): Update generated docs - e5aa4c2 [skip ci] 2024-01-19 03:35:08 +00:00
tt2468
e5aa4c2f69 requesthandler: Rename GetSceneItemSourceName to GetSceneItemSource
Not an API break, this was introduced just a few commits ago.
2024-01-18 19:34:51 -08:00
Github Actions
4cf8de8382 docs(ci): Update generated docs - 7adfb58 [skip ci] 2024-01-19 03:30:20 +00:00
tt2468
7adfb5874c requesthandler: Implement input, scene, and transition UUID support
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.
2024-01-18 19:27:57 -08:00
tt2468
f18f46543b eventhandler: Implement input, scene, and transition UUID support
Adds `inputUuid` next to `inputName` etc.
2024-01-18 16:58:40 -08:00
tt2468
f40426efa1 utils: Implement input, scene, and transition UUID support 2024-01-18 16:56:20 -08:00
tt2468
830f7eb931 utils: Use BPtr for strings instead of manual bfree() 2024-01-18 16:17:48 -08:00
Github Actions
5e3fff78f3 docs(ci): Update generated docs - b53527c [skip ci] 2024-01-19 00:06:25 +00:00
tt2468
b53527cba8 requesthandler: Add note about as-is status of hotkey requests
Too much trouble for too little gain. Please stop using these requests.
2024-01-18 16:06:07 -08:00
Github Actions
b806a0cfb1 docs(ci): Update generated docs - 1d0db34 [skip ci] 2024-01-19 00:02:16 +00:00
tt2468
1d0db34bb2 requesthandler: Add GetSceneItemSourceName request
Closes #1122
2024-01-18 16:01:41 -08:00
Github Actions
690726d281 docs(ci): Update generated docs - ef4142f [skip ci] 2024-01-18 23:54:27 +00:00
tt2468
ef4142fe75 eventhandler: Add SourceFilterSettingsChanged event
Closes #1059
2024-01-18 15:54:08 -08:00
gxalpha
caaec5d97f requesthandler: Use Frontend API for CreateSceneCollection 2024-01-18 15:43:46 -08:00
Norihiro Kamae
6c67b276a7 lib: Fix compile errors on C and warnings on C++ 2024-01-16 01:39:27 -08:00
Github Actions
fad7dfd55c docs(ci): Update generated docs - a5c459b [skip ci] 2024-01-16 09:37:45 +00:00
aki-954315
a5c459b6d4 docs: Fix SaveSourceScreenshot's Response Field 2024-01-16 01:37:29 -08:00
Tim Yuen
899a9b3801 README: Bump Godot client library to 4.0.x 2024-01-16 01:36:49 -08:00
tt2468
939e503736
README: Add MATRIC to client software list
Closes #1177
2024-01-16 01:35:11 -08:00
Norihiro Kamae
5b149add99 RequestHandler: Fix memory leak when setting streaming service 2024-01-16 01:33:29 -08:00
jdudetv
50b57d38d0 README: Add Macrograph to Client Software 2024-01-16 01:23:59 -08:00
Github Actions
9b58dd1627 docs(ci): Update generated docs - 81b307e [skip ci] 2024-01-16 08:41:23 +00:00
tt2468
81b307e5ad eventhandler: Add InputSettingsChanged
Fired when an input's settings change, like via the properties dialog
or via `SetInputSettings`.

Closes #1157
2024-01-16 00:41:03 -08:00
Github Actions
52733ddce7 docs(ci): Update generated docs - 444caeb [skip ci] 2024-01-16 08:19:11 +00:00
tt2468
444caeb1d7 requesthandler: Add GetSourceFilterKindList
Closes #1198
2024-01-16 00:18:52 -08:00
Github Actions
f03e82c3f8 docs(ci): Update generated docs - bbdc5bc [skip ci] 2024-01-16 07:46:34 +00:00