]> git.alsa-project.org Git - alsa.git/commitdiff
hda-analyzer: fix processing caps parsing, simplify __new_text_view() code
authorJaroslav Kysela <perex@perex.cz>
Fri, 12 Feb 2010 13:21:35 +0000 (14:21 +0100)
committerJaroslav Kysela <perex@perex.cz>
Fri, 12 Feb 2010 13:21:35 +0000 (14:21 +0100)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
hda-analyzer/hda_analyzer.py
hda-analyzer/hda_codec.py
hda-analyzer/hda_proc.py

index 4b718c3253fe1598bb29c751a4980258919e11a8..58d1c3ea3643fea071f4824a8e67e2ebd07632e4 100755 (executable)
@@ -450,11 +450,20 @@ mailing list, too.
     scrolled_window.set_shadow_type(gtk.SHADOW_IN)    
     return scrolled_window
 
-  def __new_text_view(self):
+  def __new_text_view(self, text=None):
     text_view = gtk.TextView()
     text_view.set_border_width(4)
     fontName = get_fixed_font()
     text_view.modify_font(fontName)
+    if not text is None:
+      buffer = gtk.TextBuffer(None)
+      iter = buffer.get_iter_at_offset(0)
+      if text[-1] == '\n':
+        text = text[:-1]
+      buffer.insert(iter, text)
+      text_view.set_buffer(buffer)
+      text_view.set_editable(False)
+      text_view.set_cursor_visible(False)
     return text_view
 
   def __build_node_caps(self, node):
@@ -462,17 +471,10 @@ mailing list, too.
     frame.set_border_width(4)
     if len(node.wcaps_list) == 0:
       return frame
-    text_view = self.__new_text_view()
     str = ''
     for i in node.wcaps_list:
       str += node.wcap_name(i) + '\n'
-    buffer = gtk.TextBuffer(None)
-    iter = buffer.get_iter_at_offset(0)
-    buffer.insert(iter, str[:-1])
-    text_view.set_buffer(buffer)
-    text_view.set_editable(False)
-    text_view.set_cursor_visible(False)
-    frame.add(text_view)
+    frame.add(self.__new_text_view(text=str))
     return frame
 
   def __node_connection_toggled(self, widget, row, data):
@@ -544,18 +546,11 @@ mailing list, too.
       frame.set_border_width(4)
       vbox = gtk.VBox(False, 0)
       if caps:
-        text_view = self.__new_text_view()
         str =  'Offset:          %d\n' % caps.ofs
         str += 'Number of steps: %d\n' % caps.nsteps
         str += 'Step size:       %d\n' % caps.stepsize
         str += 'Mute:            %s\n' % (caps.mute and "True" or "False")
-        buffer = gtk.TextBuffer(None)
-        iter = buffer.get_iter_at_offset(0)
-        buffer.insert(iter, str[:-1])
-        text_view.set_buffer(buffer)
-        text_view.set_editable(False)
-        text_view.set_cursor_visible(False)
-        vbox.pack_start(text_view, True, True, 0)
+        vbox.pack_start(self.__new_text_view(text=str), True, True, 0)
         idx = 0
         frame1 = None
         vbox1 = None
@@ -635,19 +630,12 @@ mailing list, too.
       if node.pincap or node.pincap_vref:
         frame = gtk.Frame('PIN Caps')
         frame.set_border_width(4)
-        text_view = self.__new_text_view()
         str = ''
         for i in node.pincap:
           str += node.pincap_name(i) + '\n'
         for i in node.pincap_vref:
           str += 'VREF_%s\n' % i
-        buffer = gtk.TextBuffer(None)
-        iter = buffer.get_iter_at_offset(0)
-        buffer.insert(iter, str[:-1])
-        text_view.set_buffer(buffer)
-        text_view.set_editable(False)
-        text_view.set_cursor_visible(False)
-        frame.add(text_view)
+        frame.add(self.__new_text_view(text=str))
         vbox.pack_start(frame)
       if 'EAPD' in node.pincap:
         frame = gtk.Frame('EAPD')
@@ -666,7 +654,6 @@ mailing list, too.
 
     frame = gtk.Frame('Config Default')
     frame.set_border_width(4)
-    text_view = self.__new_text_view()
     str =  'Jack connection: %s\n' % node.jack_conn_name
     str += 'Jack type:       %s\n' % node.jack_type_name
     str += 'Jack location:   %s\n' % node.jack_location_name
@@ -675,13 +662,7 @@ mailing list, too.
     str += 'Jack color:      %s\n' % node.jack_color_name
     if 'NO_PRESENCE' in node.defcfg_misc:
       str += 'No presence\n'
