1 /*-
2 * pccard noise interface.
3 * Nate Williams, October 1997.
4 * This file is in the public domain.
5 */
6
7 #include <sys/param.h>
8 #include <sys/kernel.h>
9 #include <sys/systm.h>
10
11 #include <machine/clock.h>
12
13 #include <pccard/driver.h>
14
15 #define PCCARD_BEEP_PITCH0 1600
16 #define PCCARD_BEEP_DURATION0 20
17 #define PCCARD_BEEP_PITCH1 1200
18 #define PCCARD_BEEP_DURATION1 40
19 #define PCCARD_BEEP_PITCH2 3200
20 #define PCCARD_BEEP_DURATION2 40
21
22 static enum beepstate allow_beep = BEEP_OFF;
23
24 /*
25 * timeout function to keep lots of noise from
26 * happening with insertion/removals.
27 */
28 static void enable_beep(void *dummy)
29 {
30 /* Should never be needed */
31 untimeout(enable_beep, (void *)NULL);
32
33 allow_beep = 1;
34 }
35
36 void pccard_insert_beep(void)
37 {
38 if (allow_beep == BEEP_ON) {
39 sysbeep(PCCARD_BEEP_PITCH0, PCCARD_BEEP_DURATION0);
40 allow_beep = 0;
41 timeout(enable_beep, (void *)NULL, hz / 5);
42 }
43 }
44
45 void pccard_remove_beep(void)
46 {
47 if (allow_beep == BEEP_ON) {
48 sysbeep(PCCARD_BEEP_PITCH0, PCCARD_BEEP_DURATION0);
49 allow_beep = 0;
50 timeout(enable_beep, (void *)NULL, hz / 5);
51 }
52 }
53
54 void pccard_success_beep(void)
55 {
56 sysbeep(PCCARD_BEEP_PITCH1, PCCARD_BEEP_DURATION1);
57 }
58
59 void pccard_failure_beep(void)
60 {
61 sysbeep(PCCARD_BEEP_PITCH2, PCCARD_BEEP_DURATION2);
62 }
63
64 void pccard_beep_select(enum beepstate state)
65 {
66 allow_beep = state;
67 }
Cache object: 3fba2b6e5f7821f3f1bebeb70a9fa389
|