Bonjour tout le monde ! J'ai comme qui dirait un petit probleme. Je suis en train de faire un petit player (genre winamp) en ce moment et j'essaye d'y inclure un systeme de plugin DSP. J'utilise Fmod (www.fmod.org) pour la librairie sonore. Cette librairie a une fonction qui permet de creer ses propres effets, le prototype est le suivant :
FSOUND_DSP_Create(&EffetCallback, FSOUND_DSP_DEFAULTPRIORITY_USER+4, 0);
Ce qui m'interesse c'est effet qui est un pointeur sur fonction qui doit avoir le protoype suivant :
void *EffetCallback(void *originalbuffer, void *newbuffer, int length, int param)
Je me suis donc dit qu'en faisant un SDK qui dit au programmeur de n'exporter que cette fonction ( __declspec( dllexport ) ), récupérer le pointeur (getprocaddress) et le mettre en paramettre pour FSOUND_DSP_Create suffirait, et bien non. La méthode fonction, mais au moment ou je doit écrire sur newbuffer qui est un pointeur sur les données audio (pcm data), j'ai une erreur de violation. Et c'est de la que vient mon probleme. Et oui, car il y a FMOD derriere qui doit lui aussi écrire a ce niveau, donc ma question est : dois je utiliser les mutual exclusion ou la mémoire partager ou un autre systeme pour résoudre ce probleme ?
Si vous n'avez pas tout compris, j'essayerais d'etre le plus clair possible, en attendant je continue mes investigations. Dans tout les cas, merci d'avance