tt2468
d375bbc98b
Utils::Platform: Refactor GetLocalAddress()
...
It was pointed out that the existing functionality was not effective
at filtering out invalid interfaces, so we add a priority system
to try harder at finding a valid address.
2021-06-05 23:39:06 -07:00
tt2468
1ecf1e5dfd
SettingsDialog: Log when restart is required
2021-06-05 23:09:02 -07:00
tt2468
e709d3fad5
SettingsDialog: Fix build (oops)
2021-06-05 23:07:47 -07:00
tt2468
a7c4f98ffa
SettingsDialog: Add tooltip icon to debug checkbox
2021-06-05 23:06:36 -07:00
tt2468
3d0ba91ff2
SettingsDialog: Restart websocket server if debug mode changed
...
The functionality of not reloading the server when debug mode is
changed I determined was too confusing to use considering the
benefit that it provides by not reloading the websocket server.
It is technically possible to set debug mode to the server while
it is running, however the implementation would somewhat dirty the
UI code, so I do not feel comfortable doing it at this point.
2021-06-05 22:23:57 -07:00
tt2468
f0c3bb2c14
Config: Don't persist debug mode to config
...
A request from the OBS developers. Debug mode tends to be enabled,
then not remembered to be disabled, leading to logs that are both
long and difficult to read. In some cases, the OBS logviewer may
noticeably lock up the UI just trying to parse the long log file.
2021-06-05 22:19:39 -07:00
tt2468
81636dcbfa
SettingsDialog: Show confirmation when video is active
...
Show a confirmation dialog when the Show Connect Info button is
clicked and video is active, to prevent users from
unintentionally showing sensitive information while live.
2021-06-05 21:38:16 -07:00
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