Commit Graph

25 Commits

Author SHA1 Message Date
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
bd6c663775 Base: Add copyright header to source 2021-11-19 17:32:22 -08:00
tt2468
42c78f1831 Events: Prepare to add a few new OBS events
Pending PR merge and version release
2021-10-06 00:44:42 -07:00
tt2468
f0b207d021 Base: Add variable support to request batches + refactor
- Adds variables to execution types SERIAL_REALTIME and SERIAL_FRAME
- Pass by reference where copy is unnecessary
- Start WebSocket server after OBS finishes loading instead of on
plugin load
2021-10-01 17:34:09 -07:00
tt2468
e89c0c2b05 Base: More code cleanup and fixes 2021-09-04 10:47:51 -07:00
tt2468
7e1e1bc33c Base: Large plugin refactor
- Merge WebSocketProtocol into WebSocketServer
  - Having them separated was not doing anything productive
- Request: Move SessionPtr to RequestHandler
  - Less copying to do for batch requests
- Fully modularize EventHandler
  - Make BroadcastEvent a stored callback that WebSocketServer sets
- Return early on high volume events to avoid unnecessary compute
  - These events will only generate a json object when it is actually
needed
2021-09-04 10:04:00 -07:00
tt2468
26bef074ac EventHandler: Add (disabled) InputAudioMonitorTypeChanged event 2021-08-31 06:39:09 -07:00
tt2468
ade9653ed6 Base: Only include required util namespaces 2021-08-27 04:34:06 -07:00
tt2468
0547e1f2da Base: Lots of changes 2021-08-27 04:19:42 -07:00
tt2468
4d271da541 Base: Code cleanup and add some requests 2021-07-22 03:24:53 -07:00
tt2468
aaadf4d2ff EventHandler: Remove unnecessary calldata helper 2021-06-13 04:50:04 -07:00
tt2468
38c47bc76f EventHandler: Rename SceneListReindexed to SceneListChanged 2021-06-13 02:11:14 -07:00
tt2468
7716b30c27 EventHandler: Minor refactor and some event additions 2021-06-13 00:46:42 -07:00
tt2468
f608423045 EventHandler: Remove unnecessary CPU usage info 2021-06-12 22:59:47 -07:00
tt2468
ca26f679c8 EventHandler: Add ReplayBufferSaved 2021-06-12 20:34:24 -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
45d62e5ce0 EventHandler: General, Config, Scenes, Inputs 2021-05-14 01:13:27 -07:00
tt2468
ab12d5f39f EventHandler: Add some events 2021-05-13 19:11:19 -07:00
tt2468
11d28d17f1 EventHandler: Add EventSubscriptions enum 2021-05-13 17:34:57 -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
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