-    buffer = gtk.TextBuffer(None)
-    iter = buffer.get_iter_at_offset(0)
-    buffer.insert(iter, str[:-1])
-    text_view.set_buffer(buffer)
-    text_view.set_editable(False)
-    text_view.set_cursor_visible(False)
-    frame.add(text_view)
+    frame.add(self.__new_text_view(text=str))
     vbox.pack_start(frame)
     
     frame = gtk.Frame('Widget Control')
@@ -747,7 +728,6 @@ mailing list, too.
 
     frame = gtk.Frame('Converter')
     frame.set_border_width(4)
-    text_view = self.__new_text_view()
     str = 'Audio Stream:\t%s\n' % node.aud_stream
     str += 'Audio Channel:\t%s\n' % node.aud_channel
     if node.format_ovrd:
@@ -762,13 +742,7 @@ mailing list, too.
         str += '\t\t%s\n' % node.codec.pcm_rates[6:]
       str += 'Global Bits:\t%s\n' % node.codec.pcm_bits
       str += 'Global Streams:\t%s\n' % node.codec.pcm_streams
-    buffer = gtk.TextBuffer(None)
-    iter = buffer.get_iter_at_offset(0)
-    buffer.insert(iter, str[:-1])
-    text_view.set_buffer(buffer)
-    text_view.set_editable(False)
-    text_view.set_cursor_visible(False)
-    frame.add(text_view)
+    frame.add(self.__new_text_view(text=str))
     vbox.pack_start(frame)
 
     if not node.sdi_select is None:
@@ -842,6 +816,13 @@ mailing list, too.
     vbox.pack_start(frame)
     return vbox
 
+  def __build_proc(self, node):
+    frame = gtk.Frame('Processing Caps')
+    frame.set_border_width(4)
+    str = 'benign=%i\nnumcoef=%i\n' % (node.proc_benign, node.proc_numcoef)
+    frame.add(self.__new_text_view(text=str))
+    return frame
+
   def __build_node(self, node):
     w = self.node_window
 
@@ -868,6 +849,8 @@ mailing list, too.
     else:
       if not node.wtype_id in ['AUD_MIX', 'BEEP', 'AUD_SEL']:
         print 'Node type %s has no GUI support' % node.wtype_id
+    if node.proc_wid:
+      vbox.pack_start(self.__build_proc(node), False, False)
 
     mframe.add(vbox)
     w.add_with_viewport(mframe)
@@ -877,36 +860,22 @@ mailing list, too.
 
     frame = gtk.Frame('Codec Identification')
     frame.set_border_width(4)
-    text_view = self.__new_text_view()
     str = 'Audio Fcn Group: %s\n' % (codec.afg and "0x%02x" % codec.afg or "N/A")
     str += 'Modem Fcn Group: %s\n' % (codec.mfg and "0x%02x" % codec.mfg or "N/A")
     str += 'Vendor ID:\t 0x%08x\n' % codec.vendor_id
     str += 'Subsystem ID:\t 0x%08x\n' % codec.subsystem_id
     str += 'Revision ID:\t 0x%08x\n' % codec.revision_id
-    buffer = gtk.TextBuffer(None)
-    iter = buffer.get_iter_at_offset(0)
-    buffer.insert(iter, str[:-1])
-    text_view.set_buffer(buffer)
-    text_view.set_editable(False)
-    text_view.set_cursor_visible(False)
-    frame.add(text_view)
+    frame.add(self.__new_text_view(text=str))
     vbox.pack_start(frame, False, False)
 
     frame = gtk.Frame('PCM Global Capabilities')
     frame.set_border_width(4)
-    text_view = self.__new_text_view()
     str = 'Rates:\t\t %s\n' % codec.pcm_rates[:6]
     if len(codec.pcm_rates) > 6:
       str += '\t\t %s\n' % codec.pcm_rates[6:]
     str += 'Bits:\t\t %s\n' % codec.pcm_bits
     str += 'Streams:\t %s\n' % codec.pcm_streams
-    buffer = gtk.TextBuffer(None)
-    iter = buffer.get_iter_at_offset(0)
-    buffer.insert(iter, str[:-1])
-    text_view.set_buffer(buffer)
-    text_view.set_editable(False)
-    text_view.set_cursor_visible(False)
-    frame.add(text_view)
+    frame.add(self.__new_text_view(text=str))
     vbox.pack_start(frame, False, False)
 
     return vbox
@@ -917,18 +886,11 @@ mailing list, too.
       frame = gtk.Frame(title)
       frame.set_border_width(4)
       if caps and caps.ofs != None:
-        text_view = self.__new_text_view()
         str = 'Offset:\t\t %d\n' % caps.ofs
         str += 'Number of steps: %d\n' % caps.nsteps
         str += 'Step size:\t %d\n' % caps.stepsize
         str += 'Mute:\t\t %s\n' % (caps.mute and "True" or "False")
-        buffer = gtk.TextBuffer(None)
-        iter = buffer.get_iter_at_offset(0)
-        buffer.insert(iter, str[:-1])
-        text_view.set_buffer(buffer)
-        text_view.set_editable(False)
-        text_view.set_cursor_visible(False)
-        frame.add(text_view)
+        frame.add(self.__new_text_view(text=str))
       return frame
 
     hbox = gtk.HBox(False, 0)
@@ -947,19 +909,12 @@ mailing list, too.
     frame = gtk.Frame('GPIO')
     frame.set_border_width(4)
     hbox = gtk.HBox(False, 0)
-    text_view = self.__new_text_view()
     str =  'IO Count:    %d\n' % codec.gpio_max
     str += 'O Count:     %d\n' % codec.gpio_o
     str += 'I Count:     %d\n' % codec.gpio_i
     str += 'Unsolicited: %s\n' % (codec.gpio_unsol and "True" or "False")
     str += 'Wake:        %s\n' % (codec.gpio_wake and "True" or "False")
-    buffer = gtk.TextBuffer(None)
-    iter = buffer.get_iter_at_offset(0)
-    buffer.insert(iter, str[:-1])
-    text_view.set_buffer(buffer)
-    text_view.set_editable(False)
-    text_view.set_cursor_visible(False)
-    hbox.pack_start(text_view, False, False)
+    hbox.pack_start(self.__new_text_view(text=str), False, False)
     frame.add(hbox)
     for id in GPIO_IDS:
       id1 = id == 'direction' and 'out-dir' or id
@@ -989,19 +944,12 @@ mailing list, too.
     w.add_with_viewport(mframe)
 
   def __build_card_info(self, card):
-    text_view = self.__new_text_view()
     str =  'Card:       %s\n' % card.card
     str += 'Id:         %s\n' % card.id
     str += 'Driver:     %s\n' % card.driver
     str += 'Name:       %s\n' % card.name
     str += 'LongName:   %s\n' % card.longname
-    buffer = gtk.TextBuffer(None)
-    iter = buffer.get_iter_at_offset(0)
-    buffer.insert(iter, str[:-1])
-    text_view.set_buffer(buffer)
-    text_view.set_editable(False)
-    text_view.set_cursor_visible(False)
-    return text_view
+    return self.__new_text_view(text=str)
 
   def __build_card(self, card):
     w = self.node_window
index 5c17f0e1261e02f0fb3cf2874d269168e33499fe..2e7b25bda869fd8022333af7b4240f908aa6af16 100644 (file)
@@ -494,7 +494,7 @@ class HDANode:
         self.pcm_bits = self.codec.analyze_pcm_bits(self.pcm_bit)
         self.pcm_stream = stream
         self.pcm_streams = self.codec.analyze_pcm_streams(self.pcm_stream)
-    elif self.wtype_id in ['PROC_WID']:
+    if self.proc_wid:
       proc_caps = self.codec.param_read(self.nid, PARAMS['PROC_CAP'])
       self.proc_benign = proc_caps & 1 and True or False
       self.proc_numcoef = (proc_caps >> 8) & 0xff
@@ -1151,7 +1151,7 @@ class HDACodec:
       return str
 
     def print_proc_caps(node):
-      return "  Processing caps: benign=%d, ncoeff=%d\n" % (node.proc_benign, node.proc_nuncoef)
+      return "  Processing caps: benign=%d, ncoeff=%d\n" % (node.proc_benign, node.proc_numcoef)
 
     def print_realtek_coef(node):
       str = "  Processing Coefficient: 0x%02x\n" % node.realtek_coeff_proc
@@ -1200,7 +1200,7 @@ class HDACodec:
       str += "  Delay: %d samples\n" % node.wdelay
     if node.conn_list:
       str += print_conn_list(node)
-    if node.wtype_id == 'PROC_WID':
+    if node.proc_wid:
       str += print_proc_caps(node)
     if hasattr(node, 'realtek_coeff_proc'):
       str += print_realtek_coef(node)
index d6d395deaa4fb05743eada9833cbcba807d8b8ff..e1885904e34d75648a83f2720630881f2f1cd6f5 100644 (file)
@@ -181,6 +181,8 @@ class ProcNode(HDABaseProc):
     self.params = {}
     self.verbs = {}
     self.controls = []
+    if wcaps & (1 << 6):
+      self.add_param(PARAMS['PROC_CAP'], 0)
     if wcaps & (1 << 7):
       self.add_verb(VERBS['GET_UNSOLICITED_RESPONSE'], 0)
     if wcaps & (1 << 9):
@@ -652,8 +654,6 @@ class HDACodecProc(HDACodec, HDABaseProc):
         elif line == '  PCM:':
           node.add_pcm(lines[idx+1], lines[idx+2], lines[idx+3])
           idx += 3
-        elif line.startswith('  Processing caps: '):
-          pass
         elif line.startswith('  Pincap '):
           node.add_pincap(line[9:])
         elif line.startswith('    Vref caps: '):