next up previous contents
Next: Programowanie karty dźwiękowej Up: Programowanie dźwięku Previous: Programowanie dźwięku   Contents

Programowanie wewnętrznego speakera

Wierzcie lub nie, ale wasz głośnik jest częścią Linuxowej konsoli i w ten sposób urządzeniem znakowym. Dlatego, istnieją żądania ioctl() do obsługiwania go. Dla wewnętrznego głośniczka instnieją 2 podstawowe żądania:

1.
KDMKTONE

Generuje sygnał przez określony czas używając zegara jądra. Przykład: ioctl (fd, KDMKTONE, (long) argument).

2.
KIOCSOUND

Generuje nieskończony dźwięk lub zatrzymuje ten, który właśnie trwa.

Przykład: ioctl(fd, KICOSOUND, (int) ton).

Argument składa się z wartości tonu w młodszym słowie i wartości trwania dźwięku w starszym słowie. Wartość ton nie określa częstotliwości. Zegar 8254 płyty głównej jest taktowany z częstotliwością 1.19 Mhz, więc jest to 1190000/częstotliwość. Trwanie dźwięku mierzone jest tykaniem zegara. Oba wezwania ioctl wracają natychmiastowo, tak więc możesz robić dzwięki bez blokowania programu.
KDMKTONE powinno się używać do sygnałów ostrzegawczych, ponieważ nie należy się martwić zatrzymaniem dźwięku.
KIOCSOUND może być używane do odtwarzania melodyjek jak zademonstrowano w przykładowym programie splay (przyślij więcej plików .sng). Aby zatrzymać dzwięk należy użyć tonu o wartości 0.




2000-03-01


Poltronic