Commit Graph

28 Commits

Author SHA1 Message Date
03e32c8b5e Base: Major protocol refactor
As discussed in the #development channel in discord
- Switch from using message types to integer op codes
- Consolidate op-specific keys into `d` sub-object
- Shorten low-level payload keys from `messageType` to `op`, add `d`

Other changes:
- The WebSocketCloseCode enum has been refactored. It's best to just
treat it like it's new
- Some performance benefits came along the way. Nothing gamechanging,
but notable
- Various bug fixes discovered while refactoring
2021-08-28 05:02:24 -07:00
ade9653ed6 Base: Only include required util namespaces 2021-08-27 04:34:06 -07:00
4d271da541 Base: Code cleanup and add some requests 2021-07-22 03:24:53 -07:00
c9619ce215 Base: Add system tray notifications
Final "UI" part of the plugin to be completed. I'm annoyed at how
many includes are required in order to implement this feature. It
breaks quite a bit of the modularity of the plugin because suddenly
everything has to include obs libraries (for translations)
2021-06-13 03:58:15 -07:00
bbc504ce72 WebSocketServer: Remove unnecessary signals 2021-06-13 03:24:22 -07:00
4d6901c075 WebSocketServer: Add RPC version support to events 2021-05-10 22:55:48 -07:00
ee751edf54 SettingsDialog: Mild refactor and add Connect Info dialog
Among lots of stuff:

- Generate a random password on first load

- Add `ConnectInfo` dialog including QR code display

- Add `Generate Password` button to generate a new random
password

- Delete `Copy Password to Clipboard` button

- Delete `GetConnectString` or whatever from WebSocketServer
(reimplemented the functionality directly into ConnectInfo)

- Added `GeneratePassword()` to Utils

Todo: Show warning when users specify their own passwords
2021-05-08 04:29:03 -07:00
807a1501b7 base: Refactor request stuff and finish more logic 2021-05-03 13:31:22 -07:00
36af7f6f58 base: Lots of stuff, including RequestHandler progress 2021-05-02 19:48:44 -07:00
04f7b33755 SettingsDialog: Add Identified column to session table 2021-04-30 11:24:09 -07:00
4be9b995fb base: Use shared_ptr instead of explicit ref counts
Took a night of sleep but I realized how I could solve the
concurrency issues in a good way. Uses shared_ptr, where the map
always accounts for one reference to a session.
2021-04-30 08:45:34 -07:00
09bfea0628 WebSocketProtocol: Add Identify logic (not tested well) 2021-04-29 20:37:28 -07:00
ba710efe09 WebSocketServer: Include password in changed GetConnectString()
New format is `obswebsocket|ip:port|password`
2021-04-29 09:06:12 -07:00
4028d42931 WebSocketServer: Only encode event once and when it's required 2021-04-29 08:52:40 -07:00
1cee256cb3 WebSocketServer: Store debug setting 2021-04-29 08:24:27 -07:00
b43fc4fec6 WebSocketServer: Make QObject again 2021-04-28 22:13:02 -07:00
d1d5dd74ea WebSocketServer: Send hello in onOpen 2021-04-28 22:03:23 -07:00
b0a594e509 WebSocketCloseCode: Add InvalidContentType 2021-04-28 20:54:31 -07:00
11913dac76 WebSocketServer: Rename sessionDuration to connectedAt 2021-04-28 11:14:00 -07:00
1245958031 WebSocketSession: Add encoding 2021-04-28 10:41:51 -07:00
948750da6a WebSocketServer: Start and stop 2021-04-28 10:27:32 -07:00
d9ee288cf1 base: cmake is fucking retarded 2021-04-27 16:33:47 -07:00
5d170d6bb3 WebSocketServer: Include WebSocketCloseCode 2021-04-27 15:29:09 -07:00
b61cf82e84 base: Shutdown websocket server on unload 2021-04-27 15:25:11 -07:00
8067cfb686 Base: Tons more shit 2021-04-27 14:52:48 -07:00
107d3cce09 deps: Add nlohmann json
I decided to go with nlohmann::json because it supports both JSON and
msgpack. I'm likely going to have to write some conversion utils to
convert between obs_data_t and json, but the advantages of what
nlohmann::json brings to the table are just too attractive.
2021-04-27 09:46:00 -07:00
a0162caad1 base: Add base RequestHandler and rpc files 2021-04-27 09:29:51 -07:00
f0dfe72aca base: Add starting WebSocketServer files 2021-04-27 09:18:06 -07:00