« Sonraki Sayfa : TV izlemek için kullanabileceÄŸim program tavsiye eder misiniz? »
Bir DTMF kodlayıcı. Komut satırından girilen rakamların tonlarını /dev/dsp aygıtına yönlendirir. Aşağıda kodu verilen dtmf.c dosyasını,
$ gcc dtmf.c -lm -o dtmf
ile derleyebilirsiniz.
#include
#include
#define duration 800
#define pause 400
float col[] = { 1209.0, 1336.0, 1477.0, 1633.0 };
float row[] = { 697.0, 770.0, 852.0, 941.0 };
char positions[] = “123A456B789C*0#D”;
/* 8000 örnek/saniye, mono, 8 bit/örnek kabulüyle */
main(int argc, char *argv[]) {
int i;
char *ap, *cp;
float f1, f2, ri, ci;
if (argc != 2)
exit(1);
ap = argv[1];
while (*ap) {
cp = strchr(positions, *ap);
if (cp) {
ci = col[(cp - positions) % 4];
ri = row[(cp - positions) / 4];
for (f1 = 0.0, f2 = 0.0, i=3D0; i < duration;
i++, f1 += 6.28/8000.0*ri, f2 +=3D 6.28/8000.0*ci) {
putchar((sin(f1)*63.0) + (sin(f2)*63.0) + 128);
}
for (i = 0; i < pause; i++)
putchar(128);
}
ap++;
}
}




