Hi.
Wie kann man eigentlich einen Biepton über den PC-Speaker ausgeben.
Die Methode mit echo funktioniert leider nur wenn man angemeldet ist, nicht aber aus cronjob herraus. (bei mir zumindest ist das leider so)
Außerdem: Wie könnte man verschiedene Töne erzeugen. Kann man an irgendwelche devices Frequenz leiten?
Gruß
beep / sound über pc-speaker ausgeben?
Ich kann Basic, ich kann Comal, ich kann VB, ich kann PHP, ich kann SQL, ich kann BASH, ich kan AutoIt3, ich kann WSH, ich kann cmd,storm hat geschrieben:Entweder (die einfachere Variante) du schaust dir mal das Paket beep an, oder du programmierst dir gleich selbst deinen gewünschten Sound in C mittels system-call, hint: ioctl.
doch C - leider nein , keine Ahnung:-(
Bring mich bitte (*please*) mal auf den richtigen weg:
/root/proejct/beep//beep.c
Code: Alles auswählen
/********
/* beep *
/********
#include <stdio.h>
#include <stdlib.h>
#include <ioctl.h>
main()
{
...........???...........
}
Und wie mache ich dieses dann ausführbar?
Code: Alles auswählen
echo -en '\a' > /dev/console
Code: Alles auswählen
echo -en "\e[10;440]\e[11;900]\a" > /dev/console
sleep 1
echo -en "\e[10;660]\e[11;900]\a" > /dev/console
sleep 1
echo -en "\e[10;880]\e[11;900]\a" > /dev/console
-
- Beiträge: 1581
- Registriert: 01.05.2004 13:21:26
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: DE
Mist, da hab ich ja was angerichtet. :)deb hat geschrieben: ...
doch C - leider nein , keine Ahnung:-(
...
Und wie mache ich dieses dann ausführbar?
Versuch mal lieber den Vorschlag von yeti (da war doch noch was!), der ist sicherer.
Aber zum spielen:
Code: Alles auswählen
/*
* compile: gcc -Wall beep.c -obeep
*
* you have to be root to run this
* sudo ./beep
* */
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/kd.h>
// high word: duration (in ticks)
// low word: tone value (reverse: higher values mean lower frequencies)
//
#define SOUND 0x00FF03BF
int main (int argc, char *argv[])
{
int fd;
int ret;
ret = 0;
if ( (fd = open("/dev/console", O_WRONLY)) == -1) {
perror("cannot open /dev/console!\n");
ret = 1;
}
else{
// here it beeps
ret = ioctl (fd, KDMKTONE, (long) SOUND);
close(fd);
}
return ret;
}
// vim:tw=80:ts=4:
ciao, storm
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */