make changes to sockets.

replace black+isort with ruff

upd examples
This commit is contained in:
2025-01-17 02:51:17 +00:00
parent dad5ee9e9d
commit 16df0d559e
27 changed files with 786 additions and 695 deletions

View File

@@ -1,10 +1,10 @@
import logging
import tkinter as tk
from tkinter import ttk
import vban_cmd
logging.basicConfig(level=logging.DEBUG)
import tkinter as tk
from tkinter import ttk
class App(tk.Tk):
@@ -13,7 +13,7 @@ class App(tk.Tk):
def __init__(self, vban):
super().__init__()
self.vban = vban
self.title(f"{vban} - version {vban.version}")
self.title(f'{vban} - version {vban.version}')
self.vban.observer.add(self.on_ldirty)
# create widget variables
@@ -24,10 +24,10 @@ class App(tk.Tk):
# initialize style table
self.style = ttk.Style()
self.style.theme_use("clam")
self.style.theme_use('clam')
self.style.configure(
"Mute.TButton",
foreground="#cd5c5c" if vban.strip[self.INDEX].mute else "#5a5a5a",
'Mute.TButton',
foreground='#cd5c5c' if vban.strip[self.INDEX].mute else '#5a5a5a',
)
# create labelframe and grid it onto the mainframe
@@ -39,7 +39,7 @@ class App(tk.Tk):
self.labelframe,
from_=12,
to_=-60,
orient="vertical",
orient='vertical',
variable=self.slider_var,
command=lambda arg: self.on_slider_move(arg),
)
@@ -47,15 +47,15 @@ class App(tk.Tk):
column=0,
row=0,
)
slider.bind("<Double-Button-1>", self.on_button_double_click)
slider.bind('<Double-Button-1>', self.on_button_double_click)
# create level meter and grid it onto the labelframe
level_meter = ttk.Progressbar(
self.labelframe,
orient="vertical",
orient='vertical',
variable=self.meter_var,
maximum=72,
mode="determinate",
mode='determinate',
)
level_meter.grid(column=1, row=0)
@@ -66,8 +66,8 @@ class App(tk.Tk):
# create button and grid it onto the labelframe
button = ttk.Button(
self.labelframe,
text="Mute",
style="Mute.TButton",
text='Mute',
style='Mute.TButton',
command=lambda: self.on_button_press(),
)
button.grid(column=0, row=2, columnspan=2, padx=1, pady=2)
@@ -83,7 +83,7 @@ class App(tk.Tk):
self.button_var.set(not self.button_var.get())
self.vban.strip[self.INDEX].mute = self.button_var.get()
self.style.configure(
"Mute.TButton", foreground="#cd5c5c" if self.button_var.get() else "#5a5a5a"
'Mute.TButton', foreground='#cd5c5c' if self.button_var.get() else '#5a5a5a'
)
def on_button_double_click(self, e):
@@ -100,10 +100,10 @@ class App(tk.Tk):
def main():
with vban_cmd.api("banana", ldirty=True) as vban:
with vban_cmd.api('banana', ldirty=True) as vban:
app = App(vban)
app.mainloop()
if __name__ == "__main__":
if __name__ == '__main__':
main()

View File

@@ -1,4 +1,4 @@
import time
import threading
from logging import config
import obsws_python as obsws
@@ -7,85 +7,98 @@ import vban_cmd
config.dictConfig(
{
"version": 1,
"formatters": {
"standard": {
"format": "%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s"
'version': 1,
'formatters': {
'standard': {
'format': '%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s'
}
},
"handlers": {
"stream": {
"level": "DEBUG",
"class": "logging.StreamHandler",
"formatter": "standard",
'handlers': {
'stream': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'standard',
}
},
"loggers": {"vban_cmd.iremote": {"handlers": ["stream"], "level": "DEBUG"}},
'loggers': {
'vban_cmd.iremote': {
'handlers': ['stream'],
'level': 'DEBUG',
'propagate': False,
}
},
'root': {'handlers': ['stream'], 'level': 'WARNING'},
}
)
class Observer:
def __init__(self, vban):
self.vban = vban
self.client = obsws.EventClient()
self.client.callback.register(
def __init__(self, vban, stop_event):
self._vban = vban
self._stop_event = stop_event
self._client = obsws.EventClient()
self._client.callback.register(
(
self.on_current_program_scene_changed,
self.on_exit_started,
)
)
self.is_running = True
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, exc_traceback):
self._client.disconnect()
def on_start(self):
self.vban.strip[0].mute = True
self.vban.strip[1].B1 = True
self.vban.strip[2].B2 = True
self._vban.strip[0].mute = True
self._vban.strip[1].B1 = True
self._vban.strip[2].B2 = True
def on_brb(self):
self.vban.strip[7].fadeto(0, 500)
self.vban.bus[0].mute = True
self._vban.strip[7].fadeto(0, 500)
self._vban.bus[0].mute = True
def on_end(self):
self.vban.apply(
self._vban.apply(
{
"strip-0": {"mute": True},
"strip-1": {"mute": True, "B1": False},
"strip-2": {"mute": True, "B1": False},
'strip-0': {'mute': True},
'strip-1': {'mute': True, 'B1': False},
'strip-2': {'mute': True, 'B1': False},
}
)
def on_live(self):
self.vban.strip[0].mute = False
self.vban.strip[7].fadeto(-6, 500)
self.vban.strip[7].A3 = True
self._vban.strip[0].mute = False
self._vban.strip[7].fadeto(-6, 500)
self._vban.strip[7].A3 = True
def on_current_program_scene_changed(self, data):
def fget(scene):
run = {
"START": self.on_start,
"BRB": self.on_brb,
"END": self.on_end,
"LIVE": self.on_live,
}
return run.get(scene)
scene = data.scene_name
print(f"Switched to scene {scene}")
if fn := fget(scene):
fn()
print(f'Switched to scene {scene}')
match scene:
case 'START':
self.on_start()
case 'BRB':
self.on_brb()
case 'END':
self.on_end()
case 'LIVE':
self.on_live()
def on_exit_started(self, _):
self.client.unsubscribe()
self.is_running = False
self._stop_event.set()
def main():
with vban_cmd.api("potato") as vban:
observer = Observer(vban)
while observer.is_running:
time.sleep(0.1)
KIND_ID = 'potato'
with vban_cmd.api(KIND_ID) as vban:
stop_event = threading.Event()
with Observer(vban, stop_event):
stop_event.wait()
if __name__ == "__main__":
if __name__ == '__main__':
main()

View File

@@ -1,7 +1,7 @@
from setuptools import setup
setup(
name="obs",
description="OBS Example",
install_requires=["obsws-python"],
name='obs',
description='OBS Example',
install_requires=['obsws-python'],
)

View File

@@ -13,23 +13,23 @@ class App:
# define an 'on_update' callback function to receive event updates
def on_update(self, event):
if event == "pdirty":
print("pdirty!")
elif event == "ldirty":
if event == 'pdirty':
print('pdirty!')
elif event == 'ldirty':
for bus in self.vban.bus:
if bus.levels.isdirty:
print(bus, bus.levels.all)
def main():
KIND_ID = "banana"
KIND_ID = 'banana'
with vban_cmd.api(KIND_ID, pdirty=True, ldirty=True) as vban:
App(vban)
while cmd := input("Press <Enter> to exit\n"):
while _ := input('Press <Enter> to exit\n'):
pass
if __name__ == "__main__":
if __name__ == '__main__':
main()