[RESOLU] librairie C pour le buzzer pc ? fonction frequence ?

librairie C pour le buzzer pc ? fonction frequence ? [RESOLU] - C - Programmation

Marsh Posté le 20-06-2007 à 20:50:39    

Bonjour,
 
je cherche si il existe une fonction C dans les librairies qui permettrai de faire qlque chose comme :
 
 
..........
son(frequence,duree);
..........
 
ou  
.......
son(frequence);
delay(....);
......
 
en fait le but est de faire des mini-jingles "beeps" sur le pcspeaker  (obligatoirement sur le pcspeaker et pas par une carte son puisque le but est d'agrementer un pc embarquer avec son appli de petits sons de validation et d'erreur (pc hyper minimaliste cm+ram+proc+minidisque+microOS specialement ecrit pour)).
 
a moins qu'il faille en ecrire une ? et si oui comment faire ?  
(je ne sais presque pas programmer hormis des choses trop trop basiques)...
 
merci


Message édité par supfrs31 le 20-06-2007 à 21:42:58

---------------
Merci @+
Reply

Marsh Posté le 20-06-2007 à 20:50:39   

Reply

Marsh Posté le 20-06-2007 à 21:40:55    

il y a un code ASCII qui permet de faie biper le buzzer du pc avec un printf.
 
Par contre je ne suis pas sur qu'on puisse simplement avoir des son complexe avec ce haut parleur.

Reply

Marsh Posté le 20-06-2007 à 21:41:12    

un copain d'un autre forum m'a fourni ceci :
 


#define _GNU_SOURCE
 
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <stdint.h>
#include <sys/ioctl.h>
#include <linux/kd.h>


et donc la fonction


static void tone(int frequency, int duration)
{
        FILE *file;
        int fd;
        uint32_t ioctlvalue;
 
        file = fopen("/dev/console", "w" );
        if (!file)
                return;
        fd = fileno(file);
        if (fd < 0)
                return;
        ioctlvalue = (duration << 16) | frequency;
        ioctl(fd, KDMKTONE, ioctlvalue);
        fclose(file);
        usleep(duration*1000);
}


 
ca semble etre pas mal je vais tester ca ca devrai suffir a faire des petits jingles ...
 


---------------
Merci @+
Reply

Marsh Posté le 20-06-2007 à 21:42:19    

castorgris a écrit :

il y a un code ASCII qui permet de faie biper le buzzer du pc avec un printf.
 
Par contre je ne suis pas sur qu'on puisse simplement avoir des son complexe avec ce haut parleur.


 
 
oui le ^G mais c'est juste un 440Hz 200milisecondes je crois sans variation...
 
merci en tout cas d'avoir chercher..


---------------
Merci @+
Reply

Marsh Posté le 20-06-2007 à 21:50:30    

supfrs31 a écrit :

oui le ^G mais c'est juste un 440Hz 200milisecondes je crois sans variation...
 
merci en tout cas d'avoir chercher..


ouais, le caractère ASCII 0x07


---------------
Töp of the plöp
Reply

Marsh Posté le 21-06-2007 à 07:21:40    

je confirme ce petit bout de code fonctionne tres bien  
J'ai réussi a faire mes 6 petits jingles respectifs....


---------------
Merci @+
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed