anchor.diff:    ())
   (defclass audio-volume-knob (audio-widget widget-connections-mixin)
     ())
  +(defmethod widget-connection-direction ((widget audio-volume-knob))
  +  (declare (ignore widget))
  +  :undirected)
   (defclass audio-beep-generator (audio-widget)
     ())
   (defclass audio-vendor-defined (audio-widget)
  
positive.code:     (t (format nil "Unknown ~2,'0X" location))))
  
  (defparameter *pin-default-device*
    #("Line Out" "Speaker" "HP Out" "CD" "SPDIF Out" "Digital Other Out" "Modem Line Side" "Modem Handset Side"
      "Line In" "AUX" "Mic In" "Telephony" "SPDIF In" "Digital Other In" "Reserved" "Other"))
  
  (defparameter *pin-connection-type*
    #("Unknown"
      "1/8\" stereo/mono"
      "1/4\" stereo/mono"
      "ATAPI internal"
      "RCA"
      "Optical"
  
negative.code:                                                (parameter-revision-vendor revision)
                                                 (parameter-revision-stepping revision)))))
  
  
  (defgeneric enumerate-widget (widget))
  
  (defmethod enumerate-widget ((widget widget)))
  
  (defmethod enumerate-widget :after ((widget widget-connections-mixin))
    (setf (slot-value widget 'connections)
          (loop for c in (get-connections widget)
             collect (find c (widgets (function-group widget)) :key #'nid))))
  
  (defmethod enumerate-widget :after ((widget audio-pin-complex))
    (let ((config (command (hda widget) (cad widget) (nid widget) #xF1C00)))
      (setf (slot-value widget 'pin-location) (decode-pin-location (ldb (byte 6 24) config))
            (slot-value widget 'pin-default-device) (aref *pin-default-device* (ldb (byte 4 20) config))
            (slot-value widget 'pin-connection-type) (aref *pin-connection-type* (ldb (byte 4 16) config))
            (slot-value widget 'pin-colour) (aref *pin-colour* (ldb (byte 4 12) config)))))
  
  (defun get-connections (widget)
    (let* ((hda (hda widget))
           (cad (cad widget))
           (nid (nid widget))
           (len (parameter widget +parameter-connection-list-length+))
           (n-entries (parameter-connection-list-length-length len))
           (entries (if (not (zerop (parameter-connection-list-length-long-form len)))
                        (loop for i from 0 below (ceiling n-entries 2)
  