1d5ac70f0Sopenharmony_ci(setq card (Acall 'card_next -1))
2d5ac70f0Sopenharmony_ci(setq card (Aresult card))
3d5ac70f0Sopenharmony_ci(while (>= card 0)
4d5ac70f0Sopenharmony_ci  (progn
5d5ac70f0Sopenharmony_ci    (princ "found card: " card "\n")
6d5ac70f0Sopenharmony_ci    (princ "  name    : " (Aresult (Acall 'card_get_name card)) "\n")
7d5ac70f0Sopenharmony_ci    (princ "  longname: " (Aresult (Acall 'card_get_longname card)) "\n")
8d5ac70f0Sopenharmony_ci    (setq card (Acall 'card_next card))
9d5ac70f0Sopenharmony_ci    (setq card (Aresult card))
10d5ac70f0Sopenharmony_ci  )
11d5ac70f0Sopenharmony_ci)
12d5ac70f0Sopenharmony_ci(unsetq card)
13d5ac70f0Sopenharmony_ci
14d5ac70f0Sopenharmony_ci(princ "card_get_index test (SI7018): " (Acall 'card_get_index "SI7018") "\n")
15d5ac70f0Sopenharmony_ci(princ "card_get_index test (ABCD): " (Acall 'card_get_index "ABCD") "\n")
16d5ac70f0Sopenharmony_ci
17d5ac70f0Sopenharmony_ci(setq hctl (Acall 'hctl_open 'default nil))
18d5ac70f0Sopenharmony_ci(if (= (Aerror hctl) 0)
19d5ac70f0Sopenharmony_ci  (progn
20d5ac70f0Sopenharmony_ci    (princ "open success: " hctl "\n")
21d5ac70f0Sopenharmony_ci    (setq hctl (Ahandle hctl))
22d5ac70f0Sopenharmony_ci    (princ "open hctl: " hctl "\n")
23d5ac70f0Sopenharmony_ci    (setq hctl (Acall 'hctl_close hctl))
24d5ac70f0Sopenharmony_ci    (if (= hctl 0)
25d5ac70f0Sopenharmony_ci      (princ "close success\n")
26d5ac70f0Sopenharmony_ci      (princ "close failed: " hctl "\n")
27d5ac70f0Sopenharmony_ci    )
28d5ac70f0Sopenharmony_ci  )
29d5ac70f0Sopenharmony_ci  (progn
30d5ac70f0Sopenharmony_ci    (princ "open failed: " hctl "\n")
31d5ac70f0Sopenharmony_ci  )
32d5ac70f0Sopenharmony_ci)
33d5ac70f0Sopenharmony_ci(unsetq hctl)
34d5ac70f0Sopenharmony_ci
35d5ac70f0Sopenharmony_ci(setq ctl (Acall 'ctl_open 'default nil))
36d5ac70f0Sopenharmony_ci(if (= (Aerror ctl) 0)
37d5ac70f0Sopenharmony_ci  (progn
38d5ac70f0Sopenharmony_ci    (princ "ctl open success: " ctl "\n")
39d5ac70f0Sopenharmony_ci    (setq ctl (Ahandle ctl))
40d5ac70f0Sopenharmony_ci    (setq info (Aresult (Acall 'ctl_card_info ctl)))
41d5ac70f0Sopenharmony_ci    (princ "ctl card info: " info "\n")
42d5ac70f0Sopenharmony_ci    (princ "ctl card info (mixername): " (cdr (assq "mixername" info)) "\n")
43d5ac70f0Sopenharmony_ci    (unsetq info)
44d5ac70f0Sopenharmony_ci    (setq hctl (Acall 'hctl_open_ctl ctl))
45d5ac70f0Sopenharmony_ci    (if (= (Aerror hctl) 0)
46d5ac70f0Sopenharmony_ci      (progn
47d5ac70f0Sopenharmony_ci        (princ "hctl open success: " hctl "\n")
48d5ac70f0Sopenharmony_ci        (setq hctl (Ahandle hctl))
49d5ac70f0Sopenharmony_ci        (princ "open hctl: " hctl "\n")
50d5ac70f0Sopenharmony_ci	(princ "load hctl: " (Acall 'hctl_load hctl) "\n")
51d5ac70f0Sopenharmony_ci	(princ "first    : " (Acall 'hctl_first_elem hctl) "\n")
52d5ac70f0Sopenharmony_ci	(princ "last     : " (Acall 'hctl_last_elem hctl) "\n")
53d5ac70f0Sopenharmony_ci	(princ "next (first): " (Acall 'hctl_elem_next (Acall 'hctl_first_elem hctl)) "\n")
54d5ac70f0Sopenharmony_ci	(princ "prev (last) : " (Acall 'hctl_elem_prev (Acall 'hctl_last_elem hctl)) "\n")
55d5ac70f0Sopenharmony_ci	(setq elem (Acall 'hctl_first_elem hctl))
56d5ac70f0Sopenharmony_ci	(while elem
57d5ac70f0Sopenharmony_ci	  (progn
58d5ac70f0Sopenharmony_ci	    (setq info (Acall 'hctl_elem_info elem))
59d5ac70f0Sopenharmony_ci	    (princ info "\n")
60d5ac70f0Sopenharmony_ci	    (setq value (Acall 'hctl_elem_read elem))
61d5ac70f0Sopenharmony_ci	    (princ value "\n")
62d5ac70f0Sopenharmony_ci	    (when (equal (cdr (assq "name" (car (cdr (assq "id" (Aresult info)))))) "Master Playback Volume")
63d5ac70f0Sopenharmony_ci	      (princ "write Master: " (Acall 'hctl_elem_write elem (20 20)) "\n")
64d5ac70f0Sopenharmony_ci	    )
65d5ac70f0Sopenharmony_ci	    (unsetq info value)
66d5ac70f0Sopenharmony_ci	    (gc)
67d5ac70f0Sopenharmony_ci	    (setq elem (Acall 'hctl_elem_next elem))
68d5ac70f0Sopenharmony_ci	  )
69d5ac70f0Sopenharmony_ci        )
70d5ac70f0Sopenharmony_ci	(unsetq elem)
71d5ac70f0Sopenharmony_ci        (setq hctl (Acall 'hctl_close hctl))
72d5ac70f0Sopenharmony_ci        (if (= hctl 0)
73d5ac70f0Sopenharmony_ci          (princ "hctl close success\n")
74d5ac70f0Sopenharmony_ci          (princ "hctl close failed: " hctl "\n")
75d5ac70f0Sopenharmony_ci        )
76d5ac70f0Sopenharmony_ci      )
77d5ac70f0Sopenharmony_ci      (progn
78d5ac70f0Sopenharmony_ci        (princ "hctl open failed: " hctl "\n")
79d5ac70f0Sopenharmony_ci	(Acall 'ctl_close ctl)
80d5ac70f0Sopenharmony_ci      )
81d5ac70f0Sopenharmony_ci    )
82d5ac70f0Sopenharmony_ci    (unsetq hctl)
83d5ac70f0Sopenharmony_ci  )
84d5ac70f0Sopenharmony_ci  (progn
85d5ac70f0Sopenharmony_ci    (princ "ctl open failed: " ctl "\n")
86d5ac70f0Sopenharmony_ci  )
87d5ac70f0Sopenharmony_ci)
88d5ac70f0Sopenharmony_ci(unsetq ctl)
89d5ac70f0Sopenharmony_ci
90d5ac70f0Sopenharmony_ci(&stat-memory)
91d5ac70f0Sopenharmony_ci(&dump-memory "memory.dump")
92