Commit Graph

650 Commits

Author SHA1 Message Date
tt2468
6deadc25ac base: Change column limit to 132
A column limit of 80 is very restrictive and code readability was
suffering. A limit of 132 is more realistic for this plugin.
2022-06-07 21:36:51 -07:00
tt2468
f73e78582b base: Format code 2022-05-13 21:19:29 -07:00
tt2468
7b238793d0 cmakelists: Various fixes 2022-05-13 20:40:01 -07:00
tt2468
7a09f38a64 base: Remove actions building and refactor CMake for submodule 2022-05-13 20:23:03 -07:00
tt2468
27d21975f0 websocketapi: Fix build on Windows 64 bit 2022-05-13 19:06:03 -07:00
tt2468
60e272e6f0 base: Update a few files with updated info 2022-05-13 18:58:45 -07:00
tt2468
dd4971b1cc lib: Fix compilation on 32 bit Windows 2022-05-13 18:48:55 -07:00
tt2468
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
tt2468
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
tt2468
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
tt2468
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
tt2468
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
tt2468
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
Github Actions
ca34981aae docs(ci): Update generated docs - 828dbde [skip ci] 2022-04-26 03:33:37 +00:00
tt2468
828dbde75c
Merge pull request #879 from dnaka91/docs-formatting
docs: Improve generated docs formatting
2022-04-25 20:33:19 -07:00
tt2468
ac102de1e8
Merge branch 'master' into docs-formatting 2022-04-25 20:30:25 -07:00
Github Actions
20e654186c docs(ci): Update generated docs - f42cd21 [skip ci] 2022-04-26 03:25:55 +00:00
tt2468
f42cd2177a
Merge pull request #889 from csunday95/feature-csunday95-get-screen-info
Requests: Add GetMonitorList
2022-04-25 20:25:37 -07:00
Christopher Sund
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
tt2468
371c414281
Merge pull request #924 from ChrisTallon/ipv4only
Server: Add --websocket_ipv4_only switch
2022-04-25 19:53:42 -07:00
Chris Tallon
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
Github Actions
9f68e0166b docs(ci): Update generated docs - 8b85658 [skip ci] 2022-04-26 02:46:24 +00:00
tt2468
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
tt2468
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
Github Actions
95df4782f3 docs(ci): Update generated docs - 9d89937 [skip ci] 2022-04-13 09:18:28 +00:00
tt2468
9d899376a5 requesthandler: Fix docs for SetSourceFilterEnabled 2022-04-13 02:17:27 -07:00
tt2468
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
tt2468
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
tt2468
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
t2t2
620f11e8a3
Readme: Add obs-websocket-js to client libraries 2022-03-22 20:16:48 +02:00
tt2468
b02a32ce06 ci: Apply version suffix to macOS builds 2022-03-01 15:26:45 -08:00
tt2468
ce31ed177d base: Stuff for beta1 2022-03-01 14:50:12 -08:00
tt2468
71a32c981c utils: Reserve vector capacity where possible
Slight optimization for iteration
2022-03-01 14:48:10 -08:00
Github Actions
4440327141 docs(ci): Update generated docs - bbf9c28 [skip ci] 2022-03-01 22:37:04 +00:00
tt2468
bbf9c283c0 eventhandler: Add SceneTransitionVideoEnded 2022-03-01 14:36:35 -08:00
tt2468
9ac7c5890e eventhandler: Add SceneTransitionEnded 2022-03-01 14:36:35 -08:00
tt2468
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
tt2468
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
Tim Yuen
7fade98407 README: Add Godot obs-websocket-gd to library list 2022-02-23 19:20:07 -05:00
Dominik Nakamura
df13ad30b7
Update lint workflow name 2022-02-19 16:13:59 +09:00
Dominik Nakamura
2297432f90
Fix type in SetSourceFilterEnabled docs 2022-02-19 16:13:42 +09:00
Dominik Nakamura
be48d0bfe9
Add CI task to lint markdown files 2022-02-19 16:08:18 +09:00
Dominik Nakamura
2027394d33
Fix new markdown warnings from latest master 2022-02-19 15:58:42 +09:00
Dominik Nakamura
d7de347b37
Merge branch 'master' into docs-formatting 2022-02-19 15:53:39 +09:00
Github Actions
e0057b05db docs(ci): Update generated docs - aa13828 [skip ci] 2022-02-16 22:26:10 +00:00
tt2468
aa13828cf5 requesthandler: Add SetSourceFilterName 2022-02-16 13:37:18 -08:00
tt2468
db2ffa569a Base: Fix some formatting 2022-02-16 13:30:10 -08:00
tt2468
66c14dced5 requesthandler: Reorder a filter request 2022-02-16 13:23:49 -08:00
Github Actions
29b2b1bd5d docs(ci): Update generated docs - 361547a [skip ci] 2022-02-16 21:17:24 +00:00
Brendan Allan
361547a96d
requesthandler: Filter requests & events (#888)
* Implement filter requests

* Fix CreateSourceFilter

* Implement most Filter events

* build against 27.1.3

* Update main.yml

* SourceFilterNameChanged rename

* revert main.yml changes

* rename SourceFilterCreated and revert CI changes

* cleanup

* Base: Various cleanups + fix -Werror

* Base: A few nitpicks/fixes

* requesthandler: Fix CreateSourceFilter

* utils: Fix CreateSourceFilter

Use obs_source_t* instead of OBSSourceAutoRelease to prevent double
release

* requesthandler: Remove filterIndex from CreateSourceFilter

The purpose of sceneItemEnabled in CreateSceneItem is to hide the
scene item while we still hold the scene mutex (guaranteeing the input
will never be shown). Since we don't hold a mutex when creating
filters, there's no reason to do any extra steps.

* requesthandler: Validate input/filter kinds in *DefaultSettings

Co-authored-by: tt2468 <tt2468@gmail.com>
2022-02-16 13:17:06 -08:00