فهرست منبع

added example how to connect ports

Fabian Peter Hammerle 9 سال پیش
والد
کامیت
ba4ffd7a34
1فایلهای تغییر یافته به همراه51 افزوده شده و 0 حذف شده
  1. 51 0
      examples/connect-ports.py

+ 51 - 0
examples/connect-ports.py

@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+# PYTHON_ARGCOMPLETE_OK
+
+import sys
+import jack
+import random
+import argparse
+
+def run():
+
+    client = jack.Client("connect test");
+    client.activate();
+
+    print("client name: " + client.get_name())
+
+    midi_ports = [p for p in client.get_ports() if 'midi' in p.get_type()]
+    source_ports = [p for p in midi_ports if p.is_output()]
+    target_ports = [p for p in midi_ports if p.is_input()]
+
+    source_port = random.choice(source_ports)
+    target_port = random.choice(target_ports)
+
+    print(source_port)
+    print(target_port)
+
+    try:
+        client.connect(source_port, target_port)
+    except jack.ConnectionExists:
+        print('ports already connected')
+
+def _init_argparser():
+
+    argparser = argparse.ArgumentParser(description = None)
+    return argparser
+
+def main(argv):
+
+    argparser = _init_argparser()
+    try:
+        import argcomplete
+        argcomplete.autocomplete(argparser)
+    except ImportError:
+        pass
+    args = argparser.parse_args(argv)
+
+    run(**vars(args))
+
+    return 0
+
+if __name__ == "__main__":
+    sys.exit(main(sys.argv[1:]))