Commit Graph

200 Commits

Author SHA1 Message Date
tt2468
3cc612cb1c SettingsDialog: Redesign settings sections 2021-06-05 21:20:11 -07:00
tt2468
19375921d3 EventHandler: Add media input events 2021-05-31 21:44:03 -07:00
tt2468
6c03b86514 EventHandler: Add Outputs events and other files 2021-05-31 18:51:56 -07:00
tt2468
9077ac911d EventHandler: Add some transition stuff
Transitions in OBS are implemented badly.
Not sure what will reasonably be possible with them.
I'll probably save implementing them for last
2021-05-14 03:59:00 -07:00
tt2468
becf604fc3 EventHandler: Add missing input event fields 2021-05-14 01:39:06 -07:00
tt2468
e4fbebb3b4 Utils: Always return a JSON object 2021-05-14 01:38:51 -07:00
tt2468
45d62e5ce0 EventHandler: General, Config, Scenes, Inputs 2021-05-14 01:13:27 -07:00
tt2468
c8eac893f2 Utils: Add more OBS utils 2021-05-14 01:13:09 -07:00
tt2468
ab12d5f39f EventHandler: Add some events 2021-05-13 19:11:19 -07:00
tt2468
f0d68f3eec WebSocketProtocol: Remove availableEvents from Hello
Not reasonably possible with the current structure of the `EventHandler`
2021-05-13 17:48:10 -07:00
tt2468
680b5c470e RequestHander: Add GetRequestList() 2021-05-13 17:46:05 -07:00
tt2468
11d28d17f1 EventHandler: Add EventSubscriptions enum 2021-05-13 17:34:57 -07:00
tt2468
4d6901c075 WebSocketServer: Add RPC version support to events 2021-05-10 22:55:48 -07:00
tt2468
921bc81a7b EventHandler: More stuff 2021-05-10 22:46:53 -07:00
tt2468
8b30d2e77e EventHandler: Add some calldata helpers 2021-05-10 18:34:27 -07:00
tt2468
902c9dfdc5 WebSocketServer: Don't try to send events if the server is not listening 2021-05-10 18:26:28 -07:00
tt2468
23b6ce607c Utils: Add some Obs helpers 2021-05-10 18:25:15 -07:00
tt2468
89046ccb1a EventHandler: Add handling of all frontent events we care about 2021-05-10 17:34:40 -07:00
tt2468
5157134b02 EventHandler: Add more code 2021-05-10 16:54:48 -07:00
tt2468
c0accd9cde base: Add EventHandler files 2021-05-10 15:48:41 -07:00
tt2468
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
tt2468
600505b60a Utils: Add Obs utils namespace 2021-05-08 00:54:35 -07:00
tt2468
8a18d3603c RequestStatus: Add a few items 2021-05-04 15:50:38 -07:00
tt2468
160ef4d771 RequestHandler: Add RequestBatch logic 2021-05-03 18:44:13 -07:00
tt2468
2aba810ce1 RequestHandler: Finish checks system and first request 2021-05-03 16:55:30 -07:00
tt2468
c2b717cabf RequestStatus: Put into namespace
Apparently this is supposed to help?
2021-05-03 13:43:59 -07:00
tt2468
807a1501b7 base: Refactor request stuff and finish more logic 2021-05-03 13:31:22 -07:00
tt2468
687f53bc6d plugin-macros: Include base.h directly (to avoid missing blog()) 2021-05-03 10:34:36 -07:00
tt2468
36af7f6f58 base: Lots of stuff, including RequestHandler progress 2021-05-02 19:48:44 -07:00
tt2468
04f7b33755 SettingsDialog: Add Identified column to session table 2021-04-30 11:24:09 -07:00
tt2468
997dc40d6c WebSocketProtocol: Fix compare (oops) 2021-04-30 10:46:53 -07:00
tt2468
7f503d846b WebSocketProtocol: Fix vector initialization 2021-04-30 10:42:53 -07:00
tt2468
51e7fdae9e SettingsDialog: Add debug setting hover text
Debug mode requires a restart of the websocket server by design.
However, to avoid interrupting connections, the websocket server is
not automatically restarted when the setting is changed
2021-04-30 10:27:41 -07:00
tt2468
df8ef87dc5 WebSocketServer: Add parts for availableRequests/availableEvents 2021-04-30 10:13:42 -07:00
tt2468
45367a7355 WebSocketProtocol: Session parameter stuff 2021-04-30 10:03:38 -07:00
tt2468
ffaac93ba6 WebSocketSession: Add mutex for operations which change session parameters 2021-04-30 08:56:08 -07:00
tt2468
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
tt2468
32758198ab WebSocketSession: Add refcount
Working towards fixing concurrency issues. Todo:

