/usr/bin/zynspect is in zynjacku 6-4.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | #!/usr/bin/env python
import os
import sys
from distutils import sysconfig
old_path = sys.path
inplace_libs = os.path.join(os.path.dirname(sys.argv[0]), ".libs")
if os.access(inplace_libs, os.R_OK):
sys.path.append(inplace_libs)
try:
from zynworld import lv2
except Exception, e:
print "Failed to import zynjacku internal python modules"
print repr(e)
print "These directories were searched"
for path in sys.path:
print " " + path
sys.exit(1)
sys.path = old_path
def show_plugin_info(plugin):
print "Plugin: %s" % plugin.name
print "URI: %s" % plugin.uri
if plugin.microname != None:
print "Tiny name: %s" % plugin.microname
if plugin.maintainers:
print "Maintainers: %s" % plugin.maintainers
print "License: %s" % plugin.license
print "Classes: %s" % plugin.classes
print "Required features: %s" % list(plugin.requiredFeatures)
print "Optional features: %s" % list(plugin.optionalFeatures)
print "Binary: " + plugin.binary
print
if plugin.presets:
print "Presets:"
for preset in plugin.presets:
print " URI: " + preset
info = db.get_preset_info(plugin.uri, preset)
#print " " + info.name
print " Name: " + info.name
print " Port values:"
for port in info.ports:
print " %s: %s" % (port.symbol, port.value)
print
else:
print "No presets"
print
print "Ports:"
types = ["Audio", "Control", "Event", "Input", "Output", "String", "LarslMidi"]
for port in plugin.ports:
extra = []
for type in types:
if port.__dict__["is" + type]:
extra.append(type)
for sp in ["defaultValue", "minimum", "maximum", "microname"]:
if port.__dict__[sp] != None:
extra.append("%s=%s" % (sp, repr(port.__dict__[sp])))
if len(port.events):
s = list()
for evt in port.events:
if evt in lv2.event_type_names:
s.append(lv2.event_type_names[evt])
else:
s.append(evt)
extra.append("events=%s" % ",".join(s))
if len(port.properties):
s = list()
for prop in port.properties:
if prop in lv2.port_property_names:
s.append(lv2.port_property_names[prop])
else:
s.append(prop)
extra.append("properties=%s" % ",".join(s))
if len(port.contexts):
s = list()
for context in port.contexts:
if context in lv2.context_names:
s.append(lv2.context_names[context])
else:
s.append(context)
extra.append("contexts=%s" % ",".join(s))
print "%4s %-20s %-40s %s" % (port.index, port.symbol, port.name, ", ".join(extra))
splist = port.scalePoints
splist.sort(lambda x, y: cmp(x[1], y[1]))
if len(splist):
for sp in splist:
print " Scale point %s: %s" % (sp[1], sp[0])
#print port
print
if plugin.ui:
print "UI bundles:"
for ui_uri in plugin.ui:
print " " + ui_uri
ui = db.get_ui_info(plugin.uri, ui_uri)
print " Type: " + ui.type
print " Binary: " + ui.binary
print " Required features: " + repr(ui.requiredFeatures)
print " Optional features: " + repr(ui.optionalFeatures)
print
print
print "Sources:"
for source in plugin.sources:
print " " + source
print
def list_plugins(verbose):
plugins = db.getPluginList()
for uri in plugins:
if verbose:
plugin = db.getPluginInfo(uri)
if plugin == None:
continue
show_plugin_info(plugin)
else:
print uri
db = lv2.LV2DB()
if len(sys.argv) >= 2:
if sys.argv[1] == "dump":
list_plugins(True)
else:
uri = sys.argv[1]
plugin = db.getPluginInfo(uri)
if plugin == None:
print 'Plugin URI "%s" is unknown' % uri
sys.exit(1)
show_plugin_info(plugin)
else:
list_plugins(False)
|