mirror of
https://github.com/onyx-and-iris/voicemeeter-api-python.git
synced 2024-11-15 16:40:46 +00:00
observer example added
This commit is contained in:
parent
aa15aed615
commit
12a8f7d603
@ -23,24 +23,24 @@ class Parser:
|
|||||||
self.value = Combine(
|
self.value = Combine(
|
||||||
Optional("-") + Word(nums) + Optional(".") + Optional(Word(nums))
|
Optional("-") + Word(nums) + Optional(".") + Optional(Word(nums))
|
||||||
) | Group(OneOrMore(Word(alphanums)))
|
) | Group(OneOrMore(Word(alphanums)))
|
||||||
|
self.event = (
|
||||||
def parse(self, cmds):
|
|
||||||
event = (
|
|
||||||
self.kls
|
self.kls
|
||||||
+ self.token
|
+ self.token
|
||||||
+ self.param
|
+ self.param
|
||||||
+ Optional(self.token)
|
+ Optional(self.token)
|
||||||
+ Optional(self.value)
|
+ Optional(self.value)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def parse(self, cmds):
|
||||||
res = list()
|
res = list()
|
||||||
|
|
||||||
for cmd in cmds:
|
for cmd in cmds:
|
||||||
if len(event.parseString(cmd)) == 2:
|
if len(self.event.parseString(cmd)) == 2:
|
||||||
kls, param = event.parseString(cmd)
|
kls, param = self.event.parseString(cmd)
|
||||||
target = getattr(self.vm, kls[0])[int(kls[-1])]
|
target = getattr(self.vm, kls[0])[int(kls[-1])]
|
||||||
res.append(getattr(target, param))
|
res.append(getattr(target, param))
|
||||||
elif len(event.parseString(cmd)) == 3:
|
elif len(self.event.parseString(cmd)) == 3:
|
||||||
kls, param, val = event.parseString(cmd)
|
kls, param, val = self.event.parseString(cmd)
|
||||||
target = getattr(self.vm, kls[0])[int(kls[-1])]
|
target = getattr(self.vm, kls[0])[int(kls[-1])]
|
||||||
if "".join(val) in ["off", "on"]:
|
if "".join(val) in ["off", "on"]:
|
||||||
setattr(target, param, bool(["off", "on"].index("".join(val))))
|
setattr(target, param, bool(["off", "on"].index("".join(val))))
|
||||||
|
29
examples/observer/__main__.py
Normal file
29
examples/observer/__main__.py
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import voicemeeterlib
|
||||||
|
|
||||||
|
|
||||||
|
class Observer:
|
||||||
|
def __init__(self, vm):
|
||||||
|
self.vm = vm
|
||||||
|
|
||||||
|
def on_update(self, subject):
|
||||||
|
print(subject)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
with voicemeeterlib.api(kind_id) as vm:
|
||||||
|
obs = Observer(vm)
|
||||||
|
vm.subject.add(obs)
|
||||||
|
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
cmd = input("Press Return to exit\n")
|
||||||
|
if not cmd:
|
||||||
|
break
|
||||||
|
except KeyboardInterrupt as e:
|
||||||
|
SystemExit(e)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
kind_id = "banana"
|
||||||
|
|
||||||
|
main()
|
Loading…
Reference in New Issue
Block a user