Commit Graph

94 Commits

Author SHA1 Message Date
Ryan Foster
08767ae5a7 base: Update version to 5.3.2
- Fix plugin tests being enabled by default
2023-10-09 16:34:30 -04:00
Ryan Foster
16bf61aab6 cmake: Fix condition to disable plugin tests
The CMake generator expression to enable plugin tests mistakenly used a
string literal, which evaluated to 1, which enabled the plugin tests by
default. Use variable notation to correctly test this value.
2023-10-02 14:37:04 -07:00
Ryan Foster
e9c0eee9e4 base: Update version to 5.3.1
- Fix issues with qrcodegencpp CMake preventing Debug builds
2023-09-19 13:21:47 -04:00
Ryan Foster
2bfa1b4c64 cmake: Ignore LNK4099 warning
Despite building the PDBs for qrcodegencpp debug builds, we do not
currently ship those PDBs, so MSVC emits an LNK4099 warning, which
causes a build failure. It's unlikely that we'll need to debug in linked
dependencies, so we can ignore this warning. Should we decide in the
future to ship PDBs for these dependencies, the warning would no longer
be emitted, and this flag would be superfluous without requiring a
change. For now, let's make sure we can build in Debug.
2023-09-19 10:52:15 -04:00
PatTheMav
0e611f579b cmake: Update library and target names for qrcodegen
qrcodegen is identified as such (without the "lib" prefix) and as the
target "qrcodegencpp::qrcodegencpp" by the CMake package generated by
obs-deps.
2023-09-18 12:50:40 -04:00
Ryan Foster
ec2cdc8475 base: Update version to 5.3.0
- Various minor build process cleanups
- Various code cleanups
- requesthandler: Added NotReady request status
- base: Pause requests and events during start, SC change, and shutdown
- eventhandler: Use OBS_FRONTEND_EVENT_SCRIPTING_SHUTDOWN for exit
- requesthandler: Added SetRecordDirectory
- websocketserver: Retry listen on IPv4 if IPv6 is not available
2023-09-05 14:31:41 -04:00
tytan652
417725801c base,deps,src: Replace qr submodule by prefix/system install 2023-07-15 16:58:18 -07:00
tt2468
886738547a websocketserver: Clean up WebSocketSession class implementation
Makes it header-only with inlines, so there's theoretically some very
small performance improvements too.
2023-05-27 21:50:55 -07:00
PatTheMav
f7637250f1 cmake: Silences Qt warnings emitted by clang with default Xcode settings 2023-05-09 15:01:45 -07:00
Ryan Foster
6ef055a369 base: Update version to 5.2.2
- Various minor build process cleanups
2023-04-04 15:13:15 -04:00
tytan652
a4ee9c03ea base: Remove unneeded include directories
Asio and WebSocket++ are no longer added as submodules.
They are now included in obs-deps.
2023-04-04 12:15:33 -04:00
tytan652
21886adb32 base: Fix generated header inclusion 2023-03-27 12:59:23 -04:00
Ryan Foster
7ca8d5fc2b base: Update version to 5.2.0
- Fixed a crash caused if `authentication` payload field was not a
string
- Allow empty vendor request data
- Minor documentation fixes
- Replace submodules with obs-deps or system versions where possible
  - asio
  - websocketpp
  - nlohmann/json
- Refactor CMake to allow uplift to new obs-studio CMake
2023-03-26 19:30:00 -04:00
Ryan Foster
db2c251189 base: Re-add version CMake variables
Make sure that non-legacy builds have these version variables populated.
2023-03-26 19:09:51 -04:00
PatTheMav
dd248faecb cmake: Add changes for CMake build framework 3.0
New code path only taken if OBS_CMAKE_VERSION is set to 3.0.0 or
greater, old functionality remains unchanged.
2023-03-26 18:21:05 -04:00
tytan652
68d79b22af base: Disable Qt RCC timestamps only on Windows 2023-03-24 12:29:19 -04:00
derrod
b06da5fa63 base: Disable Qt RCC timestamps 2023-03-23 18:20:34 -04:00
tytan652
78a1b54a47 base,deps: Replace submodules by prefix/system install
nlohmann JSON, WebSocket++ and Asio are moved from sudmodules to
prefix (obs-deps) or system-wide install (Linux).
2023-03-23 17:37:51 -04:00
tytan652
bf277011f9 base: Refactor CMake Qt properties
- Allow obs-deps to be used by not changing CMAKE_PREFIX_PATH.
- Move Qt AUTO properties to the target.
2023-03-23 17:37:51 -04:00
tt2468
31f9845b61 base: Update version to 5.1.0
- Renamed the tools menu button title to `WebSocket Server Settings`
- WebSocket session disconnects are now logged with the close code and
reason
- Fixed a few UI formatting issues
- Fixed the `ObsOutputState` enum not being shown in protocol.md
- Implemented new reconnect output states to the stream output
  - `OBS_WEBSOCKET_OUTPUT_RECONNECTING`
  - `OBS_WEBSOCKET_OUTPUT_RECONNECTED`
