Hello community,

here is the log from the commit of package alsa-tools for openSUSE:Factory 
checked in at 2018-10-18 15:34:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/alsa-tools (Old)
 and      /work/SRC/openSUSE:Factory/.alsa-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "alsa-tools"

Thu Oct 18 15:34:09 2018 rev:73 rq:642604 version:unknown

Changes:
--------
--- /work/SRC/openSUSE:Factory/alsa-tools/alsa-tools.changes    2018-04-05 
15:32:49.101602478 +0200
+++ /work/SRC/openSUSE:Factory/.alsa-tools.new/alsa-tools.changes       
2018-10-18 15:34:43.378409502 +0200
@@ -1,0 +2,8 @@
+Wed Oct 17 11:42:14 CEST 2018 - [email protected]
+
+- Update to alsa-tools 1.1.7:
+  * ld10k1: define _GNU_SOURCE and use sighandler_t
+  * us428control: Fix clang -Wreserved-user-defined-literal warnings
+  * hwmixvolume: port to Gtk3+
+
+-------------------------------------------------------------------

Old:
----
  alsa-tools-1.1.6.tar.bz2

New:
----
  alsa-tools-1.1.7.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ alsa-tools.spec ++++++
--- /var/tmp/diff_new_pack.9FQhYs/_old  2018-10-18 15:34:46.198406251 +0200
+++ /var/tmp/diff_new_pack.9FQhYs/_new  2018-10-18 15:34:46.198406251 +0200
@@ -12,11 +12,11 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
-%define package_version        1.1.6
+%define package_version        1.1.7
 #
 %define build_hwdep_loader     0
 %if 0%{?suse_version} >  1140
@@ -25,7 +25,7 @@
 %define have_gtk3      0
 %endif
 Name:           alsa-tools
-Version:        1.1.6
+Version:        1.1.7
 Release:        0
 Summary:        Various ALSA Tools
 License:        GPL-2.0-or-later

++++++ alsa-tools-1.1.6.tar.bz2 -> alsa-tools-1.1.7.tar.bz2 ++++++
++++ 2448 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/alsa-tools-1.1.6/Makefile new/alsa-tools-1.1.7/Makefile
--- old/alsa-tools-1.1.6/Makefile       2018-04-03 09:04:06.000000000 +0200
+++ new/alsa-tools-1.1.7/Makefile       2018-10-16 10:15:48.000000000 +0200
@@ -1,4 +1,4 @@
-VERSION = 1.1.6
+VERSION = 1.1.7
 TOP = .
 SUBDIRS = as10k1 envy24control hdsploader hdspconf hdspmixer \
          mixartloader pcxhrloader rmedigicontrol sb16_csp seq sscape_ctl \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/alsa-tools-1.1.6/hwmixvolume/README new/alsa-tools-1.1.7/hwmixvolume/README
--- old/alsa-tools-1.1.6/hwmixvolume/README     2018-04-03 09:01:37.000000000 
+0200
+++ new/alsa-tools-1.1.7/hwmixvolume/README     2018-10-16 10:08:36.000000000 
+0200
@@ -8,7 +8,8 @@
 * Yamaha DS-1 (YMF-724/740/744/754) (driver: snd-ymfpci)
 
 
-This tool requires Python, pygtk, and alsa-pyton 1.0.22 or later.
+This tool requires Python, PyGObject, GTK+ 3.0 or later, and alsa-python 1.0.22
+or later.
 
 It is recommended to use at least Linux kernel 2.6.32 or alsa-driver 1.0.22;
 otherwise, the name of the program that is using a stream cannot be shown.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/alsa-tools-1.1.6/hwmixvolume/hwmixvolume 
