int install_sound_input(int digi_card, int midi_card);
Initialise le module d'enregistrement, retourne zero en cas
de succes. Vous devez l'installer apres les driver standard
Les deux parametres de carte doivent etre les memes
constantes que install_sound(), incluant DIGI_NONE et MIDI_
NONE pour desactiver des parties du module ou
DIGI_AUTODETECT et MIDI_AUTODETECT pour la recherche du
materiel.
void remove_sound_input();
Retire le driver apres avoir fini avec les routines
d'enregistrement. Vous n'avez normalement pas besoin de
l'appeler car remove_sound() ou allegro_exit() le font.
int get_sound_input_cap_bits();
Cherche quel est le format de sample compatible avec la
carte son. Le retour est un champ de bit avec les valeurs
suivantes :
0 = enregistrement non suporte
8 = 8bits supportes
16 = 16bits supportes
24 = 8 et 16 bits supportes
int get_sound_input_cap_stereo();
Cherche si le driver courant suporte la stereo.
int get_sound_input_cap_rate(int bits, int stereo);
Retourne la frequence maximum d'enregistrement dans le
format specifie ou zero s'il n'est pas supporte.
int get_sound_input_cap_parm(int rate, int bits, int stereo);
Verifie si le frequence, le nombre de bits et le choix mono
stereo sont supportes par la carte, les valeurs suivantes
sont retournees :
0 = enregistrement dans ce format impossible
1 = enregistrement possible avec sortie coupee
2 = enregistrement possible avec sortie d'un son
-n = frequence non supportee, essayer n
int set_sound_input_source(int source);
Selectionne la source, renvoie zero en cas de reussite et
-1 si le materiel ne peut pas. Les parametres sont :
SOUND_INPUT_MIC - micro
SOUND_INPUT_LINE - entree ligne
SOUND_INPUT_CD - entree CD
int start_sound_input(int rate, int bits, int stereo);
Debute l'enregistrement dans le format indique, arrete la
sortie son si necessaire et renvoie la taille du buffer en
mots en cas de reussite ou zero sinon.
void stop_sound_input();
Arrete un enregistrement, et remet la carte en mode normal
de lecture.
int read_sound_input(void *buffer);
Deplace le plsu recent buffer audio a l'adresse specifiee,
retourne une valeur autre que zero si le buffer est copie
zero si aucune nouvelles donnees ne sont presentes. La
la taille du buffer est obtenue par le retour de la
fonction start_sound_input(). Vous devez appeler cette
fonction a intervalles reguliers pendant l'enregistrement
( 100 fois par seconde ) ou des donnees seront perdues. Si
vous ne pouvez le faire de votre code principal, utilisez
la fonction callback de digi_recorder() pour sauver les
donnees dans un plus grand buffer. Note : quelques cartes
produisent un clic lors du passage du mode enregistrement a
lecture c'est donc une bonne idee que de vider le premier
buffer apres le demarrage de l'enregistrement. Les donnees
sont toujours stockees dans un format non signe avec une
valeur gauche precedant une valeur droite.
extern void (*digi_recorder)();
Si cette variable est active, cette fonction est appelee
par le driver d'entree des qu'un bouveau buffer sample est
pret. A ce moment, vous pouvez utiliser read_sound_input()
pour copier les valeurs dans differentes destination permanentes.
Cette routine tourne dans un contexte
d'interruption, elle doit etre rapide, le code ne doit pas
etre protege et vous ne pouvez appeler de fonction systeme
ni acceder aux disques.
extern void (*midi_recorder)(unsigned char data);
Cette fonction est appelee par le driver d'entree midi
quand un nouveau mot de donnee midi arrive. Cette fonction
s'execute dans un contexte d'interrution, les restrictions
sont les meme que pour digi_recorder().