32 Commits

Author SHA1 Message Date
tt2468
9e1a41f219
docs: Clarify that nested scenes are recommended instead of groups
Seems like it would be obvious, but apparently not
2022-09-18 18:02:13 -07:00
tt2468
ecde83a28d requesthandler: Allow empty object in Set*PrivateSettings requests
Requested by #958

Closes #958
2022-07-25 08:21:57 -07:00
tt2468
35e3e278bf
requesthandler: Fix GetGroupSceneItemList name in docs 2022-07-12 10:10:53 -07:00
tt2468
9cdfa41113 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:25:38 -07:00
tt2468
22fee0312d utils: Move from explicit enum converters to nlohmann macros 2022-06-08 00:33:41 -07:00
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
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
13c7b83c34 requesthandler: Fix compiler warnings with latest OBS master
OBS has deprecated the `_addref` functions, so the new norm is to use
`_get_ref`.
2022-01-26 17:40:45 -08:00
tt2468
6a2d5968ad requesthandler: Add private source settings get/set requests
It was requested via Discord to be able to modify the private settings
of any private source, since that functionality is used by some client
software to store stateful data. As private settings are in territory
that no normal user should ever tread into, these requests will be left
undocumented.
2022-01-01 17:43:26 -08:00
tt2468
fe64620731 requesthandler: Add scene item blend mode requests 2021-12-31 18:05:05 -08:00
tt2468
f8263caa03 RequestHandler: Add code comment to RemoveSceneItem 2021-12-29 00:23:30 -08:00
tt2468
0992f74fad RequestHandler: Use ValidateScene2 for GetSceneItemId 2021-12-28 16:58:28 -08:00
tt2468
1e6a60f545 Utils: Rename ListHelper to ArrayHelper 2021-12-21 01:32:12 -08:00
tt2468
5cd1af426a Utils: Rename DataHelper to ObjectHelper 2021-12-21 01:32:12 -08:00
tt2468
82ad3313e8 docs: More docs 2021-12-21 01:32:12 -08:00
tt2468
fcbe11616d
docs: Overhaul documentation (#863)
More docs-related commits will follow, but this needs to be merged in order to continue with other development.

* Docs: Overhaul docs generator (beginning)

* docs: Rename comments file

* docs: Move comments gitignore

* docs: Initial request documentation

* docs: Improvements to comment processing

* docs: More improvements

* docs: Add enum functionality for protocol.json

* WebSocketServer: Document enums

* RequestHandler: Document RequestStatus enum

* Base: Move ObsWebSocketRequestBatchExecutionType to its own file

Moves it to its own file, renaming it to `RequestBatchExecutionType`.
Changes the RPC to use integer values for selecting execution type
instead of strings.

* docs: Update introduction header

Removes the enum section, and documents RequestBatchExecutionType.

* WebSocketCloseCode: Shuffle a bit

* Base: Use `field` instead of `key` or `parameter` in most places

* RequestStatus: Mild shuffle

It was really bothering me that OutputPaused and OutputNotPaused
had to be separated, so we're breaking it while we're breaking
other stuff.

* docs: Delete old files

They may be added back in some form, but for now I'm getting them
out of the way.

* docs: Add enum identifier value

Forgot to add this before, oops

* docs: Document more enums

* docs: Add basic protocol.md generator

* docs: More work on MD generator

* docs: MD generator should be finished now

* docs: More fixes

* docs: More fixes

* docs: More tweaks + add readme

* docs: Update readme and add inputs docs

* docs: More documentation
2021-12-10 21:38:18 -08:00
tt2468
4ca259b790 Base: Enforce -Wall and fix compiler warnings
That was *a lot* of warnings.
2021-11-20 02:34:48 -08:00
tt2468
bd6c663775 Base: Add copyright header to source 2021-11-19 17:32:22 -08:00
tt2468
9197a48088 Requests: Add SetSceneItemTransform
Yay party
2021-11-12 23:24:39 -08:00
tt2468
45f7661a5d Requests: Add DuplicateSceneItem 2021-11-12 17:31:11 -08:00
tt2468
2218b7956c Requests: Support groups in most of the scene item requests
Tested each request to the fullest reasonable extent. Requests performed properly without errors or leaks
2021-09-25 18:59:04 -07:00
tt2468
0e8650dbd2 Requests: Support groups in GetSceneItemId 2021-09-25 18:45:37 -07:00
tt2468
5350c115bf Requests: Improve more request checks 2021-09-25 18:29:27 -07:00
tt2468
9ca83e7570 Requests: Make GetSceneItemId scene only 2021-09-25 17:54:39 -07:00
tt2468
aa0ba78e46 Base: Use more refcounts
Use refcounts more effectively
2021-09-25 17:52:08 -07:00
tt2468
b91ad0f790 Requests: Add GetSceneItemId
I realized that it was not entirely fair to expect users to fetch a
scene's item list, then search the list on the client in order to find
an item ID, so this is a compromise. This will also help developers
move from the 4.x scene item functionality to 5.x's

Operating on scene items by relying on source name can be dangerous
and in some cases exhibit what would be considered undefinied behavior.
Operating on scene items using IDs is best practice.
2021-09-25 17:21:06 -07:00
tt2468
d811c95e10 Requests: Add some more failure checks and improve response codes 2021-09-17 02:43:20 -07:00
tt2468
537595658d Requests: Add GetSceneItemTransform 2021-09-03 15:59:09 -07:00
tt2468
96dcc49adb Requests: More requests and code cleanup
(plus very slight performance improvement)
2021-09-03 12:52:50 -07:00
tt2468
333737f400 Requests: Additions and code cleanup 2021-09-02 19:29:13 -07:00