Zingabopp / OBSControl

A Beat Saber mod to control and monitor OBS in-game.
Other
44 stars 4 forks source link

StreamLabs OBS Support #26

Open Zingabopp opened 3 years ago

Zingabopp commented 3 years ago

StreamLabs OBS has a different websocket implementation and is not currently supported. This could possibly be added in the future (especially if someone wants to start on it before I do).

Ideally, the OBS connection would be abstracted out to an interface(s). The mod itself would only use properties/methods available from the interface(s) and not deal with the concrete OBS classes directly at all except to instantiate them. The user can choose OBS or SLOBS in the config.

It seems like SLOBS doesn't have nearly as powerful of a websocket API as the OBS plugin, so I'm not sure how much feature parity there would be.

Gordin commented 3 years ago

I had a quick look at the SLOBS documentation to see if the Audio Source switching stuff would be possible, and I think it might be... maybe... I can't tell because the relevant functions seem to be there, but the settings you would have to get/set are just using a string dictionary and I have no idea if the necessary settings are in there... Also, right now in the Audio Device stuff works with a mapping from sourceKeys to sourceNames and device_ids, but in the SLOBS API I didn't see any sourceKeys, so there might be a bigger rewrite needed than to just extract the OBS calls. If that mapping isn't there, the plugin would break if someone decides to rename any of their sources in OBS (or at least OBSControl wouldn't know which device to set). I'm really not sure about any of this though, because other than a handful of examples the SLOBS documentation doesn't seem to document anything more than "this needs a string Dictionary"...