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