Commit Graph

660 Commits

Author SHA1 Message Date
7c21e5732e requesthandler: Add projector creation requests
I didn't think I'd be able to make remotely usable requests using OBS'
existing projector API, but I'm actually pretty happy with how it
turned out.

Closes #929

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2022-07-02 08:23:03 -07:00
f5db53f217 requesthandler: Echo request details in response of CallVendorRequest
I generally don't like to echo data provided to obs-websocket in
requests, but since we do that for the request type in base requests,
this particular case seems fair.

Closes #919
2022-07-02 07:11:44 -07:00
3400f88665 CI: Exclude qr from code format too 2022-07-02 07:03:46 -07:00
ad3cb5dcfd requesthandler, eventhandler: Add outputPath fields when record stops
Closes #934
2022-07-02 07:00:51 -07:00
5ecda806bd requesthandler: Rework and fix a few data consistency checks
Some stuff led to possible crashes, other stuff simply didn't work.
Should be much better now.

Closes #942
2022-07-02 05:57:35 -07:00
af3f29169c utils: Clean up a few iteration functions 2022-07-02 05:57:25 -07:00
af97978841 utils: Move from explicit enum converters to nlohmann macros 2022-07-02 05:57:08 -07:00
4f89378c45 utils: A few casting nitpicks 2022-07-02 05:50:37 -07:00
4fc8a3aecc CI: Fix deps formatting excludes 2022-07-02 05:49:57 -07:00
1626ae5546 Revert "Config, websocketserver: Add feature to bind to loopback (default)"
This reverts commit 1da0214201.
2022-07-02 05:49:02 -07:00
8b7fd3dd46 Revert "forms: Add configuration to enable external access"
This reverts commit 1cd12c1023.
2022-07-02 05:44:08 -07:00
73848a7370 docs: Fix EventSubscription::All subscribes 2022-07-02 05:43:57 -07:00
2e48dd24c4 base: Format code 2022-07-02 05:42:20 -07:00
ad1f28480c base: Update a few files with updated info 2022-07-02 05:36:52 -07:00
91cabe1202 websocketapi: Fix build on Windows 64 bit 2022-05-13 19:16:18 -07:00
f869f3df76 CI: Update to new branch name for release 2022-05-13 18:49:17 -07:00
dd4971b1cc lib: Fix compilation on 32 bit Windows 2022-05-13 18:48:55 -07:00
749ecc976b base, lib: Update plugin API example and tests
Updates the example and tests for the plugin API to include the latest
additions to the plugin API.
2022-05-10 23:04:21 -07:00
d85c86e3a0 base, lib: Add ability to call obs-websocket requests via plugin API
**Increments Plugin API Version**

Adds functions:
- `obs_websocket_get_api_version()` - Gets the current obs-websocket
plugin API version
- `obs_websocket_call_request()` - Calls an obs-websocket request via
the plugin API

Adds structs:
- `obs_websocket_request_response`
2022-05-10 23:04:04 -07:00
3303acfcca requesthandler: Don't require session for Request Handler
Required to call requests in situations where a session is not
relevant.
2022-05-10 22:48:57 -07:00
1cd12c1023 forms: Add configuration to enable external access
After discussion in the Discord server, and some internal discussion,
this was deemed a reasonable patch for various security concerns. This
basically controls whether obs-websocket binds to 127.0.0.1 or 0.0.0.0.

I decided to have obs-websocket bind to 127.0.0.1 by default, since
most users appear to be using obs-websocket on the same machines as
their client software. This will be changed if it poses significant
support-related issues.

Further security solutions have been discussed, but are either a heavy
amount of work, or significantly impact client applications' connect
flows.

One idea that I should mention is like a cookie system, where:
- On first connect, obs-websocket asks the user to approve the
connection.
- After authentication, obs-websocket gives the client a token in the
`Identified` message, which the client stores.
- On future connects, the client uses this token, along with the
password, to authenticate without needing user confirmation.

This system will likely be implemented in a future version of
obs-websocket.

Closes #907
2022-04-26 03:24:26 -07:00
1da0214201 Config, websocketserver: Add feature to bind to loopback (default)
Binds to localhost or 127.0.0.1 by default, since most users don't have
to access obs-websocket externally.
2022-04-25 21:31:52 -07:00
226c81ce78 utils/Platform: Ignore virtualbox interface IP
Somewhat common on systems, so we'll just manually ignore it.

