Ouais ça a pas l'air trop compliqué. Je vais voir. Ce serait pas mal
qu'il y ait un mixage logicielle de son par la lib parce que si tu veux
jouer 2 sons en meme temps et que la carte n'a qu'un seul canal (i810
par exemple), donc le coup d'ouvrir direct le /dev/dsp et de balancer je
pense que c pas l'idéal..
Matt
lawrence a écrit :
salut
Pour le son, envoie moi ce que t'as fait Lawrence, que je puisse voir la
complexité du truc.
et voila :
//////////////////////////////////////////////////
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <vorbis/codec.h>
#include <vorbis/vorbisfile.h>
char pcmout[4096];
using namespace std;
int main()
{
FILE *dsp = fopen("/dev/dsp", "w");
OggVorbis_File vf;
int eof=0;
int current_section;
FILE *ogg;
//#ifdef DEBUG_VORBIS
cout << "Ouverture du fichier ... " ;
//#endif
if ( (ogg = fopen("wormux.ogg", "r")) == NULL)
{
cout << "erreur " << ogg << endl;
fflush(stdout);
}
else
{
cout << "ok" << endl;
}
if (ov_open(ogg, &vf, NULL, 0) < 0)
{
fprintf(stderr,"hum... c'est pas de l'ogg ce fichier !!??\n");
exit(-1);
}
char **ptr=ov_comment(&vf,-1)->user_comments;
vorbis_info *vi=ov_info(&vf,-1);
while(*ptr)
{
fprintf(stderr,"%s\n",*ptr);
++ptr;
}
while(!eof)
{
long ret = ov_read(&vf, pcmout, sizeof(pcmout), 0, 2, 1,
¤t_section);
#ifdef DEBUG_VORBIS
cout.setf(ios::fixed, ios::floatfield);
cout.width(10);
cout.setf(ios::right);
cout.precision(5);
//histoire de voir sans prendre trop de place -> \b ;)
cout << ov_time_tell(&vf) << "\b\b\b\b\b\b\b\b\b\b\b";
fflush(stdout);
#endif
if (ret == 0)
{
eof=1;
}
else if (ret < 0)
{
cout << "quitter !!!" << endl;
}
else
{
fwrite(pcmout, 1, ret, dsp);
}
}
ov_clear(&vf);
//fprintf(stderr,"Ok\n");
return(0);
}
//////////////////////////////////////////////////
comme tu peux le voir y'a pas plus simple :) On ouvre
le dsp...et on balance la sauce dedant ;)
Sinon n'oubli pas la vorbisfile pour que ca compile:
g++ main.cpp -o vorbis -lvorbisfile -I/usr/local/include/ -L/usr/lib/
Je rappelle que le menu option n'est pas fini (edition des équipes
notamment- un composant edit c'est pas ce qu'il y a de plus sympa à
coder ...). Si on le met en suspend, je pense que ce serait pas mal de
faire un doc qui explique comment les modifiers et en créer de nouvelles
(je NE suis PAS volontaire pour cette tache).
:-p
Sinon je tenais à féliciter grandement l'auteur de l'avatar Ball ! Il
veut pas en faire d'autre ????
Ca faut lui demander directement mais je pense qui si il a du temps il
le fera de lui meme comme pour Ball.
@+
lami
_______________________________________________
Wormux-dev mailing list
[email protected]
https://mail.gna.org/listinfo/wormux-dev