1 1.10 isaki /* $NetBSD: spkrvar.h,v 1.10 2021/04/03 04:10:30 isaki Exp $ */ 2 1.1 nat 3 1.1 nat #ifndef _SYS_DEV_SPKRVAR_H 4 1.1 nat #define _SYS_DEV_SPKRVAR_H 5 1.1 nat 6 1.3 christos #include <sys/module.h> 7 1.3 christos 8 1.4 christos struct spkr_softc { 9 1.4 christos device_t sc_dev; 10 1.8 nat device_t sc_wsbelldev; 11 1.4 christos int sc_octave; /* currently selected octave */ 12 1.4 christos int sc_whole; /* whole-note time at current tempo, in ticks */ 13 1.4 christos int sc_value; /* whole divisor for note time, quarter note = 1 */ 14 1.4 christos int sc_fill; /* controls spacing of notes */ 15 1.4 christos bool sc_octtrack; /* octave-tracking on? */ 16 1.4 christos bool sc_octprefix; /* override current octave-tracking state? */ 17 1.4 christos char *sc_inbuf; 18 1.4 christos 19 1.4 christos /* attachment-specific hooks */ 20 1.4 christos void (*sc_tone)(device_t, u_int, u_int); 21 1.7 nat u_int sc_vol; /* volume - only for audio skpr */ 22 1.4 christos }; 23 1.1 nat 24 1.10 isaki void spkr_attach(device_t, void (*)(device_t, u_int, u_int)); 25 1.2 christos 26 1.6 pgoyette int spkr_detach(device_t, int); 27 1.6 pgoyette 28 1.9 pgoyette int spkr_rescan(device_t, const char *, const int *); 29 1.9 pgoyette 30 1.9 pgoyette int spkr_childdet(device_t, device_t); 31 1.9 pgoyette 32 1.1 nat #endif /* _SYS_DEV_SPKRVAR_H */ 33