Salut je suit le tuto SDL de loka sur ce même site j'en suis a la partie audio
http://loka.developpez.com/tutoriel/sdl/sons/
J'ajoute que je débute en C++ je n'ai pas encore les bons reflexe.
j'ai un problème avec la fonction Callback
Voici mes sources:
Sound.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef SOUND_H
#define	SOUND_H
 
#include <SDL/SDL.h>
#include <SDL/SDL_audio.h>
 
class Sound {
public:
    Sound();
    void audioCallback(void *udata, Uint8 *stream, int len);
    int audio_Init(void);
private:
    SDL_AudioSpec audioSortie;
};
 
#endif	/* SOUND_H */
Puis Sound.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "Sound.h"
 
Sound::Sound() {
    SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO);
 
}
void Sound::audioCallback(void *udata, Uint8 *stream, int len){}
int Sound::audio_Init(void) {
    // Définition des propriétés audio
    audioSortie.freq = 22050;
    audioSortie.format = AUDIO_S16;
    audioSortie.channels = 2;
    audioSortie.samples = 1024;
    audioSortie.callback = audioCallback;
    audioSortie.userdata = NULL;
 
    // Initialisation de la couche audio
    if (SDL_OpenAudio(&audioSortie, NULL) < 0)
    {
        fprintf(stderr, "Erreur d'ouverture audio: %s\n", SDL_GetError());
        return (-1);
    }
 
    return 0;
 
}
il y a un problème avec la fonction callback
Sound.cpp:14: error: argument of type ‘void (Sound::)(void*, Uint8*, int)’ does not match ‘void (*)(void*, Uint8*, int)’
apparemment le compilateur ne s'attend pas a ce que je lui donne cette fonction mais j'ai pas trop compris car ce code est celui du tuto.
Merci de votre aide.