- Wait for refcount to be 0 before deleting object
- Use .at() instead of operator[] to prevent recreating deleted
sessions
- There was a third thing. Dont remember what it was
2021-04-29 22:11:24 -07:00
tt2468
e151a9a8db base: Use Unix EOL 2021-04-29 21:13:34 -07:00
tt2468
904e866a07 WebSocketProtocol: Delete left over log message 2021-04-29 21:10:19 -07:00
tt2468
09bfea0628 WebSocketProtocol: Add Identify logic (not tested well) 2021-04-29 20:37:28 -07:00
tt2468
f57d03e4bb WebSocketProtocol: Rename Process to ProcessMessage 2021-04-29 19:14:23 -07:00
tt2468
e0183d2f85 WebSocketServer: This *should* complete the functionality of WebSocketServer. 2021-04-29 19:03:32 -07:00
tt2468
ad8b13606f Base: Add WebSocketProtocol
Will be used to handle incoming websocket messages. Initially I was
going to handle messages within WebSocketServer, but the file is
starting to get very large and so it's only fair to split it up.
2021-04-29 10:52:29 -07:00
tt2468
44c5683ec4 WebSocketServer: Fix some bugs 2021-04-29 10:11:19 -07:00
tt2468
7c80a5d050 WebSocketServer: Add incoming and outgoing message logging and incrementing 2021-04-29 09:56:21 -07:00
tt2468
190d42fdf2 WebSocketServer: Initial onMessage handling 2021-04-29 09:42:22 -07:00
tt2468
724a63f1c8 WebSocketServer: Catch and ignore errors in Hello sending. 2021-04-29 09:14:35 -07:00
tt2468
561ba907d4 WebSocketServer: Ignore send errors 2021-04-29 09:09:20 -07:00
tt2468
ba710efe09 WebSocketServer: Include password in changed GetConnectString()
New format is `obswebsocket|ip:port|password`
2021-04-29 09:06:12 -07:00
tt2468
4028d42931 WebSocketServer: Only encode event once and when it's required 2021-04-29 08:52:40 -07:00
tt2468
d8e84321b1 WebSocketServer: Clarify logging 2021-04-29 08:34:50 -07:00
tt2468
1cee256cb3 WebSocketServer: Store debug setting 2021-04-29 08:24:27 -07:00
tt2468
fa259b43a9 WebSocketServer: Finish BroadcastEvent() 2021-04-28 22:52:19 -07:00
tt2468
b43fc4fec6 WebSocketServer: Make QObject again 2021-04-28 22:13:02 -07:00
tt2468
0370b5882d WebSocketServer: Finish GetConnectUrl() 2021-04-28 22:07:52 -07:00
tt2468
d1d5dd74ea WebSocketServer: Send hello in onOpen 2021-04-28 22:03:23 -07:00
tt2468
b0a594e509 WebSocketCloseCode: Add InvalidContentType 2021-04-28 20:54:31 -07:00
tt2468
c73f6608b9 Config: Add command line parameters to override port and password 2021-04-28 15:59:29 -07:00
tt2468
1dcf6460f1 Utils: Add Platform helpers 2021-04-28 14:24:05 -07:00
tt2468
af46271b27 WebSocketServer: Add some onOpen and onClose logic, make websocketpp logging mirror debug setting 2021-04-28 13:26:22 -07:00
tt2468
0be9174bb1 WebSocketServer: Don't call stop() on the server
For some reason I thought I was supposed to call it /shrug
2021-04-28 12:36:15 -07:00
tt2468
af7a539e84 Only stop server if its running 2021-04-28 12:20:56 -07:00
tt2468
c91b924f0e SettingsDialog: Server port had no logic for some reason. Also restart server if settings are changed 2021-04-28 12:18:46 -07:00
tt2468
a70e18a2bf WebSocketServer: Add some error handling 2021-04-28 12:09:12 -07:00
tt2468
fb01a28623 SettingsDialog: Add timer to constantly update session table 2021-04-28 11:56:41 -07:00
tt2468
aa241ecc9e base: Make sure config is saved on exit 2021-04-28 11:45:34 -07:00
tt2468
b53b40d9c8 base: Improve logging 2021-04-28 11:43:39 -07:00
tt2468
e2d837958f WebSocketServer: Fix shutdown order 2021-04-28 11:40:07 -07:00
tt2468
5348c80aa8 WebSocketServer: Add GetWebSocketSessions() logic 2021-04-28 11:28:07 -07:00
tt2468
3d43bd525b SettingsDialog: Fix datetime shit 2021-04-28 11:27:11 -07:00
tt2468
53e773b1a2 WebSocketSession: Add remoteAddress string 2021-04-28 11:23:12 -07:00
tt2468
11913dac76 WebSocketServer: Rename sessionDuration to connectedAt 2021-04-28 11:14:00 -07:00
tt2468
0af2724ee9 WebSocketSession: Add connectedAt 2021-04-28 11:12:53 -07:00
tt2468
1245958031 WebSocketSession: Add encoding 2021-04-28 10:41:51 -07:00
tt2468
948750da6a WebSocketServer: Start and stop 2021-04-28 10:27:32 -07:00
tt2468
0f7683af4e WebSocketSession: Add challenge var 2021-04-28 08:52:23 -07:00
tt2468
98bc18cedd utils: Create Utils namespace and add Crypto utils 2021-04-27 17:55:23 -07:00
tt2468
98ec9d01ac base: Dumb #include redefinitions 2021-04-27 16:45:44 -07:00
tt2468
d9ee288cf1 base: cmake is fucking retarded 2021-04-27 16:33:47 -07:00
tt2468
5d170d6bb3 WebSocketServer: Include WebSocketCloseCode 2021-04-27 15:29:09 -07:00
tt2468
08fda22d0f base: Include RPC version on load 2021-04-27 15:26:23 -07:00
tt2468
b61cf82e84 base: Shutdown websocket server on unload 2021-04-27 15:25:11 -07:00
tt2468
20de7409d8 base: Reset websocket server on unload 2021-04-27 15:21:30 -07:00
tt2468
9577382780 SettingsDialog: Fix log levels 2021-04-27 15:17:44 -07:00
tt2468
205fb75555 SettingsDialog: Add websocket session list logic 2021-04-27 15:16:53 -07:00
tt2468
8067cfb686 Base: Tons more shit 2021-04-27 14:52:48 -07:00
tt2468
fb22b31612 base: Add WebSocketSession 2021-04-27 14:52:04 -07:00
tt2468
fb8e520d10 utils: Create JsonUtils
Utility functions for converting from obs_data_t to json and back
2021-04-27 12:50:42 -07:00
tt2468
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
tt2468
a0162caad1 base: Add base RequestHandler and rpc files 2021-04-27 09:29:51 -07:00
tt2468
f0dfe72aca base: Add starting WebSocketServer files 2021-04-27 09:18:06 -07:00
tt2468
927806a432 SettingsDialog: Add translations to Session Table 2021-04-27 08:56:49 -07:00
tt2468
aa0256611b SettingsDialog: Enable grid layout and scaling 2021-04-27 08:46:34 -07:00
tt2468
41731f9d57 SettingsDialog: Add UI logic and start session table 2021-04-27 08:24:51 -07:00
tt2468
105229336e Config: Rename config section name 2021-04-26 20:55:50 -07:00
tt2468
6f2f207adc SettingsDialog: Add configs 2021-04-26 20:55:18 -07:00
tt2468
a8ca912044 generic: Add SettingsDialog and Config 2021-04-26 19:59:50 -07:00
tt2468
dd597f1ad6 everything: Massive amount of changes who knows 2021-04-26 08:46:11 -07:00
tt2468
f3d5cfbd18 Initial commit for attempted rewrite 2021-03-08 03:56:43 -08:00