aboutsummaryrefslogtreecommitdiff
path: root/alsalisp/hctl.lisp
blob: 6348d7bb2bf33390558ad37eca73a373e41df840 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
(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))
	  )
        )
        (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")

(defun autotest () (princ "abcd\n"))
(setq auto-exec 'autotest)

(princ (path 'data) "\n")