diff --git a/.gitignore b/.gitignore index 56d4462..dd67b56 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ -# quick test -quick.py - # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] @@ -130,3 +127,7 @@ dmypy.json # Pyre type checker .pyre/ + +# test/config +quick.py +config.toml diff --git a/examples/obs/README.md b/examples/obs/README.md index a84c366..9cfab3a 100644 --- a/examples/obs/README.md +++ b/examples/obs/README.md @@ -1,19 +1,19 @@ ## Requirements - [OBS Studio](https://obsproject.com/) -- [OBS Websocket Plugin](https://obsproject.com/forum/resources/obs-websocket-remote-control-obs-studio-from-websockets.466/) -- [OBS Websocket Py](https://github.com/onyx-and-iris/obs-websocket-py) +- [OBS Websocket v5 Plugin](https://github.com/obsproject/obs-websocket/releases/tag/5.0.0) +- [OBS Python SDK for Websocket v5](https://github.com/onyx-and-iris/obs-websocket-py) ## About A simple demonstration showing how to sync OBS scene switches to Voicemeeter states. The script assumes you have connection info saved in -a config file named `config.ini` placed next to `__main__.py`. It also assumes you have scenes named `START` `BRB` `END` and `LIVE`. +a config file named `config.toml` placed next to `__main__.py`. It also assumes you have scenes named `START` `BRB` `END` and `LIVE`. -A valid `config.ini` file might look like this: +A valid `config.toml` file might look like this: -```ini +```toml [connection] -ip=localhost -port=4444 -password=mystrongpassword +host = "localhost" +port = 4455 +password = "mystrongpass" ``` diff --git a/examples/obs/__main__.py b/examples/obs/__main__.py index d74db44..9381c26 100644 --- a/examples/obs/__main__.py +++ b/examples/obs/__main__.py @@ -1,13 +1,6 @@ -import logging -import sys - +import obsstudio_sdk as obs import voicemeeterlib -logging.basicConfig(level=logging.INFO) - -sys.path.append("../") -from obswebsocket import events, obsws - def on_start(): vm.strip[0].mute = True @@ -38,8 +31,8 @@ def on_live(): vm.vban.instream[0].on = True -def on_switch(message): - scene = message.getSceneName() +def on_current_program_scene_changed(data): + scene = data.scene_name print(f"Switched to scene {scene}") match scene: @@ -55,10 +48,11 @@ def on_switch(message): pass -with voicemeeterlib.api("potato") as vm: - with obsws() as ws: - ws.register(on_switch, events.SwitchScenes) +if __name__ == "__main__": + with voicemeeterlib.api("potato") as vm: + cl = obs.EventClient() + cl.callback.register(on_current_program_scene_changed) - while cmd := input("Press to exit\n"): + while cmd := input(" to exit\n"): if not cmd: break diff --git a/examples/obs/setup.py b/examples/obs/setup.py new file mode 100644 index 0000000..7b58119 --- /dev/null +++ b/examples/obs/setup.py @@ -0,0 +1,7 @@ +from setuptools import setup + +setup( + name="obs", + description="OBS Example", + install_requires=["voicemeeter-api", "obsstudio-sdk"], +)