new/alsa-tools-1.1.7/hwmixvolume/hwmixvolume
--- old/alsa-tools-1.1.6/hwmixvolume/hwmixvolume        2018-04-03 
09:01:37.000000000 +0200
+++ new/alsa-tools-1.1.7/hwmixvolume/hwmixvolume        2018-10-16 
10:08:36.000000000 +0200
@@ -1,7 +1,8 @@
-#!/usr/bin/python2
+#!/usr/bin/env python
 
 # hwmixvolume - ALSA hardware mixer volume control applet
 # Copyright (c) 2009-2010 Clemens Ladisch
+# Copyright (c) 2018 Emmanuel Gil Peyrot <[email protected]>
 #
 # Permission to use, copy, modify, and/or distribute this software for any
 # purpose with or without fee is hereby granted, provided that the above
@@ -15,7 +16,10 @@
 # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-import gobject, gtk
+import gi
+gi.require_version('GLib', '2.0')
+gi.require_version('Gtk', '3.0')
+from gi.repository import GLib, Gtk
 from pyalsa import alsacard, alsahcontrol
 
 INTF_PCM = alsahcontrol.interface_id['PCM']
@@ -26,285 +30,283 @@
 EVENT_REMOVE = alsahcontrol.event_mask_remove
 
 class Stream:
