l3eleg cosmik connection | Bonjour à tous,
je travaille sur un programme liant les librairies fmod et fftw. Je rencontre l'erreur de compilation suivante :
Code :
- 143 C:\Dev-Cpp\main.cpp argument of type `signed char (Acquisition::)(FSOUND_STREAM*, void*, int, void*)' does not match `signed char (*)(FSOUND_STREAM*, void*, int, void*)'
|
Je crois comprendre l'erreur mais je ne vois pas comment la résoudre, dans la ligne correspondante, "stream" est un pointeur déclaré en variable globale.
J'aurais besoin de plus d'informations sur cette erreur, ou mieux la manière de la corriger. Je vous remercie pour votre aide !
La ligne correspondante du programme est la suivante :
stream = FSOUND_Stream_Create(instrument_callback, BufferSize, FSOUND_16BITS | FSOUND_SIGNED | FSOUND_STEREO |FSOUND_NONBLOCKING, Frequency, (void *)NULL);
Le methode qui la contient est ci dessous :
Code :
- // Methode d'initialisation de FMOD
- int Acquisition::Initialisation_Fmod()
- {
- //////// DEBUT FMOD, ON CREE LES BUFFER EN MEMOIRE
- // My stream for my synthetiseur circuit (wich need to be feeded by the micro)
- stream = FSOUND_Stream_Create(instrument_callback, BufferSize, FSOUND_16BITS | FSOUND_SIGNED | FSOUND_STEREO |FSOUND_NONBLOCKING, Frequency, (void *)NULL);
- if (!stream)
- {
- printf("Error!\n" );
- printf("%s\n", FMOD_ErrorString(FSOUND_GetError()));
- return(1);
- }
- // Play the synthetiseur channel cause we wanna hear some good sounds
- if (FSOUND_Stream_Play(FSOUND_FREE, stream) == -1) {printf("Error!\n" );printf("%s\n", FMOD_ErrorString(FSOUND_GetError()));exit(1);}
-
- /*
- Create a sample to record into
- */
- if (FSOUND_GetOutput() == FSOUND_OUTPUT_OSS)
- {
- // On vérifie le type du driver en sortie : ici LINUX
- samp1 = FSOUND_Sample_Alloc(FSOUND_UNMANAGED, RECORDLEN, FSOUND_MONO | FSOUND_8BITS | FSOUND_UNSIGNED, RECORDRATE, 255, 128, 255);
- }
- else
- {
- // ici WINDOWS
- samp1 = FSOUND_Sample_Alloc(FSOUND_UNMANAGED, RECORDLEN, FSOUND_STEREO | FSOUND_16BITS , RECORDRATE, 255, 128, 255);
- }
- //////// FIN INITIALISATION FMOD
- return 0;
- }
|
Le prototype de la classe :
Code :
- //Definition des classes
- class Acquisition
- {
- public: double acqui[OUTPUTRATE/10];
- public : Acquisition ();
- ~Acquisition ();
- int Initialisation_Fmod(void);
- int Lancer_Enregistrement(void);
- int Stopper_Enregistrement(void);
- signed char F_CALLBACKAPI instrument_callback(FSOUND_STREAM *stream, void *buff, int len, void *param);
- int copie_Sample_Micro_vers_ring_buffer_micro();
- };
|
|