Commit Graph

876 Commits

Author SHA1 Message Date
Translation Updater
7e3f2a82f0 Update translations from Crowdin 2024-07-17 09:34:11 +00:00
tt2468
65396e1db7 requesthandler: Use existence of virtualcam output to test availability
An upstream commit removed the `vcamEnabled` private data field from
being set, so we need to use a new method now.
2024-07-16 11:44:02 -07:00
tt2468
f8bc7c4f59 base: Update version to 5.5.1
Enhancements:
- Updated translation strings

Bug Fixes:
- Fixed a potential crash with the migration on systems set to
non-english languages
2024-06-11 15:41:13 -07:00
derrod
9e48274617 Config: Ensure conversion to filesystem::path uses utf-8 2024-06-11 13:43:10 -07:00
Translation Updater
3b7c1c5381 Update translations from Crowdin 2024-06-07 09:47:56 +00:00
tt2468
20551043f9 base: Update version to 5.5.0
New Features:
- Added `CreateRecordChapter` request for the new native MP4 muxer
[tt2468]
- Added `SplitRecordFile` request to create a file split [tt2468]
- Added `RecordFileChanged` request for when the current recording is
split [tt2468]
- Added obs-websocket-api as a Cmake target, allowing plugins to build
against it without directly including the header file in their source
tree. [tytan652]
- Added the ability to subscribe to obs-websocket events via the
obs-websocket-api header file. [tt2468]

Enhancements:
- Added `cropToBounds` boolean value to Get/SetSceneItemTransform
[exeldro]

Bug Fixes:
- Fixed screenshot behavior of sources with a crop filter not
respecting the cropped size (#1132) [tt2468]
- Fixed an issue with `TriggerHotkeyByName` not releasing keys
correctly when multiple keys are specified. [exeldro]

Other Notes:
- Fixed a few enums showing as deprecated in the documentation
- The location of the obs-websocket global settings data has changed!
Settings located in `global.ini` have moved to the
`plugin_config/obs-websocket` directory. This includes the `global`
realm for the `*PersistentData` requests. Upon loading with an
un-migrated configuration, obs-websocket will perform a migration and
delete the old configurations.
As such, **migration is not reversible**
2024-06-07 01:30:46 -07:00
Github Actions
086bf06008 docs(ci): Update generated docs - 6483dca [skip ci] 2024-06-07 08:29:25 +00:00
tt2468
6483dcaef0 requesthandler: Add CreateRecordChapter
The new `Hybrid MP4 [BETA]` output added in OBS adds support for
writing chapter markers to the file.
2024-06-07 01:29:10 -07:00
tt2468
71920c484b eventhandler: Add RecordFileChanged event
When a file split happens, this will fire with the new file name
2024-06-07 01:29:10 -07:00
tt2468
0eda8f9406 requesthandler: Add SplitRecordFile request 2024-06-07 01:29:10 -07:00
Exeldro
3b873ceb30 requesthandler: Fix releasing hotkeys triggered by name 2024-06-06 00:04:39 -07:00
Exeldro
36f50adf8a requesthandler: Add cropToBounds to scene item 2024-06-06 00:03:26 -07:00
Github Actions
acd1af12a1 docs(ci): Update generated docs - eb28825 [skip ci] 2024-06-06 06:53:33 +00:00
tt2468
eb2882515f docs: Fix some enums showing up as deprecated
Closes #1141
2024-06-05 23:50:48 -07:00
tt2468
5c3c4c76c8 requesthandler: Fix resolution of screenshots of cropped sources
This applies the same fix found in obsproject/obs-studio#10077 to get
the target source's real width and height, not the width and height
values from the pre-filter stage.

Closes #1213
2024-06-05 23:34:04 -07:00
tt2468
8c80e0745a Config: Fix plugin startup for fresh installs
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
2024-06-05 23:26:36 -07:00
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