-       def __init__(self, element, parent):
-               self.element = element
-               self.element.set_callback(self)
-               self.parent = parent
-               self.label = None
-               self.scales = []
-               self.adjustments = []
-               self.callback(self.element, EVENT_INFO)
-
-       def destroy(self):
-               self.deactivate()
-
-       def callback(self, e, mask):
-               if mask == EVENT_REMOVE:
-                       self.deactivate()
-               elif (mask & EVENT_INFO) != 0:
-                       info = alsahcontrol.Info(self.element)
-                       if info.is_inactive:
-                               self.deactivate()
-                       else:
-                               self.activate()
-               elif (mask & EVENT_VALUE) != 0:
-                       self.update_scales_from_ctl()
-
-       def activate(self):
-               if self.label:
-                       return
-               info = alsahcontrol.Info(self.element)
-               value = alsahcontrol.Value(self.element)
-               value.read()
-               values = value.get_tuple(TYPE_INTEGER, info.count)
-               self.label = gtk.Label(self.get_label(info))
-               self.label.set_single_line_mode(True)
-               self.parent.scales_vbox.pack_start(self.label, expand=False)
-               for i in range(info.count):
-                       adj = gtk.Adjustment(value=values[i],
-                                       lower=info.min, upper=info.max,
-                                       step_incr=1,
-                                       page_incr=(info.max-info.min+1)/8)
-                       adj.connect('value-changed', 
self.update_ctl_from_scale, i)
-                       scale = gtk.HScale(adj)
-                       scale.set_draw_value(False)
-                       self.parent.scales_vbox.pack_start(scale, expand=False)
-                       self.scales.append(scale)
-                       self.adjustments.append(adj)
-               self.parent.scales_vbox.show_all()
-               self.parent.update_msg_label()
-
-       def deactivate(self):
-               if not self.label:
-                       return
-               self.label.destroy()
-               for s in self.scales:
-                       s.destroy()
-               self.label = None
-               self.scales = []
-               self.adjustments = []
-               self.parent.update_msg_label()
-
-       def update_scales_from_ctl(self):
-               if not self.label:
-                       return
-               count = len(self.adjustments)
-               value = alsahcontrol.Value(self.element)
-               value.read()
-               values = value.get_tuple(TYPE_INTEGER, count)
-               for i in range(count):
-                       self.adjustments[i].set_value(values[i])
-
-       def update_ctl_from_scale(self, adj, index):
-               scale_value = adj.get_value()
-               value_to_set = int(round(adj.get_value()))
-               count = len(self.adjustments)
-               value = alsahcontrol.Value(self.element)
-               if self.parent.lock_check.get_active():
-                       values = [value_to_set  for i in range(count)]
-               else:
-                       value.read()
-                       values = value.get_array(TYPE_INTEGER, count)
-                       values[index] = value_to_set
-               value.set_array(TYPE_INTEGER, values)
-               value.write()
-               if value_to_set != scale_value:
-                       adj.set_value(value_to_set)
-
-       def get_label(self, info):
-               pid = self.get_pid(info)
-               if pid:
-                       cmdline = self.get_pid_cmdline(pid)
-                       if cmdline:
-                               return cmdline
-                       else:
-                               return "PID %d" % pid
-               else:
-                       name = info.name
-                       if name[-7:] == " Volume":
-                               name = name[:-7]
-                       if name[-9:] == " Playback":
-                               name = name[:-9]
-                       return name
-
-       def get_pid(self, info):
-               card = self.parent.current_card
-               device = info.device
-               subdevice = info.subdevice
-               if subdevice == 0:
-                       subdevice = info.index
-               filename = "/proc/asound/card%d/pcm%dp/sub%d/status" % (card, 
device, subdevice)
-               try:
-                       f = open(filename, "r")
-               except IOError:
-                       return None
-               try:
-                       for line in f.readlines():
-                               if line[:9] == "owner_pid":
-                                       return int(line.split(':')[1].strip())
-               finally:
-                       f.close()
-               return None
-
-       def get_pid_cmdline(self, pid):
-               try:
-                       f = open("/proc/%d/cmdline" % pid, "r")
-               except IOError:
-                       return None
-               try:
-                       cmdline = f.read()
-               finally:
-                       f.close()
-               return cmdline.replace('\x00', ' ').strip()
-
-class MixerWindow(gtk.Window):
-       card_numbers = alsacard.card_list()
-       current_card = -1
-       hcontrol = None
-       scales_vbox = None
-       msg_label = None
-       streams = []
-       hctl_sources = []
-
-       def __init__(self):
-               gtk.Window.__init__(self)
-               self.connect('destroy', lambda w: gtk.main_quit())
-               self.set_title("Hardware Mixer Volumes")
-
-               vbox = gtk.VBox()
-               self.add(vbox)
-
-               hbox = gtk.HBox()
-               vbox.pack_start(hbox, expand=False)
-
-               label = gtk.Label("_Sound Card: ")
-               label.set_use_underline(True)
-               hbox.pack_start(label, expand=False)
-
-               combo = gtk.combo_box_new_text()
-               for i in self.card_numbers:
-                       str = "%d: %s" % (i, alsacard.card_get_name(i))
-                       combo.append_text(str)
-               if len(self.card_numbers) > 0:
-                       combo.set_active(0)
-               combo.connect('changed', lambda c: 
self.change_card(self.card_numbers[combo.get_active()]))
-               hbox.pack_start(combo)
-               label.set_mnemonic_widget(combo)
-
-               self.lock_check = gtk.CheckButton(label="_Lock Channels")
-               self.lock_check.set_active(True)
-               vbox.pack_start(self.lock_check, expand=False)
-
-               scrollwin = gtk.ScrolledWindow()
-               scrollwin.set_policy(hscrollbar_policy=gtk.POLICY_NEVER, 
vscrollbar_policy=gtk.POLICY_AUTOMATIC)
-               scrollwin.set_shadow_type(gtk.SHADOW_NONE)
-               vbox.pack_start(scrollwin)
-
-               self.scales_vbox = gtk.VBox()
-               scrollwin.add_with_viewport(self.scales_vbox)
-
-               label = gtk.Label()
-               label.set_single_line_mode(True)
-               line_height = label.size_request()[1]
-               label.destroy()
-               scale = gtk.HScale()
-               scale.set_draw_value(False)
-               line_height += scale.size_request()[1]
-               scale.destroy()
-               # always have space for at least four sliders
-               scrollwin.set_size_request(width=-1, height=line_height*4+4)
-
-               # TODO: select the default card or the first card with stream 
controls
-               if len(self.card_numbers) > 0:
-                       self.change_card(self.card_numbers[0])
-               self.update_msg_label()
-
-               self.show_all()
-
-       def change_card(self, cardnum):
-               for s in self.hctl_sources:
-                       gobject.source_remove(s)
-               self.hctl_sources = []
-
-               self.hcontrol = self.open_hcontrol_for_card(cardnum)
-
-               for s in self.streams:
-                       s.destroy()
-               self.streams = []
-
-               self.current_card = cardnum
-
-               if not self.hcontrol:
-                       self.update_msg_label()
-                       return
-
-               for id in self.hcontrol.list():
-                       if not self.is_stream_elem(id):
-                               continue
-                       elem = alsahcontrol.Element(self.hcontrol, id[0])
-                       info = alsahcontrol.Info(elem)
-                       if not self.is_stream_info(info):
-                               continue
-                       stream = Stream(elem, self)
-                       self.streams.append(stream)
-
-               for fd,condition in self.hcontrol.poll_fds:
-                       self.hctl_sources.append(gobject.io_add_watch(fd, 
condition, self.hctl_io_callback))
-
-               self.update_msg_label()
-
-               self.scales_vbox.show_all()
-
-       def update_msg_label(self):
-               needs_msg = len(self.scales_vbox.get_children()) < 2
-               has_msg = self.msg_label
-               if has_msg and not needs_msg:
-                       self.msg_label.destroy()
-                       self.msg_label = None
-               elif needs_msg:
-                       if len(self.streams) > 0:
-                               msg = "There are no open streams."
-                       else:
-                               msg = "This card does not have stream controls."
-                       if not has_msg:
-                               self.msg_label = gtk.Label(msg)
-                               self.scales_vbox.pack_start(self.msg_label)
-                               self.scales_vbox.show_all()
-                       elif self.msg_label.get_text() != msg:
-                               self.msg_label.set_text(msg)
-
-       def open_hcontrol_for_card(self, cardnum):
-               devname = "hw:CARD=" + str(cardnum)
-               try:
-                       hc = alsahcontrol.HControl(name=devname,
-                                       mode=alsahcontrol.open_mode['NONBLOCK'])
-               except:
-                       # TODO: alsa error msg
-                       dlg = gtk.MessageDialog(self,
-                                       gtk.DIALOG_MODAL | 
gtk.DIALOG_DESTROY_WITH_PARENT,
-                                       gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,
-                                       "Cannot open sound card control 
device.")
-                       dlg.run()
-                       dlg.destroy()
-                       return None
-               return hc
-
-       def is_stream_elem(self, id):
-               return ((id[1] == INTF_PCM and
-                        id[4] in ("PCM Playback Volume", "EMU10K1 PCM 
Volume")) or
-                       (id[1] == INTF_MIXER and
-                        id[4] == "VIA DXS Playback Volume"))
-
-       def is_stream_info(self, info):
-               return info.is_readable and info.is_writable and info.type == 
TYPE_INTEGER
-
-       def hctl_io_callback(self, source, condition):
-               self.hcontrol.handle_events()
-               return True
+    def __init__(self, element, parent):
+        self.element = element
+        self.element.set_callback(self)
+        self.parent = parent
+        self.label = None
+        self.scales = []
+        self.adjustments = []
+        self.callback(self.element, EVENT_INFO)
+
+    def destroy(self):
+        self.deactivate()
+
+    def callback(self, e, mask):
+        if mask == EVENT_REMOVE:
+            self.deactivate()
+        elif (mask & EVENT_INFO) != 0:
+            info = alsahcontrol.Info(self.element)
+            if info.is_inactive:
+                self.deactivate()
+            else:
+                self.activate()
+        elif (mask & EVENT_VALUE) != 0:
+            self.update_scales_from_ctl()
+
+    def activate(self):
+        if self.label:
+            return
+        info = alsahcontrol.Info(self.element)
+        value = alsahcontrol.Value(self.element)
+        value.read()
+        values = value.get_tuple(TYPE_INTEGER, info.count)
+        self.label = Gtk.Label.new(self.get_label(info))
+        self.label.set_single_line_mode(True)
+        self.parent.scales_vbox.add(self.label)
+        for i in range(info.count):
+            adj = Gtk.Adjustment(value=values[i],
+                    lower=info.min, upper=info.max,
+                    step_incr=1,
+                    page_incr=(info.max-info.min+1)/8)
+            adj.connect('value-changed', self.update_ctl_from_scale, i)
+            scale = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, 
adjustment=adj)
+            scale.set_draw_value(False)
+            self.parent.scales_vbox.add(scale)
+            self.scales.append(scale)
+            self.adjustments.append(adj)
+        self.parent.scales_vbox.show_all()
+        self.parent.update_msg_label()
+
+    def deactivate(self):
+        if not self.label:
+            return
+        self.label.destroy()
+        for s in self.scales:
+            s.destroy()
+        self.label = None
+        self.scales = []
+        self.adjustments = []
+        self.parent.update_msg_label()
+
+    def update_scales_from_ctl(self):
+        if not self.label:
+            return
+        count = len(self.adjustments)
+        value = alsahcontrol.Value(self.element)
+        value.read()
+        values = value.get_tuple(TYPE_INTEGER, count)
+        for i in range(count):
+            self.adjustments[i].set_value(values[i])
+
+    def update_ctl_from_scale(self, adj, index):
+        scale_value = adj.get_value()
+        value_to_set = int(round(adj.get_value()))
+        count = len(self.adjustments)
+        value = alsahcontrol.Value(self.element)
+        if self.parent.lock_check.get_active():
+            values = [value_to_set  for i in range(count)]
+        else:
+            value.read()
+            values = value.get_array(TYPE_INTEGER, count)
+            values[index] = value_to_set
+        value.set_array(TYPE_INTEGER, values)
+        value.write()
+        if value_to_set != scale_value:
+            adj.set_value(value_to_set)
+
+    def get_label(self, info):
+        pid = self.get_pid(info)
+        if pid:
+            cmdline = self.get_pid_cmdline(pid)
+            if cmdline:
+                return cmdline
+            else:
+                return "PID %d" % pid
+        else:
+            name = info.name
+            if name[-7:] == " Volume":
+                name = name[:-7]
+            if name[-9:] == " Playback":
+                name = name[:-9]
+            return name
+
+    def get_pid(self, info):
+        card = self.parent.current_card
+        device = info.device
+        subdevice = info.subdevice
+        if subdevice == 0:
+            subdevice = info.index
+        filename = "/proc/asound/card%d/pcm%dp/sub%d/status" % (card, device, 
subdevice)
+        try:
+            with open(filename, "r") as f:
+                for line in f:
+                    if line[:9] == "owner_pid":
+                        return int(line.split(':')[1].strip())
+        except IOError:
+            return None
+        return None
+
+    def get_pid_cmdline(self, pid):
+        try:
+            with open("/proc/%d/cmdline" % pid, "r") as f:
+                cmdline = f.read()
+        except IOError:
+            return None
+        return cmdline.replace('\x00', ' ').strip()
+
+class MixerWindow(Gtk.Window):
+    card_numbers = alsacard.card_list()
+    current_card = -1
+    hcontrol = None
+    scales_vbox = None
+    msg_label = None
+    streams = []
+    hctl_sources = []
+
+    def __init__(self):
+        Gtk.Window.__init__(self)
+        self.connect('destroy', lambda w: Gtk.main_quit())
+        self.set_title("Hardware Mixer Volumes")
+
+        vbox = Gtk.Grid()
+        vbox.set_orientation(Gtk.Orientation.VERTICAL)
+        self.add(vbox)
+
+        hbox = Gtk.Grid()
+        vbox.add(hbox)
+
+        label = Gtk.Label.new_with_mnemonic("_Sound Card: ")
+        hbox.add(label)
+
+        combo = Gtk.ComboBoxText()
+        combo.set_hexpand(True)
+        for i in self.card_numbers:
+            str = "%d: %s" % (i, alsacard.card_get_name(i))
+            combo.append_text(str)
+        if len(self.card_numbers) > 0:
+            combo.set_active(0)
+        combo.connect('changed', lambda c: 
self.change_card(self.card_numbers[combo.get_active()]))
+        hbox.add(combo)
+        label.set_mnemonic_widget(combo)
+
+        self.lock_check = Gtk.CheckButton.new_with_mnemonic(label="_Lock 
Channels")
+        self.lock_check.set_active(True)
+        vbox.add(self.lock_check)
+
+        scrollwin = Gtk.ScrolledWindow()
+        scrollwin.set_policy(hscrollbar_policy=Gtk.PolicyType.NEVER, 
vscrollbar_policy=Gtk.PolicyType.AUTOMATIC)
+        scrollwin.set_shadow_type(Gtk.ShadowType.NONE)
+        scrollwin.set_vexpand(True)
+        vbox.add(scrollwin)
+
+        self.scales_vbox = Gtk.Grid()
+        self.scales_vbox.set_orientation(Gtk.Orientation.VERTICAL)
+        scrollwin.add(self.scales_vbox)
+
+        label = Gtk.Label()
+        label.set_single_line_mode(True)
+        line_height = max(label.get_size_request().height, 0)
+        label.destroy()
+        scale = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL)
+        scale.set_draw_value(False)
+        line_height += max(scale.get_size_request().height, 0)
+        scale.destroy()
+        # always have space for at least four sliders
+        scrollwin.set_size_request(width=-1, height=line_height*4+4)
+
+        # TODO: select the default card or the first card with stream controls
+        if len(self.card_numbers) > 0:
+            self.change_card(self.card_numbers[0])
+        self.update_msg_label()
+
+        self.show_all()
+
+    def change_card(self, cardnum):
+        for s in self.hctl_sources:
+            GLib.source_remove(s)
+        self.hctl_sources = []
+
+        self.hcontrol = self.open_hcontrol_for_card(cardnum)
+
+        for s in self.streams:
+            s.destroy()
+        self.streams = []
+
+        self.current_card = cardnum
+
+        if not self.hcontrol:
+            self.update_msg_label()
+            return
+
+        for id in self.hcontrol.list():
+            if not self.is_stream_elem(id):
+                continue
+            elem = alsahcontrol.Element(self.hcontrol, id[0])
+            info = alsahcontrol.Info(elem)
+            if not self.is_stream_info(info):
+                continue
+            stream = Stream(elem, self)
+            self.streams.append(stream)
+
+        for fd,condition in self.hcontrol.poll_fds:
+            self.hctl_sources.append(GLib.io_add_watch(fd, 0, 
GLib.IOCondition(condition), self.hctl_io_callback))
+
+        self.update_msg_label()
+
+        self.scales_vbox.show_all()
+
+    def update_msg_label(self):
+        needs_msg = len(self.scales_vbox.get_children()) < 2
+        has_msg = self.msg_label
+        if has_msg and not needs_msg:
+            self.msg_label.destroy()
+            self.msg_label = None
+        elif needs_msg:
+            if len(self.streams) > 0:
+                msg = "There are no open streams."
+            else:
+                msg = "This card does not have stream controls."
+            if not has_msg:
+                self.msg_label = Gtk.Label.new(msg)
+                self.msg_label.set_vexpand(True)
+                self.scales_vbox.add(self.msg_label)
+                self.scales_vbox.show_all()
+            elif self.msg_label.get_text() != msg:
+                self.msg_label.set_text(msg)
+
+    def open_hcontrol_for_card(self, cardnum):
+        devname = "hw:CARD=" + str(cardnum)
+        try:
+            hc = alsahcontrol.HControl(name=devname,
+                    mode=alsahcontrol.open_mode['NONBLOCK'])
+        except:
+            # TODO: alsa error msg
+            dlg = Gtk.MessageDialog(self,
+                    Gtk.DialogFlags.MODAL | 
Gtk.DialogFlags.DESTROY_WITH_PARENT,
+                    Gtk.MessageType.ERROR, Gtk.ButtonsType.OK,
+                    "Cannot open sound card control device.")
+            dlg.run()
+            dlg.destroy()
+            return None
+        return hc
+
+    def is_stream_elem(self, id):
+        return ((id[1] == INTF_PCM and
+             id[4] in ("PCM Playback Volume", "EMU10K1 PCM Volume")) or
+            (id[1] == INTF_MIXER and
+             id[4] == "VIA DXS Playback Volume"))
+
+    def is_stream_info(self, info):
+        return info.is_readable and info.is_writable and info.type == 
TYPE_INTEGER
+
+    def hctl_io_callback(self, source, condition):
+        self.hcontrol.handle_events()
+        return True
 
 def main():
-       MixerWindow()
-       gtk.main()
+    MixerWindow()
+    Gtk.main()
 
 main()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/alsa-tools-1.1.6/ld10k1/config.h.in new/alsa-tools-1.1.7/ld10k1/config.h.in
--- old/alsa-tools-1.1.6/ld10k1/config.h.in     2018-04-03 09:03:50.000000000 
+0200
+++ new/alsa-tools-1.1.7/ld10k1/config.h.in     2018-10-16 10:15:31.000000000 
+0200
@@ -61,5 +61,37 @@
 /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
 
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
 /* ld10k1 library version string */
 #undef VERSION
+
+/* Define to 1 if on MINIX. */
+#undef _MINIX
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+   this defined. */
+#undef _POSIX_1_SOURCE
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+#undef _POSIX_SOURCE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/alsa-tools-1.1.6/ld10k1/configure.ac 
new/alsa-tools-1.1.7/ld10k1/configure.ac
--- old/alsa-tools-1.1.6/ld10k1/configure.ac    2018-04-03 09:01:37.000000000 
+0200
+++ new/alsa-tools-1.1.7/ld10k1/configure.ac    2018-10-16 10:08:36.000000000 
+0200
@@ -4,6 +4,7 @@
 AM_MAINTAINER_MODE([enable])
 
 AC_CONFIG_HEADERS(config.h)
+AC_USE_SYSTEM_EXTENSIONS
 AC_PROG_CC
 AC_PROG_LD
 AC_PROG_INSTALL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/alsa-tools-1.1.6/ld10k1/src/ld10k1_fnc1.c 
new/alsa-tools-1.1.7/ld10k1/src/ld10k1_fnc1.c
--- old/alsa-tools-1.1.6/ld10k1/src/ld10k1_fnc1.c       2018-04-03 
09:01:37.000000000 +0200
+++ new/alsa-tools-1.1.7/ld10k1/src/ld10k1_fnc1.c       2018-10-16 
10:08:36.000000000 +0200
@@ -179,7 +179,7 @@
 {
        fd_set active_fd_set/*, read_fd_set*/;
        int i, j, res = 0;
-       __sighandler_t old_sig_pipe;
+       sighandler_t old_sig_pipe;
 
        int main_sock = 0;
        int data_sock = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/alsa-tools-1.1.6/us428control/us428control.cc 
new/alsa-tools-1.1.7/us428control/us428control.cc
--- old/alsa-tools-1.1.6/us428control/us428control.cc   2018-04-03 
09:01:37.000000000 +0200
+++ new/alsa-tools-1.1.7/us428control/us428control.cc   2018-10-16 
10:08:36.000000000 +0200
@@ -63,7 +63,7 @@
 {
        printf("Tascam US-428 Control\n");
        printf("version %s\n", VERSION);
-       printf("usage: "PROGNAME" [-v verbosity_level 0..2] [-c card] [-D 
device] [-u usb-device] [-m mode]\n");
+       printf("usage: " PROGNAME " [-v verbosity_level 0..2] [-c card] [-D 
device] [-u usb-device] [-m mode]\n");
        printf("mode is one of (us224, us428, mixxx)\n");
 }
 /*



Reply via email to