- Added the `ScreenshotSaved` event for the screenshot hotkey
- Fixed a bug where `GetLastReplayBufferFileName` could return an empty
string
- Documented `CustomEvent`
- Various other documentation fixes
- Added the following new software and libraries to the README:
  - Macro Deck
  - Bitfocus Companion
  - Kruiz Control
  - Aitum
  - OBS Blade
  - Deckboard
  - Streamer.bot
  - OBS-web
  - obws (Rust)
  - goobs
  - obsws-python
2022-11-18 02:29:10 -08:00
tytan652
0ff90d1687 base: Update non-MSVC compile options 2022-08-24 01:44:14 -07:00
tytan652
c0ba751aaf base: Clean up find_qt macro 2022-07-30 16:31:24 -07:00
tytan652
eba6c4c6f3 base: Add ENABLE_WEBSOCKET CMake option 2022-07-30 16:31:24 -07:00
tytan652
59e7e3a307 base: Add checks for submodules in CMake 2022-07-30 16:31:24 -07:00
tytan652
8bf8995ad8 base: Suppress C4996 warning 2022-07-28 12:15:38 -07:00
tytan652
2b8dd47a6c Revert "base: Set the correct Windows preprocessor var for asio"
This reverts commit 420e600864.
2022-07-28 12:15:38 -07:00
tt2468
268a45e8dd base: Format CMakeLists.txt (again) 2022-07-28 11:46:32 -07:00
tytan652
e52d5402cf base: Add and use find_qt to support Qt5 and Qt6 2022-07-28 11:40:27 -07:00
tytan652
0db223b148 base: Suppress deps warnings
/wd4267 is required by websocketpp
-Wno-error=format-overflow is required by asio

-Wno-error=null-pointer-subtraction is required by json on macOS

-Wno-error=deprecated-declarations is required on macOS because Xcode 14
deprecates sprintf()
2022-07-28 11:40:27 -07:00
tytan652
420e600864 base: Set the correct Windows preprocessor var for asio
Fix C4996 warning

Co-authored-by: PatTheMav <PatTheMav@users.noreply.github.com>
2022-07-28 11:40:27 -07:00
tt2468
1902d7e1a3 base: Update version to 5.0.1 2022-07-25 08:30:34 -07:00
tt2468
de40b53d77 base: Format CMakeLists.txt using OBS formatter 2022-07-25 07:48:06 -07:00
tt2468
22fee0312d utils: Move from explicit enum converters to nlohmann macros 2022-06-08 00:33:41 -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
ae906bb283 RequestHandler: Add VirtualCam requests 2022-01-18 19:23:06 -08:00
tt2468
732d5af50c EventHandler: Add Ui category 2021-12-29 00:34:25 -08:00
tt2468
86506778ad RequestHandler: Add Ui category
Creates a new category specific to requests controlling the OBS UI.
2021-12-28 16:58:28 -08:00
tt2468
ad347c4823 RequestHandler: Add files for Transitions and Filters 2021-12-22 15:57:57 -08:00
tt2468
a898bacd79 Utils: Rename VolumeMeter utils for consistency 2021-12-21 03:09:45 -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
f66080a031 Utils: Split Obs utils into individual files 2021-12-21 01:32:12 -08:00
tt2468
b490e4409b CMakeLists: Add runtime tests flag 2021-12-15 02:06:31 -08:00
tt2468
eb8d69dca5 Base: Move request batch processing to requesthandler directory
Request batch processing had less to do with the protocol/server and
more to do with the actual request handler, so it felt better to move
it.
2021-12-13 19:10:08 -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
d48ddef031 EventHandler: Implement InputVolumeMeters
This is probably one of the most requested features for obs-websocket.
This currently works by firing an event to all explicit subscribers
with an array of all active audio sources every **60 milliseconds.**

The `inputLevelsMul` field follows this data format:

Base: [Channel, Channel]
Channel: [magnitude (mul), peak (mul), input_peak (mul)]

           *Not Muted*         *Muted*
Example: [[0.3, 0.5, 0.9], [0.0, 0.0, 0.0]]

(input_peak is the actual peak value, before volume adjustment.)

You may notice that the values are only in mul. This is because we are
trying to cut down on bandwidth. dB values can be calculated using this
formula:

`dB = 20.0 * log10(mul)`
2021-11-22 03:37:56 -08:00
tt2468
bc7b8d330a RequestHandler: Move RequestStatus.h to types directory 2021-11-21 03:13:53 -08:00
tt2468
0a294a558e WebSocketServer: Move enums to types directory
Code cleanup, makes WebSocketServer match how enums are handled in
other parts of the plugin
2021-11-21 01:37:21 -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