Closes #928
2022-04-25 20:38:26 -07:00
ca34981aae docs(ci): Update generated docs - 828dbde [skip ci] 2022-04-26 03:33:37 +00:00
828dbde75c Merge pull request #879 from dnaka91/docs-formatting
docs: Improve generated docs formatting
2022-04-25 20:33:19 -07:00
ac102de1e8 Merge branch 'master' into docs-formatting 2022-04-25 20:30:25 -07:00
20e654186c docs(ci): Update generated docs - f42cd21 [skip ci] 2022-04-26 03:25:55 +00:00
f42cd2177a Merge pull request #889 from csunday95/feature-csunday95-get-screen-info
Requests: Add GetMonitorList
2022-04-25 20:25:37 -07:00
2479501879 Requests: Add GetMonitorList
Adds a new request `GetMonitorList` that returns a json Array of
objects containing data about connected monitors. See #868
2022-04-25 20:20:45 -07:00
371c414281 Merge pull request #924 from ChrisTallon/ipv4only
Server: Add --websocket_ipv4_only switch
2022-04-25 19:53:42 -07:00
3a5f0d89b9 Server: Add --websocket_ipv4_only switch
Socket listening default changed to IPv4 and IPv6,
overridable to IPv4 only by using the command line switch.
2022-04-25 19:53:15 -07:00
9f68e0166b docs(ci): Update generated docs - 8b85658 [skip ci] 2022-04-26 02:46:24 +00:00
8b85658c61 requesthandler: Add platform info to GetVersion
It can be very useful to know which platform you're connecting to in
the case of things like text input modification, where Windows uses
GDI while unix uses FT2.
2022-04-25 19:43:40 -07:00
a9c9363d4a eventhandler: Fix group remove signals
Like inputs, if a group is ungrouped, the group itself is not removed.
What actually happens is the removal of the last scene item triggers
a destroy, just like with inputs.

This modifies the old signal selection in favor of falling back
to the destroy signal if an object is not explicitly removed.
2022-04-16 19:34:47 -07:00
95df4782f3 docs(ci): Update generated docs - 9d89937 [skip ci] 2022-04-13 09:18:28 +00:00
9d899376a5 requesthandler: Fix docs for SetSourceFilterEnabled 2022-04-13 02:17:27 -07:00
d8c042fe4a requesthandler: Add private scene item settings get/set
Some may need it, similarly to Get/SetSourcePrivateSettings.
2022-04-13 02:13:30 -07:00
c355c72f4b requesthandler, utils: Add search offset to GetSceneItemId
Allows you to select a specific match by offset, or select the
last (top) scene item by specifying `-1`.
2022-04-13 02:01:40 -07:00
e6c48990d6 Merge pull request #925 from t2t2/patch-1
README: Add obs-websocket-js to client libraries
2022-03-26 18:34:53 -07:00
620f11e8a3 Readme: Add obs-websocket-js to client libraries 2022-03-22 20:16:48 +02:00
b02a32ce06 ci: Apply version suffix to macOS builds 5.0.0-beta1 2022-03-01 15:26:45 -08:00
ce31ed177d base: Stuff for beta1 2022-03-01 14:50:12 -08:00
71a32c981c utils: Reserve vector capacity where possible
Slight optimization for iteration
2022-03-01 14:48:10 -08:00
4440327141 docs(ci): Update generated docs - bbf9c28 [skip ci] 2022-03-01 22:37:04 +00:00
bbf9c283c0 eventhandler: Add SceneTransitionVideoEnded 2022-03-01 14:36:35 -08:00
9ac7c5890e eventhandler: Add SceneTransitionEnded 2022-03-01 14:36:35 -08:00
a7698a732f eventhandler: Add SceneTransitionStarted + cleanup
This commit cleans up a bunch of code in the event handler,
making it much easier to understand (IMO). I feel much better
about how we handle connecting and disconnecting callbacks. Before,
we were actually allowing a bunch of callbacks to stay connected and
get cleaned up. Now, we actually properly disconnect them.
2022-03-01 14:36:35 -08:00
e15b2edb4f Merge pull request #917 from you-win/readme/add-godot-obs-websocket-gd
README: Add Godot obs-websocket-gd to library list
2022-02-23 16:25:47 -08:00
7fade98407 README: Add Godot obs-websocket-gd to library list 2022-02-23 19:20:07 -05:00
df13ad30b7 Update lint workflow name 2022-02-19 16:13:59 +09:00