debian/0000755000000000000000000000000011755002100007155 5ustar debian/compat0000644000000000000000000000000211570517210010363 0ustar 7 debian/patches/0000755000000000000000000000000011755001430010611 5ustar debian/patches/2006-lv2core_to_lv2.patch0000644000000000000000000000074011755001473015070 0ustar Descriotion: Port to the LV2's first unified spec. Author: Alessio Treglia Forwarded: no --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- zynjacku.orig/configure.ac +++ zynjacku/configure.ac @@ -40,7 +40,7 @@ AC_PROG_LIBTOOL # Checks for libraries. -PKG_CHECK_MODULES(LV2, lv2core >= 1) +PKG_CHECK_MODULES(LV2, lv2 >= 1) PKG_CHECK_MODULES(GTK, gtk+-2.0) PKG_CHECK_MODULES(PYGTK, pygtk-2.0) PKG_CHECK_MODULES(JACK, jack) debian/patches/1004-lashd_not_found.patch0000644000000000000000000000601711570517210015371 0ustar Description: When pylash is available and lashd isn't, the program fails to run and returns a message similar to the following one: . zynalessio@alessio-laptop:~$ zynjacku Attempting to auto-start LASH server lash_dbus_service_connect_handler: Failed to connect to LASH server: The \ name org.nongnu.LASH was not provided by any .service files Traceback (most recent call last): File "/usr/bin/zynjacku", line 371, in main() File "/usr/bin/zynjacku", line 357, in main print "Successfully connected to LASH server at " + \ lash.lash_get_server_name(lash_client) TypeError: cannot concatenate 'str' and 'NoneType' objects Author: Alessio Treglia Forwarded: no --- lv2rack | 13 +++++-------- zynjacku | 13 +++++-------- 2 files changed, 10 insertions(+), 16 deletions(-) --- zynjacku.orig/zynjacku +++ zynjacku/zynjacku @@ -344,17 +344,14 @@ def main(): if lash: # If LASH python bindings are available # sys.argv is modified by this call - lash_client = lash.init(sys.argv, "zynjacku", lash.LASH_Config_File) + try: + lash_client = lash.init(sys.argv, "zynjacku", lash.LASH_Config_File) + print "Successfully connected to LASH server at " + lash.lash_get_server_name(lash_client) + except: + lash_client = None else: lash_client = None - # TODO: generic argument processing goes here - - # Yeah , this sounds stupid, we connected earlier, but we dont want to show this if we got --help option - # This issue should be fixed in pylash, there is a reason for having two functions for initialization after all - if lash_client: - print "Successfully connected to LASH server at " + lash.lash_get_server_name(lash_client) - if len(sys.argv) == 2 and sys.argv[1][-9:] != ".zynjacku": host = ZynjackuHostOne(program_data, client_name, sys.argv[1]) else: --- zynjacku.orig/lv2rack +++ zynjacku/lv2rack @@ -309,17 +309,14 @@ def main(): if lash: # If LASH python bindings are available # sys.argv is modified by this call - lash_client = lash.init(sys.argv, "lv2rack", lash.LASH_Config_File) + try: + lash_client = lash.init(sys.argv, "lv2rack", lash.LASH_Config_File) + print "Successfully connected to LASH server at " + lash.lash_get_server_name(lash_client) + except: + lash_client = None else: lash_client = None - # TODO: generic argument processing goes here - - # Yeah , this sounds stupid, we connected earlier, but we dont want to show this if we got --help option - # This issue should be fixed in pylash, there is a reason for having two functions for initialization after all - if lash_client: - print "Successfully connected to LASH server at " + lash.lash_get_server_name(lash_client) - if len(sys.argv) == 2 and sys.argv[1][-8:] != ".lv2rack": host = lv2rack_single(program_data, client_name, sys.argv[1]) else: debian/patches/1006-pygtk2_to_pygi.patch0000644000000000000000000011776311755001151015207 0ustar --- zynworld/host.py | 386 +++++++++++++++++++++++++++---------------------------- 1 file changed, 194 insertions(+), 192 deletions(-) --- zynjacku.orig/zynworld/host.py +++ zynjacku/zynworld/host.py @@ -20,8 +20,10 @@ import os import sys -import gtk -import gobject +from gi.repository import Gtk +from gi.repository import GObject +from gi.repository import Gdk +from gi.repository import GdkPixbuf import re import time import xml.dom.minidom @@ -126,7 +128,7 @@ def make_knobshape(gaps, gapdepth): def hls_to_color(h,l,s): r,g,b = hls_to_rgb(h,l,s) - return gtk.gdk.color_parse('#%04X%04X%04X' % (int(r*65535),int(g*65535),int(b*65535))) + return Gdk.color_parse('#%04X%04X%04X' % (int(r*65535),int(g*65535),int(b*65535))) def color_to_hls(color): string = color.to_string() @@ -150,12 +152,12 @@ LEGEND_LED_DOTS = 'led-dots' # leds arou class KnobTooltip: def __init__(self): - self.tooltip_window = gtk.Window(gtk.WINDOW_POPUP) - self.tooltip = gtk.Label() - #self.tooltip.modify_fg(gtk.STATE_NORMAL, hls_to_color(0.0, 1.0, 0.0)) + self.tooltip_window = Gtk.Window(Gtk.WindowType.POPUP) + self.tooltip = Gtk.Label() + #self.tooltip.modify_fg(Gtk.StateType.NORMAL, hls_to_color(0.0, 1.0, 0.0)) self.tooltip_timeout = None - vbox = gtk.VBox() - vbox2 = gtk.VBox() + vbox = Gtk.VBox() + vbox2 = Gtk.VBox() vbox2.add(self.tooltip) vbox2.set_border_width(2) vbox.add(vbox2) @@ -175,8 +177,8 @@ class KnobTooltip: self.tooltip_window.window.invalidate_rect((0,0,rc.width,rc.height), False) self.tooltip.set_text(text) if self.tooltip_timeout: - gobject.source_remove(self.tooltip_timeout) - self.tooltip_timeout = gobject.timeout_add(500, self.hide_tooltip) + GObject.source_remove(self.tooltip_timeout) + self.tooltip_timeout = GObject.timeout_add(500, self.hide_tooltip) def hide_tooltip(self): self.tooltip_window.hide_all() @@ -202,9 +204,9 @@ def get_knob_tooltip(): knob_tooltip = KnobTooltip() return knob_tooltip -class Knob(gtk.VBox): +class Knob(Gtk.VBox): def __init__(self): - gtk.VBox.__init__(self) + GObject.GObject.__init__(self) self.gapdepth = 4 self.gaps = 10 self.value = 0.0 @@ -253,7 +255,7 @@ class Knob(gtk.VBox): def on_realize(self, widget): self.root = self.get_toplevel() - self.root.add_events(gtk.gdk.ALL_EVENTS_MASK) + self.root.add_events(Gdk.EventMask.ALL_EVENTS_MASK) self.root.connect('scroll-event', self.on_mousewheel) self.root.connect('button-press-event', self.on_left_down) self.root.connect('button-release-event', self.on_left_up) @@ -393,7 +395,7 @@ class Knob(gtk.VBox): rc = self.get_allocation() range = self.max_value - self.min_value scale = rc.height - if event.state & gtk.gdk.SHIFT_MASK: + if event.get_state() & Gdk.EventMask.SHIFT_MASK: scale = rc.height*8 value = self.startvalue - ((y - self.start)*range)/scale oldval = self.value @@ -415,14 +417,14 @@ class Knob(gtk.VBox): return range = self.max_value - self.min_value minstep = 1.0 / (10**self.digits) - if event.state & (gtk.gdk.SHIFT_MASK | gtk.gdk.BUTTON1_MASK): + if event.get_state() & (Gdk.EventMask.SHIFT_MASK | Gdk.EventMask.BUTTON1_MASK): step = minstep else: step = max(self.quantize_value(range/25.0), minstep) value = self.value - if event.direction == gtk.gdk.SCROLL_UP: + if event.direction == Gdk.ScrollDirection.UP: value += step - elif event.direction == gtk.gdk.SCROLL_DOWN: + elif event.direction == Gdk.ScrollDirection.DOWN: value -= step self.set_value(value) self.show_tooltip() @@ -438,7 +440,7 @@ class Knob(gtk.VBox): def draw(self, ctx): if not self.legend_hls: - self.legend_hls = color_to_hls(self.style.fg[gtk.STATE_NORMAL]) + self.legend_hls = color_to_hls(self.style.fg[Gtk.StateType.NORMAL]) if not self.knobshape: self.update_knobshape() @@ -634,9 +636,9 @@ class Knob(gtk.VBox): self.draw(self.context) return False -class DecoBox(gtk.VBox): +class DecoBox(Gtk.VBox): def __init__(self): - gtk.VBox.__init__(self) + GObject.GObject.__init__(self) self.arc1 = 0.0 self.arc2 = None self.arc3 = None @@ -652,10 +654,10 @@ class DecoBox(gtk.VBox): self.alpha = 1.0 self.set_app_paintable(True) self.connect('expose-event', self.on_expose) - self.vbox = gtk.VBox() - hbox = gtk.HBox() - self.pack_start(hbox, expand=False) - self.pack_start(self.vbox) + self.vbox = Gtk.VBox() + hbox = Gtk.HBox() + self.pack_start(hbox, False, True, 0) + self.pack_start(self.vbox, True, True, 0) self.tabbox = hbox self.set_roundness(6, 6, 6, 6) @@ -786,35 +788,35 @@ class DecoBox(gtk.VBox): self.draw(self.context) return False -class midi_led(gtk.EventBox): +class midi_led(Gtk.EventBox): def __init__(self): - gtk.EventBox.__init__(self) - self.label = gtk.Label() - #attrs = pango.AttrList() - #font_attr = pango.AttrFamily("monospace") + GObject.GObject.__init__(self) + self.label = Gtk.Label() + #attrs = Pango.AttrList() + #font_attr = Pango.AttrFamily("monospace") #attrs.insert(font_attr) #self.label.set_attributes(attrs) self.add(self.label) def set(self, active): if active: - self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(0, int(65535 * 0.5), 0)) + self.modify_bg(Gtk.StateType.NORMAL, Gdk.Color(0, int(65535 * 0.5), 0)) else: - self.modify_bg(gtk.STATE_NORMAL, self.label.style.bg[gtk.STATE_NORMAL]) + self.modify_bg(Gtk.StateType.NORMAL, self.label.style.bg[Gtk.StateType.NORMAL]) self.label.set_text(" MIDI ") -class curve_widget(gtk.DrawingArea): +class curve_widget(Gtk.DrawingArea): def __init__(self, min_value, max_value, value): - gtk.DrawingArea.__init__(self) + GObject.GObject.__init__(self) self.connect("expose-event", self.on_expose) self.connect("size-request", self.on_size_request) self.connect("size_allocate", self.on_size_allocate) - self.color_bg = gtk.gdk.Color(0,0,0) - self.color_value = gtk.gdk.Color(int(65535 * 0.8), int(65535 * 0.7), 0) - self.color_mark = gtk.gdk.Color(int(65535 * 0.2), int(65535 * 0.2), int(65535 * 0.2)) + self.color_bg = Gdk.Color(0,0,0) + self.color_value = Gdk.Color(int(65535 * 0.8), int(65535 * 0.7), 0) + self.color_mark = Gdk.Color(int(65535 * 0.2), int(65535 * 0.2), int(65535 * 0.2)) self.width = 0 self.height = 0 self.margin = 5 @@ -1006,9 +1008,9 @@ class midiccmap: self.map.connect("cc-no-assigned", self.on_cc_no_assigned) self.map.connect("cc-value-changed", self.on_cc_map_value_changed) - self.window = gtk.Dialog( - flags=gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, - buttons=(gtk.STOCK_UNDO, gtk.RESPONSE_NONE, gtk.STOCK_DELETE, gtk.RESPONSE_NO, gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) + self.window = Gtk.Dialog( + flags=Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, + buttons=(Gtk.STOCK_UNDO, Gtk.ResponseType.NONE, Gtk.STOCK_DELETE, Gtk.ResponseType.NO, Gtk.STOCK_CANCEL, Gtk.ResponseType.REJECT, Gtk.STOCK_OK, Gtk.ResponseType.ACCEPT)) # the grand vbox vbox = self.window.vbox @@ -1016,113 +1018,113 @@ class midiccmap: #self.window.add(vbox) # top hbox - hbox_top = gtk.HBox() + hbox_top = Gtk.HBox() hbox_top.set_spacing(10) - align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) + align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) align.set_padding(10, 0, 10, 10) align.add(hbox_top) vbox.pack_start(align, False) cc_no = map.get_cc_no() if cc_no == -1: - self.adj_cc_no = gtk.Adjustment(-1, -1, 255, 1, 19) + self.adj_cc_no = Gtk.Adjustment(-1, -1, 255, 1, 19) else: - self.adj_cc_no = gtk.Adjustment(cc_no, 0, 255, 1, 19) + self.adj_cc_no = Gtk.Adjustment(cc_no, 0, 255, 1, 19) self.adj_cc_no.connect("value-changed", self.on_cc_no_changed) - cc_no = gtk.SpinButton(self.adj_cc_no, 0.0, 0) - cc_no_box = gtk.HBox() - cc_no_box.pack_start(gtk.Label("MIDI CC #")) - cc_no_box.pack_start(cc_no) + cc_no = Gtk.SpinButton(self.adj_cc_no, 0.0, 0) + cc_no_box = Gtk.HBox() + cc_no_box.pack_start(Gtk.Label("MIDI CC #"), True, True, 0) + cc_no_box.pack_start(cc_no, True, True, 0) hbox_top.pack_start(cc_no_box, False) - hbox_top.pack_start(gtk.Label("Show parameter range:"), False) - button = gtk.RadioButton(None, "mapped") + hbox_top.pack_start(Gtk.Label("Show parameter range:"), False) + button = Gtk.RadioButton(None, "mapped") button.connect("toggled", self.on_set_full_range, False) hbox_top.pack_start(button, False) - button = gtk.RadioButton(button, "full") + button = Gtk.RadioButton(button, "full") button.connect("toggled", self.on_set_full_range, True) hbox_top.pack_start(button, False) # middle hbox - hbox_middle = gtk.HBox() + hbox_middle = Gtk.HBox() hbox_middle.set_spacing(10) - align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) + align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) align.set_padding(0, 0, 10, 10) align.add(hbox_middle) - vbox.pack_start(align) + vbox.pack_start(align, True, True, 0) - vbox_left = gtk.VBox() + vbox_left = Gtk.VBox() vbox_left.set_spacing(5) hbox_middle.pack_start(vbox_left, False) - self.ls = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gtk.Adjustment, bool, str) + self.ls = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING, Gtk.Adjustment, bool, str) - r = gtk.CellRendererText() - c1 = gtk.TreeViewColumn("From", r, text=0) - c2 = gtk.TreeViewColumn("->", r, text=4) - c3 = gtk.TreeViewColumn("To", r, text=1) + r = Gtk.CellRendererText() + c1 = Gtk.TreeViewColumn("From", r, text=0) + c2 = Gtk.TreeViewColumn("->", r, text=4) + c3 = Gtk.TreeViewColumn("To", r, text=1) - self.tv = gtk.TreeView(self.ls) + self.tv = Gtk.TreeView(self.ls) self.tv.set_headers_visible(False) self.tv.append_column(c1) self.tv.append_column(c2) self.tv.append_column(c3) - tv_box = gtk.VBox() + tv_box = Gtk.VBox() - align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) + align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) align.set_padding(3, 3, 10, 10) - align.add(gtk.Label("Control points")) + align.add(Gtk.Label(label="Control points")) tv_box.pack_start(align, False) - sw = gtk.ScrolledWindow() - sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + sw = Gtk.ScrolledWindow() + sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) sw.add(self.tv) - tv_box.pack_start(sw) + tv_box.pack_start(sw, True, True, 0) vbox_left.pack_start(tv_box, True, True) - self.cc_value_delete_button = gtk.Button("Remove") + self.cc_value_delete_button = Gtk.Button("Remove") self.cc_value_delete_button.connect("clicked", self.on_button_clicked) vbox_left.pack_start(self.cc_value_delete_button, False) - self.cc_value_new_button = gtk.Button("New") + self.cc_value_new_button = Gtk.Button("New") self.cc_value_new_button.connect("clicked", self.on_button_clicked) vbox_left.pack_start(self.cc_value_new_button, False) - self.cc_value_change_button = gtk.Button("Change CC value") + self.cc_value_change_button = Gtk.Button("Change CC value") self.cc_value_change_button.connect("clicked", self.on_button_clicked) vbox_left.pack_start(self.cc_value_change_button, False) self.curve = curve_widget(min_value, max_value, value) self.curve.set_size_request(250,250) - frame = gtk.Frame() - frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT) + frame = Gtk.Frame() + frame.set_shadow_type(Gtk.ShadowType.ETCHED_OUT) frame.add(self.curve) hbox_middle.pack_start(frame, True, True) # bottom hbox - hbox_bottom = gtk.HBox() + hbox_bottom = Gtk.HBox() hbox_bottom.set_spacing(10) - align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) + align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) align.set_padding(0, 2, 10, 10) align.add(hbox_bottom) vbox.pack_start(align, False) - self.adj_cc_value = gtk.Adjustment(17, 0, 127, 1, 10) + self.adj_cc_value = Gtk.Adjustment(17, 0, 127, 1, 10) self.adj_cc_value.connect("value-changed", self.on_cc_value_changed) - self.cc_value = gtk.SpinButton(None, 0.0, 0) + self.cc_value = Gtk.SpinButton(None, 0.0, 0) self.cc_value.set_adjustment(self.adj_cc_value) - label = gtk.Label("CC value") + label = Gtk.Label(label="CC value") hbox_bottom.pack_start(label, False) hbox_bottom.pack_start(self.cc_value, False) - hbox_bottom.pack_start(gtk.Label("-> %s" % self.parameter_name), False) + hbox_bottom.pack_start(Gtk.Label("-> %s" % self.parameter_name), False) self.value_knob = Knob() hbox_bottom.pack_start(self.value_knob, False) - self.value_spin = gtk.SpinButton(digits=2) + self.value_spin = Gtk.SpinButton(digits=2) hbox_bottom.pack_start(self.value_spin, False) self.floating_adj = self.create_value_adjustment(value) @@ -1142,7 +1144,7 @@ class midiccmap: def create_value_adjustment(self, value): range = self.max_value - self.min_value - adj = gtk.Adjustment(value, self.min_value, self.max_value, range / 100, range / 5) + adj = Gtk.Adjustment(value, self.min_value, self.max_value, range / 100, range / 5) adj.connect("value-changed", self.on_value_change_request) return adj @@ -1254,15 +1256,15 @@ class midiccmap: self.window.show_all() while True: ret = self.window.run() - if ret == gtk.RESPONSE_NONE: # revert/undo button pressed? + if ret == Gtk.ResponseType.NONE: # revert/undo button pressed? #print "revert" self.revert_points() continue - elif ret == gtk.RESPONSE_REJECT or ret == gtk.RESPONSE_DELETE_EVENT: # cancel button pressed? dialog window closed + elif ret == Gtk.ResponseType.REJECT or ret == Gtk.ResponseType.DELETE_EVENT: # cancel button pressed? dialog window closed #print "cancel" self.revert_points() ret = False - elif ret == gtk.RESPONSE_NO: # delete button pressed? + elif ret == Gtk.ResponseType.NO: # delete button pressed? #print "delete" ret = "delete" else: @@ -1375,18 +1377,18 @@ class midiccmap: self.map.point_remove(int(self.ls[self.current_row][0])) # Synth window abstraction -class PluginUI(gobject.GObject): +class PluginUI(GObject.GObject): __gsignals__ = { 'destroy': # signal name ( - gobject.SIGNAL_RUN_LAST, # signal flags, when class closure is invoked - gobject.TYPE_NONE, # return type + GObject.SignalFlags.RUN_LAST, # signal flags, when class closure is invoked + None, # return type () # parameter types )} def __init__(self, plugin): - gobject.GObject.__init__(self) + GObject.GObject.__init__(self) self.plugin = plugin def show(self): @@ -1419,9 +1421,9 @@ class PluginUICustom(PluginUI): self.plugin.ui_off() -class PluginUIUniversalGroup(gobject.GObject): +class PluginUIUniversalGroup(GObject.GObject): def __init__(self, window, parent_group, name, hints, context): - gobject.GObject.__init__(self) + GObject.GObject.__init__(self) self.window = window self.parent_group = parent_group self.group_name = name @@ -1455,9 +1457,9 @@ class PluginUIUniversalGroup(gobject.GOb else: return PluginUIUniversalGroupGeneric(self.window, self, group_name, hints, context) -class PluginUIUniversalParameter(gobject.GObject): +class PluginUIUniversalParameter(GObject.GObject): def __init__(self, window, parent_group, name, context): - gobject.GObject.__init__(self) + GObject.GObject.__init__(self) self.window = window self.parent_group = parent_group self.parameter_name = name @@ -1482,7 +1484,7 @@ class PluginUIUniversal(PluginUI): self.group_shadow_type = group_shadow_type self.layout_type = layout_type - self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) + self.window = Gtk.Window(Gtk.WindowType.TOPLEVEL) # nasty workaround: we assume that dynparam plugins have bigger layout and # non-dynparam plugins have no port grouping and thus their layout is vertical @@ -1670,11 +1672,11 @@ class PluginUIUniversalGroupGeneric(Plug PluginUIUniversalGroup.__init__(self, window, parent, group_name, hints, context) if self.window.layout_type == PluginUIUniversal.layout_type_horizontal: - self.box_params = gtk.VBox() - self.box_top = gtk.HBox() + self.box_params = Gtk.VBox() + self.box_top = Gtk.HBox() else: - self.box_params = gtk.HBox() - self.box_top = gtk.VBox() + self.box_params = Gtk.HBox() + self.box_top = Gtk.VBox() self.box_top.pack_start(self.box_params, False, False) @@ -1682,7 +1684,7 @@ class PluginUIUniversalGroupGeneric(Plug if hints.has_key(hint_uris['hidden']): frame = self.box_top else: - frame = gtk.Frame(group_name) + frame = Gtk.Frame(group_name) frame.set_shadow_type(self.window.group_shadow_type) self.frame = frame @@ -1691,23 +1693,23 @@ class PluginUIUniversalGroupGeneric(Plug if self.window.layout_type == PluginUIUniversal.layout_type_horizontal: frame.set_label_align(0.5, 0.5) - align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) + align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) align.set_padding(0, 10, 10, 10) align.add(frame) self.top = align parent.child_group_add(self) else: - self.scrolled_window = gtk.ScrolledWindow() - self.scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + self.scrolled_window = Gtk.ScrolledWindow() + self.scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) - vp = gtk.Viewport() - vp.add_events(gtk.gdk.ALL_EVENTS_MASK) # pass all events so Knob is working + vp = Gtk.Viewport() + vp.add_events(Gdk.EventMask.ALL_EVENTS_MASK) # pass all events so Knob is working vp.add(self.box_top) self.scrolled_window.add(vp) - self.window.statusbar = gtk.Statusbar() + self.window.statusbar = Gtk.Statusbar() - box = gtk.VBox() + box = Gtk.VBox() box.pack_start(self.scrolled_window, True, True) box.pack_start(self.window.statusbar, False) @@ -1720,7 +1722,7 @@ class PluginUIUniversalGroupGeneric(Plug def child_param_add(self, obj): #print "child_param_add %s for group \"%s\"" % (repr(obj), self.group_name) - self.box_params.pack_start(obj.get_top_widget(), False, False) + self.box_params.pack_start(obj.get_top_widget(), False, False, 0) if self.window.ui_enabled: self.window.window.show_all() @@ -1731,7 +1733,7 @@ class PluginUIUniversalGroupGeneric(Plug def child_group_add(self, obj): #print "child_group_add %s for group \"%s\"" % (repr(obj), self.group_name) - self.box_top.pack_start(obj.get_top_widget(), False, True) + self.box_top.pack_start(obj.get_top_widget(), False, True, 0) def child_group_remove(self, obj): #print "child_group_remove %s for group \"%s\"" % (repr(obj), self.group_name) @@ -1768,14 +1770,14 @@ class PluginUIUniversalGroupToggleFloat( PluginUIUniversalGroup.__init__(self, window, parent, group_name, hints, context) if self.window.layout_type == PluginUIUniversal.layout_type_horizontal: - self.box = gtk.VBox() + self.box = Gtk.VBox() else: - self.box = gtk.HBox() + self.box = Gtk.HBox() self.float = None self.bool = None - self.align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) + self.align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) self.align.set_padding(0, 10, 10, 10) self.align.add(self.box) @@ -1794,7 +1796,7 @@ class PluginUIUniversalGroupToggleFloat( def child_param_add(self, obj): #print "child_param_add %s for group \"%s\"" % (repr(obj), self.group_name) - self.box.pack_start(obj.get_top_widget(), False, False) + self.box.pack_start(obj.get_top_widget(), False, False, 0) if self.window.ui_enabled: self.window.window.show_all() @@ -1821,9 +1823,9 @@ class PluginUIUniversalGroupOneSubGroup( def __init__(self, window, parent, group_name, hints, context): PluginUIUniversalGroup.__init__(self, window, parent, group_name, hints, context) - self.box = gtk.VBox() + self.box = Gtk.VBox() - self.align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) + self.align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) self.align.set_padding(10, 10, 10, 10) self.align.add(self.box) self.groups = [] @@ -1836,12 +1838,12 @@ class PluginUIUniversalGroupOneSubGroup( def on_realize(self, obj): #print "realize" - self.box.pack_start(self.enum.get_top_widget()) + self.box.pack_start(self.enum.get_top_widget(), True, True, 0) self.enum.connect("zynjacku-parameter-changed", self.on_changed) selected = self.enum.get_selection() for group in self.groups: if group.group_name == selected: - self.box.pack_start(group.get_top_widget()) + self.box.pack_start(group.get_top_widget(), True, True, 0) self.selected_group = group def on_enum_appeared(self, window, name, hints, selected_value_index, valid_values, context): @@ -1852,7 +1854,7 @@ class PluginUIUniversalGroupOneSubGroup( def child_group_add(self, obj): #print "child_group_add %s for group \"%s\"" % (repr(obj), self.group_name) - #self.box.pack_start(obj.get_top_widget()) + #self.box.pack_start(obj.get_top_widget(, True, True, 0)) self.groups.append(obj) obj.change_display_name(self.group_name) @@ -1875,7 +1877,7 @@ class PluginUIUniversalGroupOneSubGroup( selected = self.enum.get_selection() for group in self.groups: if group.group_name == selected: - self.box.pack_start(group.get_top_widget()) + self.box.pack_start(group.get_top_widget(), True, True, 0) group.get_top_widget().show_all() self.selected_group = group @@ -1883,32 +1885,32 @@ class PluginUIUniversalParameterFloat(Pl def __init__(self, window, parent_group, name, value, min, max, context): PluginUIUniversalParameter.__init__(self, window, parent_group, name, context) - self.box = gtk.VBox() + self.box = Gtk.VBox() - self.label = gtk.Label(name) - align = gtk.Alignment(0, 0) + self.label = Gtk.Label(label=name) + align = Gtk.Alignment.new(0, 0) align.add(self.label) self.box.pack_start(align, False, False) - adjustment = gtk.Adjustment(value, min, max, (max - min) / 100, (max - min) / 5) + adjustment = Gtk.Adjustment(value, min, max, (max - min) / 100, (max - min) / 5) - hbox = gtk.HBox() + hbox = Gtk.HBox() self.knob = Knob() self.knob.set_adjustment(adjustment) #self.knob.set_size_request(200,-1) - #align = gtk.Alignment(0.5, 0.5) + #align = Gtk.Alignment.new(0.5, 0.5) #align.add(self.knob) hbox.pack_start(self.knob, True, True) - self.spin = gtk.SpinButton(adjustment, 0.0, 2) - #align = gtk.Alignment(0.5, 0.5) + self.spin = Gtk.SpinButton(adjustment, 0.0, 2) + #align = Gtk.Alignment.new(0.5, 0.5) #align.add(self.spin) hbox.pack_start(self.spin, False, False) - #align = gtk.Alignment(0.5, 0.5) + #align = Gtk.Alignment.new(0.5, 0.5) #align.add(hbox) self.box.pack_start(hbox, True, True) - self.align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) + self.align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) self.align.set_padding(10, 10, 10, 10) self.align.add(self.box) @@ -1925,7 +1927,7 @@ class PluginUIUniversalParameterFloat(Pl #print "Float \"%s\" created: %s" % (name, repr(self)) def on_clicked(self, widget, event): - if event.type != gtk.gdk._2BUTTON_PRESS: + if event.type != Gdk._2BUTTON_PRESS: return False #print "double click on %s" % self.parameter_name @@ -1976,7 +1978,7 @@ class PluginUIUniversalParameterFloat(Pl def set(self, name, value, min, max): self.adjustment.disconnect(self.cid) self.label.set_text(name) - self.adjustment = gtk.Adjustment(value, min, max, 1, 19) + self.adjustment = Gtk.Adjustment(value, min, max, 1, 19) self.spin.set_adjustment(self.adjustment) self.knob.set_adjustment(self.adjustment) self.cid = self.adjustment.connect("value-changed", self.on_value_changed) @@ -1985,21 +1987,21 @@ class PluginUIUniversalParameterInt(Plug def __init__(self, window, parent_group, name, value, min, max, context): PluginUIUniversalParameter.__init__(self, window, parent_group, name, context) - self.box = gtk.HBox() + self.box = Gtk.HBox() - self.label = gtk.Label(name) - align = gtk.Alignment(0.5, 0.5) + self.label = Gtk.Label(label=name) + align = Gtk.Alignment.new(0.5, 0.5) align.add(self.label) self.box.pack_start(align, True, True) - adjustment = gtk.Adjustment(value, min, max, 1, 19) + adjustment = Gtk.Adjustment(value, min, max, 1, 19) - self.spin = gtk.SpinButton(adjustment, 0.0, 0) - #align = gtk.Alignment(0.5, 0.5) + self.spin = Gtk.SpinButton(adjustment, 0.0, 0) + #align = Gtk.Alignment.new(0.5, 0.5) #align.add(self.spin) self.box.pack_start(self.spin, True, False) - self.align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) + self.align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) self.align.set_padding(10, 10, 10, 10) self.align.add(self.box) @@ -2025,7 +2027,7 @@ class PluginUIUniversalParameterInt(Plug def set(self, name, value, min, max): self.adjustment.disconnect(self.cid) self.label.set_text(name) - self.adjustment = gtk.Adjustment(value, min, max, 1, 19) + self.adjustment = Gtk.Adjustment(value, min, max, 1, 19) self.spin.set_adjustment(self.adjustment) self.knob.set_adjustment(self.adjustment) self.cid = self.adjustment.connect("value-changed", self.on_value_changed) @@ -2034,12 +2036,12 @@ class PluginUIUniversalParameterBool(Plu def __init__(self, window, parent_group, name, value, context): PluginUIUniversalParameter.__init__(self, window, parent_group, name, context) - widget = gtk.CheckButton(name) + widget = Gtk.CheckButton(name) widget.set_active(value) widget.connect("toggled", self.on_toggled) - self.align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) + self.align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) self.align.set_padding(10, 10, 10, 10) self.align.add(widget) @@ -2054,19 +2056,19 @@ class PluginUIUniversalParameterEnum(Plu def __init__(self, window, parent_group, name, selected_value_index, valid_values, context): PluginUIUniversalParameter.__init__(self, window, parent_group, name, context) - label = gtk.Label(name) + label = Gtk.Label(label=name) - self.box = gtk.VBox() + self.box = Gtk.VBox() - self.label = gtk.Label(name) - align = gtk.Alignment(0, 0) + self.label = Gtk.Label(label=name) + align = Gtk.Alignment.new(0, 0) align.set_padding(0, 0, 10, 10) align.add(self.label) self.box.pack_start(align, True, True) - self.liststore = gtk.ListStore(gobject.TYPE_STRING) - self.combobox = gtk.ComboBox(self.liststore) - self.cell = gtk.CellRendererText() + self.liststore = Gtk.ListStore(GObject.TYPE_STRING) + self.combobox = Gtk.ComboBox(self.liststore) + self.cell = Gtk.CellRendererText() self.combobox.pack_start(self.cell, True) self.combobox.add_attribute(self.cell, 'text', 0) @@ -2079,7 +2081,7 @@ class PluginUIUniversalParameterEnum(Plu self.combobox.connect("changed", self.on_changed) - align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) + align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) align.set_padding(0, 10, 10, 10) align.add(self.combobox) @@ -2099,34 +2101,34 @@ class PluginUIUniversalParameterEnum(Plu class plugin_load_progress_window: def __init__(self): - self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) + self.window = Gtk.Window(Gtk.WindowType.TOPLEVEL) #self.window.set_size_request(600,300) - self.bar = gtk.ProgressBar() + self.bar = Gtk.ProgressBar() - box = gtk.VBox() + box = Gtk.VBox() box.set_spacing(10) - self.label = gtk.Label("Loading plugin ...") - box.pack_start(self.label) - box.pack_start(self.bar) - align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) + self.label = Gtk.Label(label="Loading plugin ...") + box.pack_start(self.label, True, True, 0) + box.pack_start(self.bar, True, True, 0) + align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) align.set_padding(10, 10, 10, 10) align.add(box) self.window.add(align) - while gtk.events_pending(): - gtk.main_iteration() + while Gtk.events_pending(): + Gtk.main_iteration() def progress(self, name, progress, message): #print "Loading plugin '%s', %5.1f%% complete. %s" % (name, progress, message) self.bar.set_fraction(progress / 100.0) self.label.set_text("Loading plugin '%s'" % name) self.bar.set_text(message); - while gtk.events_pending(): - gtk.main_iteration() + while Gtk.events_pending(): + Gtk.main_iteration() - while gtk.events_pending(): - gtk.main_iteration() + while Gtk.events_pending(): + Gtk.main_iteration() def show(self, uri): title = "Loading plugin '%s'..." % uri @@ -2142,7 +2144,7 @@ class host: def __init__(self, engine, client_name, preset_extension=None, preset_name=None, lash_client=None): #print "host constructor called." - self.group_shadow_type = gtk.SHADOW_ETCHED_OUT + self.group_shadow_type = Gtk.ShadowType.ETCHED_OUT self.layout_type = PluginUIUniversal.layout_type_horizontal self.engine = engine @@ -2169,7 +2171,7 @@ class host: lash.lash_jack_client_name(lash_client, client_name) - self.lash_check_events_callback_id = gobject.timeout_add(1000, self.lash_check_events) + self.lash_check_events_callback_id = GObject.timeout_add(1000, self.lash_check_events) if not self.preset_extension: self.preset_extension = "xml" @@ -2449,8 +2451,8 @@ class host: if plugin == None: continue - while gtk.events_pending(): - gtk.main_iteration() + while Gtk.events_pending(): + Gtk.main_iteration() features_met = True for feature in plugin.requiredFeatures: @@ -2503,15 +2505,15 @@ class host: store = plugin_repo_widget.get_model() if not store: - plugin_repo_widget.get_selection().set_mode(gtk.SELECTION_MULTIPLE) + plugin_repo_widget.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE) - store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING) - text_renderer = gtk.CellRendererText() + store = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING) + text_renderer = Gtk.CellRendererText() - column_name = gtk.TreeViewColumn("Name", text_renderer, text=0) - column_uri = gtk.TreeViewColumn("URI", text_renderer, text=1) - column_license = gtk.TreeViewColumn("License", text_renderer, text=2) - column_maintainer = gtk.TreeViewColumn("Maintainer", text_renderer, text=3) + column_name = Gtk.TreeViewColumn("Name", text_renderer, text=0) + column_uri = Gtk.TreeViewColumn("URI", text_renderer, text=1) + column_license = Gtk.TreeViewColumn("License", text_renderer, text=2) + column_maintainer = Gtk.TreeViewColumn("Maintainer", text_renderer, text=3) column_name.set_sort_column_id(0) column_uri.set_sort_column_id(1) @@ -2523,7 +2525,7 @@ class host: plugin_repo_widget.append_column(column_license) plugin_repo_widget.append_column(column_maintainer) - store.set_sort_column_id(0, gtk.SORT_ASCENDING) + store.set_sort_column_id(0, Gtk.SortType.ASCENDING) plugin_repo_widget.set_model(store) def on_row_activated(widget, path, column): @@ -2628,7 +2630,7 @@ class host: def setup_file_dialog_filters(self, file_dialog): # Create and add the filter - filter = gtk.FileFilter() + filter = Gtk.FileFilter() pattern = '*.' + self.preset_extension if self.preset_name: filter.set_name(self.preset_name + ' (' + pattern + ')') @@ -2638,26 +2640,26 @@ class host: file_dialog.add_filter(filter) # Create and add the 'all files' filter - filter = gtk.FileFilter() + filter = Gtk.FileFilter() filter.set_name("All files") filter.add_pattern("*") file_dialog.add_filter(filter) def preset_load_ask(self): - dialog_buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK) + dialog_buttons = (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK) if self.preset_name: title = "Load " + self.preset_name else: title = "Load preset" - file_dialog = gtk.FileChooserDialog(title=title, action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=dialog_buttons) + file_dialog = Gtk.FileChooserDialog(title=title, action=Gtk.FileChooserAction.OPEN, buttons=dialog_buttons) self.setup_file_dialog_filters(file_dialog) # Init the return value filename = "" - if file_dialog.run() == gtk.RESPONSE_OK: + if file_dialog.run() == Gtk.ResponseType.OK: filename = file_dialog.get_filename() file_dialog.destroy() @@ -2688,12 +2690,12 @@ class host: store.close() def preset_save_ask(self): - dialog_buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK) + dialog_buttons = (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_SAVE, Gtk.ResponseType.OK) if self.preset_name: title = "Save " + self.preset_name else: title = "Save preset" - file_dialog = gtk.FileChooserDialog(title=title, action=gtk.FILE_CHOOSER_ACTION_SAVE, buttons=dialog_buttons) + file_dialog = Gtk.FileChooserDialog(title=title, action=Gtk.FileChooserAction.SAVE, buttons=dialog_buttons) # set the filename if self.preset_filename: @@ -2704,7 +2706,7 @@ class host: # Init the return value filename = "" - if file_dialog.run() == gtk.RESPONSE_OK: + if file_dialog.run() == Gtk.ResponseType.OK: filename = file_dialog.get_filename() file_dialog.destroy() @@ -2737,7 +2739,7 @@ class host: def run_done(self): if self.lash_client: #print "removing lash handler, host object refcount is %u" % sys.getrefcount(self) - gobject.source_remove(self.lash_check_events_callback_id) + GObject.source_remove(self.lash_check_events_callback_id) #print "removed lash handler, host object refcount is %u" % sys.getrefcount(self) for plugin in self.plugins: @@ -2747,9 +2749,9 @@ class host: self.engine.disconnect(self.progress_connect_id) def run(self): - ui_run_callback_id = gobject.timeout_add(40, self.ui_run) - gtk.main() - gobject.source_remove(ui_run_callback_id) + ui_run_callback_id = GObject.timeout_add(40, self.ui_run) + Gtk.main() + GObject.source_remove(ui_run_callback_id) self.run_done() def on_test(self, obj1, obj2): @@ -2758,7 +2760,7 @@ class host: print repr(obj2) def run_about_dialog(transient_for, program_data): - about = gtk.AboutDialog() + about = Gtk.AboutDialog() about.set_transient_for(transient_for) about.set_name(program_data['name']) if program_data.has_key('comments'): @@ -2771,7 +2773,7 @@ def run_about_dialog(transient_for, prog if program_data.has_key('artists'): about.set_artists(program_data['artists']) if program_data.has_key('logo'): - about.set_logo(gtk.gdk.pixbuf_new_from_file(program_data['logo'])) + about.set_logo(GdkPixbuf.Pixbuf.new_from_file(program_data['logo'])) about.show() about.run() about.hide() @@ -2806,7 +2808,7 @@ def get_program_data(program_name): program_data['license'] = file(data_dir + os.sep + "gpl.txt").read() - program_data['ui_builder'] = gtk.Builder() + program_data['ui_builder'] = Gtk.Builder() program_data['ui_builder'].add_from_file(ui_file) @@ -2831,10 +2833,10 @@ def get_program_data(program_name): return program_data def register_types(): - gobject.signal_new("zynjacku-parameter-changed", PluginUIUniversalParameter, gobject.SIGNAL_RUN_FIRST | gobject.SIGNAL_ACTION, gobject.TYPE_NONE, []) - gobject.type_register(PluginUI) - gobject.type_register(PluginUIUniversal) - gobject.type_register(PluginUIUniversalGroupGeneric) - gobject.type_register(PluginUIUniversalGroupToggleFloat) - gobject.type_register(PluginUIUniversalParameterFloat) - gobject.type_register(PluginUIUniversalParameterBool) + GObject.signal_new("zynjacku-parameter-changed", PluginUIUniversalParameter, GObject.SignalFlags.RUN_FIRST | GObject.SignalFlags.ACTION, None, []) + GObject.type_register(PluginUI) + GObject.type_register(PluginUIUniversal) + GObject.type_register(PluginUIUniversalGroupGeneric) + GObject.type_register(PluginUIUniversalGroupToggleFloat) + GObject.type_register(PluginUIUniversalParameterFloat) + GObject.type_register(PluginUIUniversalParameterBool) debian/patches/series0000644000000000000000000000023511755001402012025 0ustar 1002-buildsystem.patch 1003-libglade_to_gtkbuilder.patch 1004-lashd_not_found.patch 1005-xref_fix.patch #1006-pygtk2_to_pygi.patch 2006-lv2core_to_lv2.patch debian/patches/1002-buildsystem.patch0000644000000000000000000000164211755001151014561 0ustar Description: Adjust buildsystem to avoid FTBFS with autoreconf. CPPFLAGS must not be overridden, use the user variable AM_CPPFLAGS instead. Set 'foreign' mode. Applied-Upstream: http://repo.or.cz/w/zynjacku.git/commitdiff/3249d1578d73fbb --- Makefile.am | 2 +- configure.ac | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) --- zynjacku.orig/Makefile.am +++ zynjacku/Makefile.am @@ -21,7 +21,7 @@ DEFAULT_INCLUDES = # we need this in order to include config.h with build dir != src dir if NOT_TOP_BUILD -CPPFLAGS += -I$(top_builddir) +AM_CPPFLAGS = -I$(top_builddir) endif zynjacku_c_CFLAGS = -DDATA_DIR='"$(pkgdatadir)"' -Wall -g --- zynjacku.orig/configure.ac +++ zynjacku/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.61) AC_INIT(zynjacku, 6) AC_CONFIG_AUX_DIR(config) -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE(foreign) AC_CONFIG_HEADER([config.h]) AM_CONDITIONAL(NOT_TOP_BUILD, test "$srcdir" != ".") debian/patches/1003-libglade_to_gtkbuilder.patch0000644000000000000000000006330011755001151016676 0ustar Subject: libglade -> GtkBuilder transition. Author: Alessio Treglia Applied-Upstream: http://repo.or.cz/w/zynjacku.git/commitdiff/9aab96979565dbb --- Makefile.am | 2 lv2rack | 15 - zynjacku | 13 - zynjacku.ui | 456 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ zynworld/host.py | 16 - 5 files changed, 478 insertions(+), 24 deletions(-) --- /dev/null +++ zynjacku/zynjacku.ui @@ -0,0 +1,456 @@ + + + + + + + + + menuitem1 + _Preset + + + + + gtk-open + preset_load + _Load... + + + + + + gtk-save-as + preset_save_as + _Save As... + + + + + + gtk-quit + quit + + + + + + synth + _Synth + + + + + + gtk-add + synth_load + _Load... + + + + + + gtk-clear + synth_clear + _Clear + + + + + + menuitem4 + _Help + + + + + gtk-about + about + _About + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lv2rack_preset_menuitem + _Preset + + + + + gtk-open + lv2rack_preset_load_menuitem + _Load... + + + + + + gtk-save-as + lv2rack_preset_save_as_menuitem + _Save As... + + + + + + gtk-quit + lv2rack_quit_menuitem + + + + + + lv2rack_effect_menuitem + _Effect + + + + + gtk-add + lv2rack_effect_load_menuitem + _Load... + + + + + + gtk-clear + lv2rack_effect_clear_menuitem + _Clear + + + + + + lv2rack_help_menuitem + _Help + + + + + gtk-about + lv2rack_help_about_menuitem + _About + + + + + + + + + + + + + + + + + + + + + + + + + zynjacku + zynjacku_list + 600 + 200 + + + True + + + True + + + True + + + + + + + + False + False + + + + + True + True + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + GTK_SHADOW_IN + + + True + True + True + + + + + 1 + + + + + True + + + False + False + 2 + + + + + + + 600 + 500 + Plugins + True + True + GDK_WINDOW_TYPE_HINT_DIALOG + + + True + + + True + True + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + GTK_SHADOW_IN + + + True + True + True + True + + + + + 2 + + + + + True + 0.15000000595999999 + 0.10000000149 + scanning plugins... + PANGO_ELLIPSIZE_END + + + False + False + 3 + + + + + True + GTK_BUTTONBOX_END + + + True + True + True + gtk-cancel + True + + + + + True + True + True + + + True + 0 + 0 + + + True + 2 + + + True + gtk-refresh + + + False + False + + + + + True + _Rescan + True + + + False + False + 1 + + + + + + + + + 1 + + + + + True + True + True + + + True + 0 + 0 + + + True + 2 + + + True + gtk-add + + + False + False + + + + + True + _Load + True + + + False + False + 1 + + + + + + + + + 2 + + + + + False + GTK_PACK_END + + + + + + cancel + rescan + load + + + + lv2rack + lv2rack_list + 600 + 200 + + + True + + + True + + + True + + + + + + + + False + False + + + + + True + True + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + GTK_SHADOW_IN + + + True + True + True + + + + + 1 + + + + + True + + + False + False + 2 + + + + + + --- zynjacku.orig/zynworld/host.py +++ zynjacku/zynworld/host.py @@ -21,7 +21,6 @@ import os import sys import gtk -import gtk.glade import gobject import re import time @@ -2496,9 +2495,9 @@ class host: view.set_model(store) def plugins_load(self, title="LV2 plugins"): - dialog = self.glade_xml.get_widget("zynjacku_plugin_repo") - plugin_repo_widget = self.glade_xml.get_widget("treeview_available_plugins") - progressbar = self.glade_xml.get_widget("progressbar") + dialog = self.ui_builder.get_object("zynjacku_plugin_repo") + plugin_repo_widget = self.ui_builder.get_object("treeview_available_plugins") + progressbar = self.ui_builder.get_object("progressbar") dialog.set_title(title) @@ -2793,11 +2792,11 @@ def get_program_data(program_name): if not data_dir: data_dir = "." - glade_file = data_dir + os.sep + "zynjacku.glade" + ui_file = data_dir + os.sep + "zynjacku.ui" - if not os.path.isfile(glade_file): + if not os.path.isfile(ui_file): data_dir = data_dir + os.sep + ".." + os.sep + "share"+ os.sep + "zynjacku" - glade_file = data_dir + os.sep + "zynjacku.glade" + ui_file = data_dir + os.sep + "zynjacku.ui" logo_dir = data_dir else: logo_dir = data_dir + os.sep + 'art' + os.sep + 'logo' @@ -2807,7 +2806,8 @@ def get_program_data(program_name): program_data['license'] = file(data_dir + os.sep + "gpl.txt").read() - program_data['glade_xml'] = gtk.glade.XML(glade_file) + program_data['ui_builder'] = gtk.Builder() + program_data['ui_builder'].add_from_file(ui_file) program_data['website'] = "http://home.gna.org/zynjacku/" --- zynjacku.orig/zynjacku +++ zynjacku/zynjacku @@ -21,7 +21,6 @@ import os import sys import gtk -import gtk.glade import gobject import re import time @@ -70,14 +69,14 @@ class ZynjackuHostMulti(ZynjackuHost): ZynjackuHost.__init__(self, client_name, "zynjacku", "synth stack", lash_client) self.program_data = program_data - self.glade_xml = program_data['glade_xml'] + self.ui_builder = program_data['ui_builder'] - self.main_window = self.glade_xml.get_widget("zynjacku_main") + self.main_window = self.ui_builder.get_object("zynjacku_main") self.main_window.set_title(client_name) - self.statusbar = self.glade_xml.get_widget("statusbar") + self.statusbar = self.ui_builder.get_object("statusbar") - self.hbox_menubar = self.glade_xml.get_widget("hbox_menubar") + self.hbox_menubar = self.ui_builder.get_object("hbox_menubar") self.midi_led = zynhost.midi_led() self.midi_led_frame = gtk.Frame() self.midi_led_frame.set_shadow_type(gtk.SHADOW_OUT) @@ -95,13 +94,13 @@ class ZynjackuHostMulti(ZynjackuHost): self.signal_ids = [] for k, v in dic.items(): - w = self.glade_xml.get_widget(k) + w = self.ui_builder.get_object(k) if not w: print "failed to get glade widget '%s'" % k continue self.signal_ids.append([w, w.connect("activate", v)]) - self.synths_widget = self.glade_xml.get_widget("treeview_synths") + self.synths_widget = self.ui_builder.get_object("treeview_synths") self.store = gtk.ListStore( gobject.TYPE_BOOLEAN, # UI visible --- zynjacku.orig/lv2rack +++ zynjacku/lv2rack @@ -20,7 +20,6 @@ import os import sys import gtk -import gtk.glade import gobject import re import time @@ -68,12 +67,12 @@ class lv2rack_multi(lv2rack): lv2rack.__init__(self, client_name, "lv2rack", "effect stack", lash_client) self.program_data = program_data - self.glade_xml = program_data['glade_xml'] + self.ui_builder = program_data['ui_builder'] - self.main_window = self.glade_xml.get_widget("lv2rack") + self.main_window = self.ui_builder.get_object("lv2rack") self.main_window.set_title(client_name) - self.statusbar = self.glade_xml.get_widget("lv2rack_statusbar") + self.statusbar = self.ui_builder.get_object("lv2rack_statusbar") # Create our dictionary and connect it dic = {"lv2rack_quit_menuitem" : self.on_quit, @@ -86,13 +85,13 @@ class lv2rack_multi(lv2rack): self.signal_ids = [] for k, v in dic.items(): - w = self.glade_xml.get_widget(k) + w = self.ui_builder.get_object(k) if not w: - print "failed to get glade widget '%s'" % k + print "failed to get object '%s'" % k continue self.signal_ids.append([w, w.connect("activate", v)]) - self.effects_widget = self.glade_xml.get_widget("lv2rack_treeview_effects") + self.effects_widget = self.ui_builder.get_object("lv2rack_treeview_effects") self.store = gtk.ListStore(gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_PYOBJECT) text_renderer = gtk.CellRendererText() @@ -266,7 +265,7 @@ class lv2rack_single(lv2rack): #print "ZynjackuHostOne constructor called." lv2rack.__init__(self, client_name, "lv2rack") - self.glade_xml = program_data['glade_xml'] + self.ui_builder = program_data['ui_builder'] self.plugin = self.new_plugin(uri) if not self.plugin: --- zynjacku.orig/Makefile.am +++ zynjacku/Makefile.am @@ -128,7 +128,7 @@ EXTRA_DIST = zynjacku.override zynjacku. bin_SCRIPTS = zynjacku lv2rack zynspect zynjackudir = $(pkgdatadir) -dist_zynjacku_DATA = gpl.txt zynjacku.glade art/logo/logo.png +dist_zynjacku_DATA = gpl.txt zynjacku.ui art/logo/logo.png ttl_flex_regenerate: flex --batch --nodefault -o flex_ttl.c --header-file=flex_ttl.h ttl.l debian/patches/1005-xref_fix.patch0000644000000000000000000000636511755001151014041 0ustar From: http://sf.net/projects/naspro/files/naspro/0.2.91/zynjacku-6-xref-fix.patch Description: Try to fix cross-referencing among bundles w.r.t. dynamic manifests in zynjacku Forwarded: yes, by Stefano D'Angelo --- zynworld/lv2.py | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) --- zynjacku.orig/zynworld/lv2.py +++ zynjacku/zynworld/lv2.py @@ -473,29 +473,27 @@ class LV2DB: return self.plugins def get_plugin_full_model(self, uri): - sources = [] - model = None - if uri in self.plugin_info: model = self.plugin_info[uri] - return model, sources + return model, [] + + graph = SimpleRDFModel() if self.manifests.bySubject.has_key(uri): if self.sources: # cache/subset preloaded self.plugin_info[uri] = self.manifests - model = self.manifests - return model, self.sources + return self.manifests, self.sources + + if uri in self.manifests.object_sources: + for source in self.manifests.object_sources[uri]: + graph.sources.add(source) + + for source in self.manifests.bySubject[uri][rdfs_see_also]: + graph.sources.add(source) - graph = SimpleRDFModel() - docs = [] - for source in self.manifests.object_sources[uri]: - docs.append(source) - docs = docs + self.manifests.bySubject[uri][rdfs_see_also] try: - for doc in docs: - #print "Loading " + doc + " for plugin " + uri - parseTTL(doc, file(doc).read(), graph, self.debug) - graph.sources.add(doc) + for source in graph.sources: + parseTTL(source, file(source).read(), graph, self.debug) self.plugin_info[uri] = graph except SyntaxError, e: print "SYNTAX ERROR at %s:%d - %s (%s)" % (e.filename, e.lineno, e.msg, e.text) @@ -503,16 +501,13 @@ class LV2DB: except Exception, e: print "ERROR %s: %s" % (uri, str(e)) return None, None - return graph, graph.sources - for graph in self.dynmanifests: - #print graph - if graph.plugin_uri == uri: + for g in self.dynmanifests: + if g.plugin_uri == uri: try: - parseTTL(graph.filename, graph.ttl_data, graph, self.debug) - graph.ttl_data = None + parseTTL(g.filename, g.ttl_data, graph, self.debug) self.plugin_info[uri] = graph - return graph, graph.sources + graph.sources.add(g.filename) except SyntaxError, e: print "SYNTAX ERROR at %s:%d - %s (%s)" % (e.filename, e.lineno, e.msg, e.text) return None, None @@ -521,7 +516,7 @@ class LV2DB: return None, None #print 'no subject "%s"' % uri - return None, None + return graph, graph.sources def getPluginInfo(self, uri): #print "getting info for plugin " + uri debian/rules0000755000000000000000000000127711570517210010254 0ustar #!/usr/bin/make -f LDFLAGS+=-Wl,--as-needed PYVERS=$(shell pyversions -s) %: dh $@ --with autoreconf,python2 override_dh_install: override_dh_auto_configure: override_dh_auto_build: override_dh_auto_install: for pyver in $(PYVERS); do \ PYTHON="$$pyver" ./configure \ --prefix=/usr \ --includedir=\${prefix}/include \ --mandir=\${prefix}/share/man \ --infodir=\${prefix}/share/info \ --sysconfdir=/etc \ --localstatedir=/var \ --libexecdir=\${prefix}/lib/zynjacku \ --disable-dependency-tracking && \ $(MAKE) && $(MAKE) install \ DESTDIR=$(CURDIR)/debian/zynjacku && \ $(MAKE) clean ; \ done dh_install find debian/zynjacku/usr/lib/ -type f -name '*.la' -delete debian/lv2rack.10000644000000000000000000000270011570517210010612 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH "LV2RACK" 1 "April 12, 2009" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME lv2rack \- a host for LV2 effect plugins .SH SYNOPSIS .B lv2rack .RI .SH DESCRIPTION This manual page documents briefly the .B lv2rack .B .PP .\" TeX users may be more comfortable with the \fB\fP and .\" \fI\fP escape sequences to invode bold face and italics, .\" respectively. \fBlv2rack\fP is an LV2 effects "rack" for the JACK low latency audio API. The rack can be filled with LV2 effects plugins and can be controlled using the ALSA sequencer. It can turns your computer into an effects box. .SH SEE ALSO .BR jackd (1), .BR slv2 (3). .br .IR .SH AUTHOR lv2rack was written by Nedko Arnaudov . .PP This manual page was written by Jaromír Mikeš , for the Debian project (and may be used by others). debian/control0000644000000000000000000000266511755001502010576 0ustar Source: zynjacku Section: sound Priority: optional Maintainer: Debian Multimedia Maintainers Uploaders: Free Ekanayaka , Jaromír Mikeš , Alessio Treglia Build-Depends: autotools-dev (>= 20100122.1~), debhelper (>= 7.0.50~), dh-autoreconf, libjack-dev, liblv2dynparam1-dev, lv2-dev, pkg-config, python-all-dev (>= 2.6.6-3), python-gtk2-dev Standards-Version: 3.9.3 X-Python-Version: >= 2.6 Vcs-Git: git://git.debian.org/git/pkg-multimedia/zynjacku.git Vcs-Browser: http://git.debian.org/?p=pkg-multimedia/zynjacku.git Homepage: http://home.gna.org/zynjacku/ Package: zynjacku Depends: jackd, python (>= 2.5.2), python-gtk2, ${misc:Depends}, ${python:Depends}, ${shlibs:Depends} Provides: lv2-host Architecture: any Description: JACK based host for LV2 synths and LV2 plugins lv2rack and zynjacku are included in this package. . lv2rack is an LV2 effects "rack" for the JACK low latency audio API. The rack can be filled with LV2 effects plugins and can be controlled using the ALSA sequencer. It can turns your computer into an effects box. . zynjacku is an LV2 synths "rack" for the JACK low latency audio API. It has one JACK MIDI input port (routed to all hosted synths) and one (two for stereo synths) JACK audio output port per plugin. Such design provides multi-timbral sound by running several synth plugins. debian/zynjacku.manpages0000644000000000000000000000006511570517210012541 0ustar debian/lv2rack.1 debian/zynjacku.1 debian/zynspect.1 debian/zynjacku32x32.xpm0000644000000000000000000001134611570517210012260 0ustar /* XPM */ static char *zynjacku[] = { /* columns rows colors chars-per-pixel */ "32 32 116 2", " c #000000000000", ". c #020203030303", "X c #030303030404", "o c #040405050606", "O c #060607070808", "+ c #060608080909", "@ c #08080A0A0B0B", "# c #08080A0A0C0C", "$ c #0A0A0C0C0E0E", "% c #0B0B0E0E1010", "& c #0C0C0F0F1111", "* c #0D0D10101212", "= c #0F0F12121515", "- c #101014141717", "; c #121216161919", ": c #131318181B1B", "> c #141418181C1C", ", c #16161C1C2020", "< c #19191E1E2323", "1 c #19191F1F2424", "2 c #1B1B22222727", "3 c #1C1C23232828", "4 c #1D1D25252A2A", "5 c #1E1E25252B2B", "6 c #202027272D2D", "7 c #212129292F2F", "8 c #22222B2B3131", "9 c #23232C2C3232", "0 c #24242C2C3333", "q c #25252D2D3434", "w c #292933333B3B", "e c #2A2A34343C3C", "r c #2C2C37373F3F", "t c #2E2E39394141", "y c #33333F3F4747", "u c #333340404848", "i c #353542424B4B", "p c #373745454E4E", "a c #3A3A48485252", "s c #3B3B49495353", "d c #3C3C4B4B5555", "f c #3F3F4E4E5959", "g c #414150505B5B", "h c #464657576363", "j c #474758586464", "k c #484859596565", "l c #4B4B5D5D6A6A", "z c #4C4C5E5E6B6B", "x c #4E4E61616E6E", "c c #4F4F62627070", "v c #515164647272", "b c #535367677575", "n c #545468687676", "m c #555569697878", "M c #58586D6D7C7C", "N c #58586E6E7D7D", "B c #5A5A6F6F7F7F", "V c #5C5C72728282", "C c #5F5F76768686", "Z c #606077778888", "A c #616178788989", "S c #63637B7B8C8C", "D c #64647C7C8D8D", "F c #64647C7C8E8E", "G c #66667E7E9090", "H c #686881819393", "J c #696982829494", "K c #6B6B84849797", "L c #6C6C86869999", "P c #6E6E88889B9B", "I c #6E6E89899C9C", "U c #70708B8B9F9F", "Y c #72728E8EA2A2", "T c #73738F8FA3A3", "R c #75759191A5A5", "E c #77779393A8A8", "W c #79799696ABAB", "Q c #79799797ACAC", "! c #7B7B9898AEAE", "~ c #7C7C9999AFAF", "^ c #7D7D9B9BB1B1", "/ c #7E7E9C9CB2B2", "( c #7E7E9D9DB3B3", ") c #8181A0A0B7B7", "_ c #8383A3A3BABA", "` c #8484A4A4BBBB", "' c #8787A7A7BEBE", "] c #8787A8A8BFBF", "[ c #8989AAAAC1C1", "{ c #8B8BACACC4C4", "} c #8C8CAEAEC6C6", "| c #8E8EB1B1C9C9", " . c #9191B3B3CCCC", ".. c #9191B4B4CDCD", "X. c #9393B7B7D0D0", "o. c #9494B8B8D1D1", "O. c #9696BABAD4D4", "+. c #9898BCBCD6D6", "@. c #9A9ABFBFD9D9", "#. c #9B9BC0C0DBDB", "$. c #9C9CC1C1DCDC", "%. c #9D9DC3C3DEDE", "&. c #9F9FC6C6E1E1", "*. c #A1A1C7C7E3E3", "=. c #A1A1C8C8E4E4", "-. c #A4A4CBCBE7E7", ";. c #A6A6CDCDEAEA", ":. c #A8A8D1D1EEEE", ">. c #AAAAD3D3F0F0", ",. c #ABABD4D4F2F2", "<. c #ADADD6D6F4F4", "1. c #AEAED8D8F6F6", "2. c #AFAFDADAF8F8", "3. c #B1B1DBDBFAFA", "4. c #B2B2DCDCFBFB", "5. c #B3B3DEDEFDFD", /* pixels */ "5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.", "5.:.~ ! ! ! ! ` 5.5.5.5.=.5.5.5.5.3...5.5.3.1.5.5.5.5.5.5.4.5.5.", "5.z C 5.5.I * ,.5.5.5.J X.5.c y 5.5.5.5.5.w ; ;.5.", "5.w 9 5.5.i I 5.5.5.9 D 5.w [ 5.5.5.,. W 5.", "5.y , 5.5.w t 5.5.#. A 5.q s 5.5.5.-. Y 5.", "5.C p 5.5.j &.5.C [ 5.0 &.5.5.;. Y 5.", "5.;.f g A ) z R 5.5.' A 5.7 > 5.5.0 n 5.5.:. Y 5.", "5.5.5.5.5.5.< @ ,.5.5.4.> 7 +. m 5.5.0 * <.5.1. Y 5.", "5.5.5.5.5.[ f 5.5.5.5.b d O.5.5.0 P 5.3. R 5.", "5.5.5.5.5.h / 5.5.5.5.o. 0 5.5.5.q + 4 5.5. Y 5.", "5.5.5.5.<.$ * 2.5.5.5.5.5.8 G 5.5.5.0 d X ] 5.+ Y 5.", "5.5.5.5.R k 5.5.5.5.5.5.S o =.5.5.5.0 x u s 5.$ Y 5.", "5.5.5.5.y ' 5.5.5.5.5.5.=. i 5.5.5.5.9 k / %.= Y 5.", "5.5.5.*. : 5.5.5.5.5.5.5.5.2 C 5.5.5.5.q h 4.> b : Y 5.", "5.5.5.Z v 5.5.5.5.5.5.5.5.2 C 5.5.5.5.9 g 5.M * - Y 5.", "5.5.5.4 .5.5.5.5.5.5.5.5.2 C 5.5.5.5.q s 5.&. Y 5.", "5.5.| 3 5.5.5.5.5.5.5.5.5.2 C 5.5.5.5.0 p 4.5.i Y 5.", "5.5.l B 5.5.5.5.5.5.5.5.5.2 C 5.5.5.5.0 i 5.5./ Y 5.", "5.3.= a a 0 * w 3.5.5.5.5.2 C 5.5.5.5.0 t 5.5.3.> Y 5.", "5.' X.5.5.5.5.4 C 5.5.5.5.0 w 5.5.5.B Y 5.", "5.S ' 5.5.5.5.2 C 5.5.5.5.0 e 5.5.5.*.o Y 5.", "5.B o.5.5.5.5.w G 5.5.5.5.t p 5.5.5.5.s W 5.", "5.{ 1 < < < < 1 s 5.5.5.5.5.W < %.5.5.5.5.P Y 5.5.5.5.o.$ @.5.", "5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.3.5.5.5.5.5.5.3.5.5.", "5.%.A 5.5.5...K 5.5.5.5.5.' Y / 1.5.[ H 5.5.' ;.5.5.5.5.5.5.5.5.", "5.D 5.5.5.q L 5.5.5.p o ; y 5.m & 5.V J 5.=. .5.5.<...5.", "5.Y ,.5.&. e 5 5.5.[ o @.5.@._ 5.C + D h 3.5.m X >.5.n :.", "5./ =.5.H $ %. ' 5.J 8 5.5.5.5.5.D , 2.5.5.V -.5.B %.", "5.[ @.5.y < b > p 5.Q ; 3.5.5.5.5.I x h 5.5.D =.5.J o.", "e B @.:.o C 5.Y %.>.- l | Y C 3.E | B b 5.Y %.5.W } ", "s @ d 5... [ 5.:.* D 5.| 3 6 >...; o.5.v * 3.#.X A 5.Z *.", "5.5.5.5.5.5.5.5.5.<.5.5.5.5.=.-.5.5.5.5.5.5.5.5.5.5.R - # # D 5." }; debian/zynjacku.install0000644000000000000000000000011111755001302012377 0ustar debian/*.desktop usr/share/applications/ debian/*.xpm usr/share/pixmaps/ debian/lv2rack.desktop0000644000000000000000000000027111570517210012124 0ustar [Desktop Entry] Type=Application Name=Lv2rack GenericName=LV2 plugins host Comment=LV2 plugins host for JACK Icon=lv2rack32x32 Exec=lv2rack Terminal=false Categories=AudioVideo;Audio; debian/changelog0000644000000000000000000001520011755001716011041 0ustar zynjacku (6-4) unstable; urgency=low * Remove any reference to LASH. * Drop 1001-shebangs.patch, useless. * Drop 1005-xref_fix.patch, needs more work upstream. * First attempt to do pygtk2 -> pygi conversion, patch is disabled for now. * Add patch to port to LV2's first unified release. * Refresh patches. * Replace dependency on lv2core with lv2-dev. * Bump Standards. -- Alessio Treglia Wed, 16 May 2012 21:43:15 +0200 zynjacku (6-3) unstable; urgency=low * Attempt to fix cross-referencing among bundles. Patch from Stefano D'Angelo. -- Alessio Treglia Mon, 30 May 2011 10:33:38 +0200 zynjacku (6-2) unstable; urgency=low * Add patch to port zynjacku to GtkBuilder. * Add patch to fix a startup bug when lash daemon is not installed. * debian/control: - Demote python-lash to Suggests. - Drop python-glade2 from Depends. - Bump Standards. -- Alessio Treglia Wed, 27 Apr 2011 18:57:50 +0200 zynjacku (6-1) unstable; urgency=low * New upstream release: - Fixes and improvements that improve interoperability with these plugins: + The Composite Sampler + EQ10Q + Calf - Support the new dynamic manifest extension and thus NASPRO 0.2.90. - It is now possible to supply on commandline a regular expression instead of URI. The regexp must match only one URI. - Plugin GUI windows now have WM_WINDOW_ROLE set to "plugin_ui" (for WM kludges etc). - Various improvements in lv2 turtle rdf parsing. - A commandline parsing bug that prevented use of state file is fixed. - Better reporting and handling of ttl syntax errors. - The plugin scanner got some speed an memory optimizations. - Windows of the generic GUIs are now smaller when the plugin is not dynparam one. - The Author column is now named Maintainer to better match doap:maintainer semantics. - Change installation layout to better suit Debian and hopefully other distros as well. - In single plugin mode, exit if UI show failed. - Properly handle scan when there are no lv2 plugins installed (patch by Orcan Ogetbil); https://bugzilla.redhat.com/show_bug.cgi?id=551480 - Fix syntax error exception. #15558 - When rack was being cleared, some plugin UI windows were not being closed. This bug was fixed. * Drop patches applied upstream: - 0001-fix_scan_without_plugins_installed.patch - 0002-handle_empty_doapmaintainer_field.patch - 0003-syntax_error_exception.patch - 0004-flex_parser_recognizes_datatype_uris_and_lang_suffixes.patch - 0005-lv2_parser_ignores_datatype_uris_and_lang_suffixes.patch - 0006-ui_gtk_threads_init.patch - 0007-unknown_ui_types.patch - 0008-continue_on_missing_ui_plugin_req.patch - 0009-regex_uris_command_line.patch - 0010-external_gui_cleanup.patch - 0011-check_ui_is_visible.patch - 0012-fix_parsing_lv2rack_cmdline.patch - 0013-hangs_on_missing_license_field.patch * Refresh 1002-buildsystem.patch. * debian/control: - Set Provides: lv2-host. - Demote lashd to Suggests. - Remove Breaks: ${python:Breaks}. * debian/rules: - Compile with all python installed versions. * debian/gbp.conf: Set compression = bzip2. -- Alessio Treglia Thu, 31 Mar 2011 09:37:29 +0200 zynjacku (5.2-5) unstable; urgency=low * 0013-hangs_on_missing_license_field.patch. - Prevent hangs when a .ttl file lacks the 'license' field. * Switch to dh_python2: - debian/control: + Remove XB-Python-Version field. + Bump minimum required python-all-dev to 2.6.6-3. + Drop python-support from Build-Depends field. + Introduce Breaks field and set it to ${python:Breaks). - debian/rules: Enable dh_python2. * debian/rules: Remove 'rubbish' left by libtool (means: .la files). * Introduce dh-autoreconf. * Add patch to avoid FTBFS with autoreconf. -- Alessio Treglia Thu, 10 Mar 2011 00:16:41 +0100 zynjacku (5.2-4) unstable; urgency=low * Depends on lashd (LP: #613145). * Bump Standards. * Remove DM-Upload-Allowed: yes, unnecessary. * Switch to DH 7 + autotools_dev helper. * Update gbp's config file. * Add -Wl,--as-needed to the linking flags. * Build-dep on python-dev >= 2.6. * Rename patches. * 0001-fix_scan_without_plugins_installed.patch: - Properly handle scan when there are no LV2 plugins installed. * 0002-handle_empty_doapmaintainer_field.patch: - Handle empty doap:maintainer. EQ10Q-1.0 does not define the foaf prefix and this causes empty doap:maintainer. * 0003-syntax_error_exception.patch: - Fix syntax error exception. * 0004-flex_parser_recognizes_datatype_uris_and_lang_suffixes.patch: - In the flex parser, recognize datatype URIs and language suffixes for string literals - Add ttl.l flex description file. * 0005-lv2_parser_ignores_datatype_uris_and_lang_suffixes.patch: - In the LV2 parser, ignore datatype URIs and language suffixes for string literals. * 0006-ui_gtk_threads_init.patch: - Call gtk.gdk.threads_init() before doing any GTK+ stuff. When using the Composite Sampler plugin, the UI would freeze (but the audio would be functional). * 0007-unknown_ui_types.patch: - React better to unknown or unspecified UI types. - Minor refactoring. * 0008-continue_on_missing_ui_plugin_req.patch: - Do not give up too easily when not being able to meet UI plugin's requirement. Just try another one. * 0009-regex_uris_command_line.patch: - Add command line support for /regex/ syntax for URIs. * 0010-external_gui_cleanup.patch: - Call cleanup on the external GUI. * 0011-check_ui_is_visible.patch: - Make sure that ui_run didn't shut down the GUI. * 0012-fix_parsing_lv2rack_cmdline.patch: - Fix parsing of lv2rack commandline. -- Alessio Treglia Thu, 10 Feb 2011 17:22:55 +0100 zynjacku (5.2-3) unstable; urgency=low * Switch to 3.0 (quilt) format. * Add debian/gbp.conf file. * Add .gitignore file. * Depends on python-glade2; thanks to Grant Diffey for reporting this (Closes: #589310). * Update Standards to 3.9.0. * Correct shebang line. -- Alessio Treglia Fri, 16 Jul 2010 19:51:44 +0200 zynjacku (5.2-2) unstable; urgency=low [ Jaromír Mikeš ] * Icons and menu entry added. [ Alessio Treglia ] * Fix Vcs-Browser tag. -- Alessio Treglia Sun, 13 Jun 2010 20:41:17 +0200 zynjacku (5.2-1) unstable; urgency=low * Initial release (Closes: #523850) -- Jaromír Mikeš Mon, 03 May 2010 01:08:15 +0200 debian/lv2rack32x32.xpm0000644000000000000000000001144711570517210011770 0ustar /* XPM */ static char *lv_rack[] = { /* columns rows colors chars-per-pixel */ "32 32 119 2", " c #000000000000", ". c #030303030404", "X c #040404040505", "o c #060607070808", "O c #070709090A0A", "+ c #08080A0A0C0C", "@ c #09090B0B0D0D", "# c #0B0B0D0D0F0F", "$ c #0C0C0F0F1111", "% c #0D0D10101212", "& c #0E0E11111414", "* c #0F0F13131616", "= c #111115151818", "- c #121216161919", "; c #131318181B1B", ": c #16161B1B1F1F", "> c #16161C1C2020", ", c #18181E1E2222", "< c #19191F1F2424", "1 c #1A1A20202525", "2 c #1D1D24242929", "3 c #1D1D25252A2A", "4 c #1E1E25252B2B", "5 c #202028282E2E", "6 c #22222B2B3131", "7 c #24242C2C3333", "8 c #26262F2F3636", "9 c #272731313838", "0 c #282832323939", "q c #2A2A34343C3C", "w c #2C2C37373F3F", "e c #2D2D38383F3F", "r c #2E2E39394040", "t c #30303C3C4444", "y c #32323E3E4646", "u c #33333F3F4747", "i c #353542424B4B", "p c #373744444D4D", "a c #3A3A47475151", "s c #3B3B49495353", "d c #3C3C4B4B5555", "f c #3E3E4D4D5757", "g c #414150505B5B", "h c #434353535E5E", "j c #434354545F5F", "k c #444454546060", "l c #454555556161", "z c #49495B5B6767", "x c #4A4A5B5B6868", "c c #4A4A5C5C6969", "v c #4E4E61616E6E", "b c #505063637171", "n c #515165657373", "m c #525266667474", "M c #555569697878", "N c #56566B6B7A7A", "B c #58586E6E7D7D", "V c #5A5A6F6F7F7F", "C c #5B5B70708080", "Z c #5D5D73738383", "A c #5E5E75758585", "S c #606077778888", "D c #626279798A8A", "F c #63637B7B8C8C", "G c #64647C7C8D8D", "H c #66667E7E9090", "J c #696982829494", "K c #6B6B84849797", "L c #6C6C86869999", "P c #6D6D87879A9A", "I c #6E6E88889B9B", "U c #70708B8B9F9F", "Y c #72728D8DA1A1", "T c #75759191A6A6", "R c #77779393A8A8", "E c #79799696ABAB", "W c #7A7A9797ADAD", "Q c #7C7C9999AFAF", "! c #7C7C9A9AB0B0", "~ c #7E7E9D9DB3B3", "^ c #80809E9EB5B5", "/ c #8383A2A2B9B9", "( c #8484A4A4BBBB", ") c #8787A7A7BEBE", "_ c #8787A8A8BFBF", "` c #8888A9A9C0C0", "' c #8989AAAAC1C1", "] c #8A8AACACC3C3", "[ c #8D8DAFAFC7C7", "{ c #8E8EB1B1C9C9", "} c #8F8FB2B2CACA", "| c #9090B2B2CBCB", " . c #9191B3B3CCCC", ".. c #9393B6B6CFCF", "X. c #9494B8B8D1D1", "o. c #9797BBBBD5D5", "O. c #9898BCBCD6D6", "+. c #9898BDBDD7D7", "@. c #9999BEBED8D8", "#. c #9A9AC0C0DADA", "$. c #9C9CC1C1DCDC", "%. c #9F9FC5C5E0E0", "&. c #A1A1C7C7E3E3", "*. c #A3A3CACAE6E6", "=. c #A4A4CCCCE8E8", "-. c #A5A5CDCDE9E9", ";. c #A7A7CFCFECEC", ":. c #A8A8D0D0EDED", ">. c #A9A9D2D2EFEF", ",. c #AAAAD3D3F0F0", "<. c #ABABD4D4F1F1", "1. c #ABABD4D4F2F2", "2. c #ACACD5D5F3F3", "3. c #ADADD6D6F4F4", "4. c #AEAED8D8F6F6", "5. c #AFAFDADAF8F8", "6. c #B1B1DBDBFAFA", "7. c #B2B2DCDCFBFB", "8. c #B3B3DEDEFDFD", /* pixels */ "8.8.X.8.8.8.8.8.8.8.-.8.8.8.8.8.8.,.6.8.8.8.8.8.8.8.8.8.8.8.8.8.", "8.W Z 8.8.8.8.8.~ S 8.8.8.8.-.& 2 5.8.8.4.D u p P 5.8.8.8.8.", "8.h 5 8.8.8.8.8.g : 8.8.8.8.G ' 8.2.0 u 1.8.8.8.", "8.i - 8.8.8.8.8.a @.8.8.8.u ^ 8.n h 8.8.8.", "8.i : 8.8.8.8.8.m E 8.8.8.- $.;.O [ 8.8.", "8.i : 8.8.8.8.8.W C 8.8.2. & 8.Y o n C l 8.8.", "8.i , 8.8.8.8.8.&. f 8.8.| i 8.x Z 8.8.l , 8.8.", "8.u 1 8.8.8.8.8.8.: 5 8.8.T Z 8.r Q 8.8.) 6.8.", "8.i 2 8.8.8.8.8.8.s o 6.8.Z / 8.r ~ 8.8.( ,.8.", "8.i 5 8.8.8.8.8.8.D @.8.g >.8.H ] 8.8.P . 7.8.", "8.i 5 8.8.8.8.8.8.' Q 8.8 2 8.8.8.J V 7.8.8.z 2 8.8.", "8.i 7 8.8.8.8.8.8.3.. A 8.$ l 8.8.8.8.8.8.8.6.- c 8.8.", "8.i 8 8.8.8.8.8.8.8.6 g -. P 8.8.8.8.8.8.8.! ` 8.8.", "7.i 0 8.8.8.8.8.8.8.z 7 ' X.8.8.8.8.8.8.8.q 5 8.8.8.", "8.i q 8.8.8.8.8.8.8.U O P O 8.8.8.8.8.8.8.! ! 8.8.8.", "8.i w 8.8.8.8.8.8.8.o. - r 8.8.8.8.8.8.7.1 r 8.8.8.8.", "8.i e 8.8.8.8.8.8.8.8.$ M 8.8.8.8.8.8.Z O #.8.8.8.8.", "8.i u 8.1.O.>.8.8.8.8.u ! 8.8.8.8.8.X.o G 8.8.8.8.8.", "8.i O $ i 8.8.8.8.M *.8.8.8.8.,.5 ; ( ( / ) 7.8.", "8.u o 8.8.8.8.~ > 8.8.8.8.8.i G 8.", "8.i 1.8.8.8.-. f 8.8.8.8.R w 8.", "8.l @ 8.8.8.8.8.4 I 8.8.8.8.P 2 8.", "8.{ 2 , , , 1 M 8.8.8.8.8.T : >.8.8.8.8.*.$ g 8.", "8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.,.o...{ ] ) / ! W >.8.", "8.8.( l z v ' 8.8.8.8.$.F >.8.8.8.8.] U T -.8.8.8.8.8.8.8.8.8.8.", "8.8.V p 0 . { 8.8.8.i x 8.8.8.j X : % 2.[ S 8.8. .o.8.8.8.", "8.8.D &.8.@ D 8.8.>.o w O -.8. . [ 8.-.W 7.V 4.E X d 8.8.8.", "8.8.K , > > $.8.8.Y %.- B 8.U : 8.8.8.8.8.D I 0 -.8.8.8.", "8.8.T r J 8.8.8.a & m 7 & 3./ O 1.8.8.8.8.P X &.8.8.8.8.", "8.8.! / f G 8.3.O c 8.@. J 4., f [ ! N &.T n 9 1.8.8.8.", "8.8.o.@ { 3.u e 8.X.X E 8.8.e e 8.o.8 & ) ~ ! T X 0 2.8.8.", "8.8.8.8.8.8.8.5.8.8.8.8.8.8.6.6.8.8.8.-.&.8.8.O.- ) 8.T O ) 8.8." }; debian/zynspect.10000644000000000000000000000275311570517210011135 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH "ZYNSPECT" 1 "April 12, 2009" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME zynspect \- tool, that can be used to list and inspect available lv2 plugins. .SH SYNOPSIS .B zynspect .RI .SH DESCRIPTION .\" TeX users may be more comfortable with the \fB\fP and .\" \fI\fP escape sequences to invode bold face and italics, .\" respectively. \fBzynspect\fP is tool, that can be used to list and inspect available lv2 plugins. It looks at the environment variable LV2_PATH to search for plugins. .sp 0 If LV2_PATH is not set it search in default directories. ['/home/mira/.lv2', '/usr/local/lib/lv2', '/usr/lib/lv2'] .SH SEE ALSO .BR zynjacku (1), .BR lv2rack (1). .br .IR .SH AUTHOR zynspect was written by Nedko Arnaudov . .PP This manual page was written by Jaromír Mikeš , for the Debian project (and may be used by others). debian/gbp.conf0000644000000000000000000000010311570517210010576 0ustar [DEFAULT] pristine-tar = True sign-tags = True compression = bzip2 debian/copyright0000644000000000000000000001122311755001302011112 0ustar This package was debianized by: Jaromír Mikeš on Sun, 12 Apr 2009 23:59:34 +0000 It was downloaded from: http://download.gna.org/zynjacku/ Upstream Authors: Nedko Arnaudov Krzysztof Foltman Copyright: Copyright (C) 2006,2007,2008,2009 Nedko Arnaudov Copyright (C) 2009 Krzysztof Foltman Copyright exceptions: The engine.c, plugin.c, rack.c files are copyrighted by: Copyright (C) 2006,2007,2008,2009 Nedko Arnaudov Copyright (C) 2006 Dave Robillard The lv2_contexts.h lv2_data_access.h, lv2_event_helpers.h, lv2_uri_map.h files are copyrighted by: Copyright (C) 2007-2008 Dave Robillard The lv2_event.h file is copyrighted by: Copyright (C) 2006-2007 Lars Luthman Copyright (C) 2008 Dave Robillard The lv2_miditype.h, lv2_ui.h files are copyrighted by: Copyright (C) 2006-2008 Lars Luthman The lv2_string_port.h file is copyrighted by: Copyright (C) 2008 Krzysztof Foltman The zynjacku.py and zynworld/host.py file is copyrighted by: Copyright (C) 2006 Leonard Ritter Copyright (C) 2006,2007,2008,2009 Nedko Arnaudov License: This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . On Debian systems, the complete text of the GNU General Public License version 2 can be found in `/usr/share/common-licenses/GPL-2'. License exceptions: The lv2_data_access.h lv2_event.h lv2_event_helpers.h lv2-miditype.h lv2_string_port.h lv2_uri_map.h files are licenced by GNU LGPL version 2 of the License, or (at your option) any later version. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 01222-1307 USA On Debian systems, the complete text of the GNU Lesser General Public License version 2 can be found in `/usr/share/common-licenses/LGPL-2'. The lv2_ui.h file is licenced by GNU LGPL version 2.1 of the License, or (at your option) any later version. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 01222-1307 USA On Debian systems, the complete text of the GNU Lesser General Public License version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'. The lv2_progress.h lv2_external_ui.h files contain this notice: This work is in public domain. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. The Debian packaging is: Copyright (C) 2009 Jaromír Mikeš and is licensed under the GPL version 2, see above. debian/source/0000755000000000000000000000000011570517210010465 5ustar debian/source/format0000644000000000000000000000001411570517210011673 0ustar 3.0 (quilt) debian/zynjacku.10000644000000000000000000000267611570517210011120 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH "ZYNJACKU" 1 "April 12, 2009" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME zynjacku \- a host for LV2 synths .SH SYNOPSIS .B zynjacku .RI .SH DESCRIPTION .\" TeX users may be more comfortable with the \fB\fP and .\" \fI\fP escape sequences to invode bold face and italics, .\" respectively. \fBzynjacku\fP is an LV2 synths "rack" for the JACK low latency audio API. It has one JACK MIDI input port (routed to all hosted synths) and one (two for stereo synths) JACK audio output port per plugin. Such design provides multi-timbral sound by running several synth plugins. .SH SEE ALSO .BR jackd (1), .BR slv2 (3). .br .IR .SH AUTHOR zynjacku was written by Nedko Arnaudov . .PP This manual page was written by Jaromír Mikeš , for the Debian project (and may be used by others). debian/watch0000644000000000000000000000010411570517210010211 0ustar version=3 http://download.gna.org/zynjacku/zynjacku-(.*)\.tar\.bz2 debian/zynjacku.desktop0000644000000000000000000000027211570517210012417 0ustar [Desktop Entry] Type=Application Name=Zynjacku GenericName=LV2 synths host Comment=LV2 synths host for JACK Icon=zynjacku32x32 Exec=zynjacku Terminal=false Categories=AudioVideo;Audio;