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,
&current_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



Répondre à