mirror of
https://github.com/onyx-and-iris/obsws-python.git
synced 2024-11-22 12:50:53 +00:00
levels example added
This commit is contained in:
parent
d4ae72dee5
commit
a7d53dce74
43
examples/levels/__main__.py
Normal file
43
examples/levels/__main__.py
Normal file
@ -0,0 +1,43 @@
|
||||
from enum import IntEnum
|
||||
from math import log
|
||||
|
||||
import obsws_python as obs
|
||||
|
||||
LEVELTYPE = IntEnum(
|
||||
"LEVELTYPE",
|
||||
"VU POSTFADER PREFADER",
|
||||
start=0,
|
||||
)
|
||||
|
||||
|
||||
def on_input_mute_state_changed(data):
|
||||
"""The current program scene has changed."""
|
||||
print(f"{data.input_name} mute toggled")
|
||||
|
||||
|
||||
def on_input_volume_meters(data):
|
||||
def fget(x):
|
||||
return round(20 * log(x, 10), 1) if x > 0 else -200.0
|
||||
|
||||
for device in data.inputs:
|
||||
name = device["inputName"]
|
||||
if name == INPUT_DEVICE and device["inputLevelsMul"]:
|
||||
left, right = device["inputLevelsMul"]
|
||||
print(
|
||||
f"{name} [L: {fget(left[LEVELTYPE.POSTFADER])}, R: {fget(right[LEVELTYPE.POSTFADER])}]",
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
client = obs.EventClient(subs=(obs.Subs.LOW_VOLUME | obs.Subs.INPUTVOLUMEMETERS))
|
||||
client.callback.register([on_input_volume_meters, on_input_mute_state_changed])
|
||||
|
||||
while cmd := input("<Enter> to exit>\n"):
|
||||
if not cmd:
|
||||
break
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
INPUT_DEVICE = "Desktop Audio"
|
||||
|
||||
main()
|
Loading…
Reference in New Issue
Block a user