3 ;; Include alsa-api.lsp
6 (constant 'INFOFMT [text]Information =================================================
7 | Card: %d Id: %s Name: %s
10 | Driver: %s Mixer name: %s
11 |============================================================[/text] )
13 ;;(SIZE (ALSA:snd_ctl_card_info_sizeof))
14 (define (show-card-info CTL)
15 (println (format INFOFMT (ALSA:card-info CTL)))
16 (map println (ALSA:elements CTL))
19 (define (show-card CARD)
20 (let ((NAME (ALSA:snd_card_get_name CARD))
21 (LONG (ALSA:snd_card_get_longname CARD))
22 (CTL (ALSA:snd_ctl_open (format "hw:%d" CARD) 0)))
23 (println "Card " CARD " is " NAME " (" LONG ")")
24 ;;(show-card-info CTL)
25 (ALSA:snd_ctl_close CTL)))
27 (println (format "ALSA %s (%s) "
28 (ALSA:snd_asoundlib_version) libasound:LIB))
31 (while (>= (setf CARD (ALSA:snd_card_next CARD)))
35 (setf CFG (libasound:traverse (libasound:snd_config@)))
37 (define (key-of-list LIST)
38 (if (and (list? LIST) (not (list? (LIST 0)))) (LIST 0) ""))
40 (define (path-of-ref REF)
42 (dotimes (i (length REF))
43 (push (key-of-list (nth (0 i REF) CFG)) P -1))))