mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-10-29 05:40:25 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			91 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Common Lisp
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Common Lisp
		
	
	
	
	
	
| (setq card (Acall 'card_next -1))
 | |
| (setq card (Aresult card))
 | |
| (while (>= card 0)
 | |
|   (progn
 | |
|     (princ "found card: " card "\n")
 | |
|     (princ "  name    : " (Aresult (Acall 'card_get_name card)) "\n")
 | |
|     (princ "  longname: " (Aresult (Acall 'card_get_longname card)) "\n")
 | |
|     (setq card (Acall 'card_next card))
 | |
|     (setq card (Aresult card))
 | |
|   )
 | |
| )
 | |
| (unsetq card)
 | |
| 
 | |
| (princ "card_get_index test (SI7018): " (Acall 'card_get_index "SI7018") "\n")
 | |
| (princ "card_get_index test (ABCD): " (Acall 'card_get_index "ABCD") "\n")
 | |
| 
 | |
| (setq hctl (Acall 'hctl_open 'default nil))
 | |
| (if (= (Aerror hctl) 0)
 | |
|   (progn
 | |
|     (princ "open success: " hctl "\n")
 | |
|     (setq hctl (Ahandle hctl))
 | |
|     (princ "open hctl: " hctl "\n")
 | |
|     (setq hctl (Acall 'hctl_close hctl))
 | |
|     (if (= hctl 0)
 | |
|       (princ "close success\n")
 | |
|       (princ "close failed: " hctl "\n")
 | |
|     )
 | |
|   )
 | |
|   (progn
 | |
|     (princ "open failed: " hctl "\n")
 | |
|   )
 | |
| )
 | |
| (unsetq hctl)
 | |
| 
 | |
| (setq ctl (Acall 'ctl_open 'default nil))
 | |
| (if (= (Aerror ctl) 0)
 | |
|   (progn
 | |
|     (princ "ctl open success: " ctl "\n")
 | |
|     (setq ctl (Ahandle ctl))
 | |
|     (setq info (Aresult (Acall 'ctl_card_info ctl)))
 | |
|     (princ "ctl card info: " info "\n")
 | |
|     (princ "ctl card info (mixername): " (cdr (assq "mixername" info)) "\n")
 | |
|     (unsetq info)
 | |
|     (setq hctl (Acall 'hctl_open_ctl ctl))
 | |
|     (if (= (Aerror hctl) 0)
 | |
|       (progn
 | |
|         (princ "hctl open success: " hctl "\n")
 | |
|         (setq hctl (Ahandle hctl))
 | |
|         (princ "open hctl: " hctl "\n")
 | |
| 	(princ "load hctl: " (Acall 'hctl_load hctl) "\n")
 | |
| 	(princ "first    : " (Acall 'hctl_first_elem hctl) "\n")
 | |
| 	(princ "last     : " (Acall 'hctl_last_elem hctl) "\n")
 | |
| 	(princ "next (first): " (Acall 'hctl_elem_next (Acall 'hctl_first_elem hctl)) "\n")
 | |
| 	(princ "prev (last) : " (Acall 'hctl_elem_prev (Acall 'hctl_last_elem hctl)) "\n")
 | |
| 	(setq elem (Acall 'hctl_first_elem hctl))
 | |
| 	(while elem
 | |
| 	  (progn
 | |
| 	    (setq info (Acall 'hctl_elem_info elem))
 | |
| 	    (princ info "\n")
 | |
| 	    (setq value (Acall 'hctl_elem_read elem))
 | |
| 	    (princ value "\n")
 | |
| 	    (when (equal (cdr (assq "name" (car (cdr (assq "id" (Aresult info)))))) "Master Playback Volume")
 | |
| 	      (princ "write Master: " (Acall 'hctl_elem_write elem (20 20)) "\n")
 | |
| 	    )
 | |
| 	    (unsetq info value)
 | |
| 	    (gc)
 | |
| 	    (setq elem (Acall 'hctl_elem_next elem))
 | |
| 	  )
 | |
|         )
 | |
| 	(unsetq elem)
 | |
|         (setq hctl (Acall 'hctl_close hctl))
 | |
|         (if (= hctl 0)
 | |
|           (princ "hctl close success\n")
 | |
|           (princ "hctl close failed: " hctl "\n")
 | |
|         )
 | |
|       )
 | |
|       (progn
 | |
|         (princ "hctl open failed: " hctl "\n")
 | |
| 	(Acall 'ctl_close ctl)
 | |
|       )
 | |
|     )
 | |
|     (unsetq hctl)
 | |
|   )
 | |
|   (progn
 | |
|     (princ "ctl open failed: " ctl "\n")
 | |
|   )
 | |
| )
 | |
| (unsetq ctl)
 | |
| 
 | |
| (&stat-memory)
 | |
| (&dump-memory "memory.dump")
 | 
