From 12a8f7d60351676d52eae6686a30ebd8ba2c3b3a Mon Sep 17 00:00:00 2001 From: onyx-and-iris <75868496+onyx-and-iris@users.noreply.github.com> Date: Sun, 26 Jun 2022 02:07:37 +0100 Subject: [PATCH] observer example added --- examples/dsl/__main__.py | 14 +++++++------- examples/observer/__main__.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 7 deletions(-) create mode 100644 examples/observer/__main__.py diff --git a/examples/dsl/__main__.py b/examples/dsl/__main__.py index 19427cc..a737db3 100644 --- a/examples/dsl/__main__.py +++ b/examples/dsl/__main__.py @@ -23,24 +23,24 @@ class Parser: self.value = Combine( Optional("-") + Word(nums) + Optional(".") + Optional(Word(nums)) ) | Group(OneOrMore(Word(alphanums))) - - def parse(self, cmds): - event = ( + self.event = ( self.kls + self.token + self.param + Optional(self.token) + Optional(self.value) ) + + def parse(self, cmds): res = list() for cmd in cmds: - if len(event.parseString(cmd)) == 2: - kls, param = event.parseString(cmd) + if len(self.event.parseString(cmd)) == 2: + kls, param = self.event.parseString(cmd) target = getattr(self.vm, kls[0])[int(kls[-1])] res.append(getattr(target, param)) - elif len(event.parseString(cmd)) == 3: - kls, param, val = event.parseString(cmd) + elif len(self.event.parseString(cmd)) == 3: + kls, param, val = self.event.parseString(cmd) target = getattr(self.vm, kls[0])[int(kls[-1])] if "".join(val) in ["off", "on"]: setattr(target, param, bool(["off", "on"].index("".join(val)))) diff --git a/examples/observer/__main__.py b/examples/observer/__main__.py new file mode 100644 index 0000000..e706535 --- /dev/null +++ b/examples/observer/__main__.py @@ -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()